FOLDOCen-us32058D4C65

Free On-line Dictionary of Computing

Search

Free On-line Dictionary of Computing, about 14.000 entries
Ho Ngoc Duc converted from DICT format to MobiPocket format in 2006

0
{zero}

00databaseinfo
00-database-info This file was converted from the original database on: Sat Sep 27 23:47:12 2003

The original data is available from: http://wombat.doc.ic.ac.uk/foldoc/Dictionary.gz
The original data was distributed with the notice shown below. No additional restrictions are claimed. Please redistribute this changed version under the same conditions and restriction that apply to the original version.
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.
Copyright 1993 by Denis Howe
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, Front- or Back-Cover Texts. A copy of the license is included in the section entitled "{GNU Free Documentation License}".
Please refer to the dictionary as "The Free On-line Dictionary of Computing, http://www.foldoc.org/, Editor Denis Howe" or similar.
The dictionary has been growing since 1985 and now contains over 13000 definitions totalling nearly five megabytes of text. Entries are cross-referenced to each other and to related resources elsewhere on the net.
Where {LaTeX} commands for certain non-{ASCII} symbols are mentioned, they are described in their own entries. "\" is also used to represent the Greek lower-case lambda used in {lambda-calculus}. Cross-references to other entries look {like this}. Note that not all cross-references actually lead anywhere yet, but if you find one that leads to something inappropriate, please let me know. 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://www.foldoc.org/). If you find an entry that is wrong or inadequate please let me know.
See {Pronunciation} for how to interpret the pronunciation given for some entries.
(2000-05-18)
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)

00databaseshort
00-database-short The Free On-line Dictionary of Computing (27 SEP 03)

00databaseurl
00-database-url http://wombat.doc.ic.ac.uk/foldoc/Dictionary.gz

01 knapsack problem
0/1 knapsack problem
[application] The {knapsack problem} restricted so that the number of each item is zero or one.
(1995-03-13)

100basefx
100BaseFX
[networking] {Fast Ethernet} over {optical fibre}.
(1998-03-23)

100baset
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
100BaseTX
[networking] The predominant form of {Fast Ethernet}. 100BaseTX runs over two pairs of wires in {category 5} cable.
(1998-06-30)

100basevg
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)

100vganylan
100VG-AnyLAN
{100BaseVG}

10base2
[networking] (Or "cheapernet") The variant of {Ethernet} that uses thin {coaxial} cable (RG-58 or similar), as opposed to {10base5} cable.
The "10" means 10 {Mbps}, "base" means "baseband" as opposed to {radio frequency} and "2" means a maximum single cable length of 200m.
(1995-11-14)

10base5
[networking] An {Ethernet} network cabling specification operating at ten {Mbps}, "baseband" (as opposed to {radio frequency}), and with a maximum single cable length of 500 metres. This is normally carried on {RG8} cable.
Compare {10base2}, {10baseT}.
(2002-06-17)

10baset
10baseT
[networking] A variant of {Ethernet} which allows stations to be attached via {twisted pair} cable.
(1995-01-24)

120 reset
[jargon] /wuhn-twen'tee ree'set/ (After 120 volts, US mains voltage) To cycle power on a computer in order to reset or unjam it.
Compare {Big Red Switch}, {power cycle}.
[{Jargon File}]
(1994-11-23)

123
1-2-3
{Lotus 1-2-3}

1394
{High Performance Serial Bus}

1541
{Commodore 1541}

1581
{Commodore 1581}

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)

16450
[hardware] A {UART} with a 1-byte {FIFO} buffer. Superseded by the {16550}.
(2003-07-05)

16550
[hardware] A version of the {16450} {UART} with a 16-byte {FIFO}. Superseded by the 16550A.
(1995-01-24)

16550a
16550A
[hardware] A version of the {16550} {UART}. Superseded by the {16650}.
(2003-07-05)

16650
[hardware] A version of the {16550A} {UART} with a 32-byte {FIFO}. Superseded by the {16750C}.
(2003-07-05)

16750c
16750C
[hardware] A {UART} with a 64-byte {FIFO}.
(2003-07-05)

16bit application
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
1NF
{database normalisation}

1tbs
1TBS
One True Brace Style.
See {indent style}.
[{Jargon File}]
(1995-01-25)

1tr6
1.TR.6
[networking, protocol] A {control channel protocol} for {ISDN}. It is a national {standard} in Germany but is being replaced by {Euro-ISDN}.
(1995-03-27)

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

20gate
20-GATE
[language] An algebraic language for the {G-20}, developed at {Carnegie} around 1965.
(1995-02-27)

2780
{Binary Synchronous Transmission}

2b1d
2B1D
{Basic Rate Interface}

2b1q
2B1Q
{two-binary, one-quaternary}

2bd
2B+D
{Basic Rate Interface}

2nf
2NF
{database normalisation}

2pak
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}

32bit application
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
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 r�le and there have been many contributors. Many new and innovative features have been added to 386BSD since its original release in June 1992. An unofficial patchkit, available from many {anonymous FTP} archives, solves many of the problems associated with 386BSD Version 0.1. In addition, many common Unix packages have been ported.
386BSD has been superseded by {FreeBSD} and {NetBSD}.
{FAQ
(http://www.cis.ohio-state.edu/hypertext/faq/usenet/386bsd-faq/part1/faq.html)}.
(1995-02-15)

386spartpar
386SPART.PAR
[operating system] (Or "{WIN386.SWP}") 386SPART.PAR is a {hidden file} created by {Windows 3.1} for use as {virtual memory} {swap file}. It is generally found in the {root directory}, however it may appear elsewhere (typically in the WINDOWS directory). Its size depends on how much virtual memory you have set up under (Control Panel) Enhanced under Virtual Memory. If you move or delete this file Windows will complain the next time you start it with a Swap File error.
{Windows 95} uses a similar file, except it is named WIN386.SWP, and the controls for it are located under Control Panel - System - Performance tab - Virtual Memory.
(1996-05-28)

386sx
386SX
{Intel 80386SX}

3com corporation
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)

3dnow
3DNow!
[architecture] A {floating point} {SIMD} extention from {AMD}.
[Extension of what? To do what?]
(2001-12-23)

3dnow professional
3DNow! Professional
[architecture] A {floating point} {SIMD} extention from {AMD}, compatible with {Intel}'s {SSE}, introduced with the {Athlon}-4.
[Relationship to {3DNow!}?]
(2001-12-23)

3do
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.
{3DO Home (http://www.3do.com/)}.
{Usenet} newsgroup: {news:rec.games.video.3do}.
(1994-12-13)

3gl
3GL
{third generation language}

3nf
3NF
{database normalisation}

3station
3Station
[computer, networking] The archetypal {diskless workstation}, developed by {Bob Metcalfe} at {3Com} and first available in 1986/1987.
The 3Station/2E had a 10 {MHz} {80286} {processor}, 1 {MB} of {RAM} (expandable to 5 MB), {VGA} compatible graphics with 256 {KB} of {video RAM}, and integrated {AUI}/{BNC} network {transceivers} for {LAN} access.
The product used a single {printed-circuit board} with four custom {ASICs}. It had no {floppy disk drive} or {hard disk}, it was booted from a {server} and stored all {end-user} {files} there.
3Com advertised "significant cost savings" due to the 3Station's ease of installation and low maintenance (this would now be referred to under the banner of "{TCO}").
The 3Station cost somewhere between an {IBM PC} {clone} and an IBM PC of the day. It was not commercially successful.
(2000-07-05)

3tier
3-tier
{three-tier}

404
[abuse] Someone who's clueless. From the {World-Wide Web} message "404, URL Not Found" meaning that the document you've tried to access can't be located.
"Don't bother asking him...he's 404, man".
404 is one of the standard response codes of the {telnet} {protocol} on which the web's {HTTP} is based.
The first 4 indicates a client error such as a mistyped URL. The middle 0 refers to a general syntax error. The last 4 just indicates the specific error in the group of 40x, which also includes 400: Bad Request, 401: Unauthorized, etc.
(2000-03-18)

42bsd
4.2BSD
{Berkeley Software Distribution}

431a
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
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
486SX
{Intel 486SX}

4gl
4GL
{fourth generation language}

4nf
4NF
{database normalisation}

51forth
[language] A subroutine-{threaded} {Forth} for the {8051} by Scott Gehmlich. It comes with source and documentation.
{(ftp://smis-novell-1.massey.ac.nz/giovanni/51forth.zip)}.
(1993-04-03)

56 kbps
[communications] (56 kilobits per second) The data capacity of a normal single channel digital telephone channel in North America. The figure is derived from the {bandwidth} of 4 kHz allocated for such a channel and the 16-bit encoding (4000 times 16 = 64000) used to change {analogue} signals to digital, minus the 8000 bit/s used for signalling and supervision.
At the end of 1997 there were two rival {modem} designs capable of this rate: {k56flex} and {US Robotics}' {X2}. In February 1998 the {ITU} proposed a 56kbps standard called {V.90}, which is expected to be formally approved during September 1998.
(1998-09-15)

56k line
[communications] A digital connection (possibly a {leased line}, possibly switched) capable of carrying {56 kbps}.
Compare {DS0}.
(2000-07-16)

586
[processor] What {Intel}'s {Pentium} was not called.

5ess switch
5ESS Switch
[communications] The class 5 electronic switching system sold by {Lucent Technologies}. The 5ESS Switch is the digital {central office} {circuit switching} system many communication {service providers} use.
(2001-07-12)

5nf
5NF
{database normalisation}

5th glove
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)

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

6501
[hardware] An eight-bit {microprocessor}, the first sold by {MOS Technologies}. The 6501 pin-compatible with the {Motorola 6800} and was the first member of the 650x series. It had an on-chip clock oscillator.
See also {6502}.
(2001-02-26)

6502
[hardware] An eight-bit {microprocessor} designed by {MOS Technologies} around 1975 and made by {Rockwell}.
Unlike the {Intel 8080} and its kind, the 6502 had very few {registers}. It was an 8-bit processor, with 16-bit {address bus}. Inside was one 8-bit data register ({accumulator}), two 8-bit {index registers} and an 8-bit {stack pointer} (stack was preset from address 256 to 511). It used these index and stack registers effectively, with more {addressing modes}, including a fast zero-page mode that accessed memory locations from address 0 to 255 with an 8-bit address (it didn't have to fetch a second byte for the address).
Back when the 6502 was introduced, {RAM} was actually faster than {CPU}s, so it made sense to 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 computers}. {Steve Wozniak} described it as the first chip you could get for less than a hundred dollars (actually a quarter of the {6800} price).
The 6502's {indirect jump} instruction, JMP (xxxx), was {broken}. If the address was hexadecimal xxFF, the processor would not access the address stored in xxFF and xxFF + 1, but rather xxFF and xx00. The {6510} did not fix this bug, nor was it fixed in any of the other {NMOS} versions of the 6502 such as the {8502}. Bill Mensch at {Western Design Center} was probably the first to fix it, in the {65C02}.
The 6502 also had undocumented instructions.
The {65816} is an expanded version of the 6502.
There is a 6502 {assembler} by Doug Jones [jones@cs.uiowa.edu] which supports {macros} and conditional features and can be used for linkage editing of object files. It requires {Pascal}.
See also {cross-assembler}, {RTI}, {Small-C}.
(2001-01-02)

650x
[hardware] A family of {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 successor to the {6502}.
The 6510 was used in the Commodore 64C. Successors included the {8502} used in the {Commodore 128} line.
(2001-01-02)

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
68HC11
{Motorola 68HC11}

68lc040
68LC040
{Motorola 68LC040}

6x86
{Cyrix 6x86}

754
{IEEE Floating Point Standard}

8 queens problem
{eight queens puzzle}

8 queens puzzle
{eight queens puzzle}

80186
{Intel 80186}

80188
{Intel 80188}

80211a
802.11a
[networking] A radio-based {LAN} {protocol} which speaks {OFDM} at 5GHz, one of the two {wi-fi} protocols.
(2003-09-02)

80211b
802.11b
[networking] A radio-based {LAN} {protocol} which speaks {DSSS} at 2.4GHz, one of the two {wi-fi} protocols.
(2003-09-02)

8022
802.2
{IEEE 802.2}

8023
802.3
{IEEE 802.3}

80286
{Intel 80286}

8031
{Intel 8051}

80386
{Intel 80386}

8048
{Intel 8048}

80486
{Intel 486}

8051
{Intel 8051}

8052
{Intel 8051}

8080
{Intel 8080}

8086
{Intel 8086}

8088
{Intel 8088}

80x86
{Intel 80x86}

822
{RFC 822}

82430fx
82430FX
{Triton I}

82430hx
82430HX
{Triton II}

82430mx
82430MX
{Mobile Triton}

82430vx
82430VX
{Triton VX}

83
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 superseded by {XGA}.
(1999-08-01)

8514a
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)

8bit clean
8-bit clean
{eight-bit clean}

8n1
8N1
[jargon] Common shorthand for "eight data bits, no {parity}, one {stop bit}", the most common configuration for {serial line}s, e.g. {EIA-232}.
(1995-01-31)

8x86
{Intel 80x86}

9090 rule
90-90 Rule
{Ninety-Ninety Rule}

9pac
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)

a
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 hardware programming language
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)

a k erlang
A. K. Erlang
[person] (1878-1929) A Danish mathematician. {Erlang} the language and unit were named after him.
Interested in the theory of probability, in 1908 Erlang joined the Copenhagen Telephone Company where he studied the problem of waiting times for telephone calls.
He worked out how to calculate the fraction of callers who must wait due to all the lines of an exchange being in use. His formula for loss and waiting time was published in 1917. It is now known as the "Erlang formula" and is still in use today.
{Biography
(http://www-history.mcs.st-andrews.ac.uk/~history/Mathematicians/Erlang.html)}, {Biography (http://pass.maths.org.uk/issue2/erlang/index.html)}.
[What was his name?]
(2000-10-28)

a language encouraging program hierarchy
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
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
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)

a manufacturing language
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)

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)

a programming language
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 and programming environment 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}.
{Dyadic Systems} {APL/W} is one of the languages that will be available under {Microsoft}'s {.NET} initative.
Versions: APL\360, APL SV, {Dyalog APL}, VS APL, Sharp APL, Sharp APL/PC, APL*PLUS, APL*PLUS/PC, APL*PLUS/PC II, MCM APL, Honeyapple, DEC APL, Cognos {APL2000 (http://www.apl2000.com/)}, IBM {APL2}.
See also {Kamin's interpreters}.
{APLWEB} translates {WEB} to {APL}.
{Dijkstra} said that APL was a language designed to perfection - in the wrong direction.
["A Programming Language", Kenneth E. Iverson, Wiley, 1962].
["APL: An Interactive Approach", 1976].
(2002-01-19)

a search
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)

a simulation processoriented language
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)

a tools integration standard
A Tools Integration Standard
[software, library] (ATIS) An {object-oriented} interface to a set of services that allows the saving, accessing and managing of information in a common repository. Developed by {Atherton Technology} and {DEC}, based on an extended version of the {Software BackPlane}, proposed as an industry standard.
(1994-10-25)

a0
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
A1 security
{Orange Book}

a20 handler
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)

a3
A-3
{ARITH-MATIC}

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

aac
AAC
{Advanced Audio Coding}

aadl
AADL
{Axiomatic Architecture Description Language}

aal
AAL
{ATM Adaptation Layer}

aap
AAP
{Association of American Publishers}

aap dtd
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
AARP
{Apple Address Resolution Protocol}

aarp probe packets
AARP probe packets
[networking] {AARP} {packets} sent out on a nonextended {AppleTalk} network to discover whether a randomly selected node ID is being used by any node. If not, the sending node uses the node ID. If so, it chooses a different ID and sends more AARP probe packets.
(1997-05-03)

aaui
AAUI
{Apple Attachment Unit Interface}

ab
A&B
[communications] A {bit signaling procedure} used in most {T1} transmission facilities where one bit from every sixth frame of each of 24 T1 {subchannels} is used for carrying {supervisory signaling}.
[What does it stand for? Is this the same as "{bit robbing}"?]
(1997-05-05)

abbrev
[jargon] /*-breev'/, /*-brev'/ Common abbreviation for "abbreviation".
(1995-02-27)

abbreviated test language for avionics systems
Abbreviated Test Language for Avionics Systems
[language] (ATLAS) A Mil-spec language for automatic testing of avionics equipment. ATLAS replaced {Gaelic} and several other test languages.
["IEEE Standard ATLAS Test Language", IEEE Std 416-1976].
(2000-04-03)

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

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

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

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

abclr2
ABCL/R2
[language] An {object-oriented}, {concurrent}, {reflective} language based on {Hybrid Group Architecture}. ABCL/R2 was produced by [masuhara@is.s.u-tokyo.ac.jp], [matsu@is.s.u-tokyo.ac.jp], [takuo@is.s.u-tokyo.ac.jp], [yonezawa@is.s.u-tokyo.ac.jp], at the {Tokyo Institute of Technology} in 1992.
As a reflective language, an ABCL/R2 program can dynamically control its own behaviour, such as {scheduling} policy, from within a user-program. This system has almost all functions of {ABCL/1} and is written in {Common Lisp}.
{(ftp://camille.is.s.u-tokyo.ac.jp/pub/abclr2/)}.
(1993-01-28)

abduction
[logic] The process of {inference} to the best explanation.
"Abduction" is sometimes used to mean just the generation of hypotheses to explain observations or conclusionsm, but the former definition is more common both in philosophy and computing.
The {semantics} and the implementation of abduction cannot be reduced to those for {deduction}, as explanation cannot be reduced to implication.
Applications include fault diagnosis, plan formation and {default reasoning}.
{Negation as failure} in {logic programming} can both be given an abductive interpretation and also can be used to implement abduction. The abductive semantics of negation as failure leads naturally to an {argumentation}-theoretic interpretation of default reasoning in general.
[Better explanation? Example?]
["Abductive Inference", John R. Josephson [jj@cis.ohio-state.edu]].
(2000-12-07)

abend
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".
[{Jargon File}]
(1994-11-08)

abi
ABI
{Application Binary Interface}

able
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
ABM
{Asynchronous Balanced Mode}

abnf
ABNF
{Augmented Backus-Naur Form}

abort
[programming] To terminate a program or {process} abnormally and usually suddenly, with or without {diagnostic} information. "My program aborted", "I aborted the transmission". The noun form in computing is "abort", not "abortion", e.g. "We've had three aborts over the last two days".
If a {Unix} {kernel} aborts it is known as a {panic}.
(1997-01-07)

abp
ABP
1. [networking] {Alternating bit protocol}.
2. {Microsoft} {Address Book Provider}.
(2001-02-11)

abr
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
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 kind of {data abstraction} where a type's internal form is hidden behind a set of {access functions}. Values of the type are created and inspected only by calls to the access functions. This allows the implementation of the type to be changed without requiring any changes outside the {module} in which it is defined.
{Objects} and ADTs are both forms of data abstraction, but objects are not ADTs. Objects use procedural abstraction (methods), not type abstraction.
A classic example of an ADT is a {stack} data type for which functions might be provided to create an empty stack, to {push} values onto a stack and to {pop} values from a stack.
{Reynolds paper (http://www.cis.upenn.edu/~gunter/publications/documents/taoop94.html)}.
{Cook paper "OOP vs ADTs" (http://www.wcook.org/papers/OOPvsADT/CookOOPvsADT90.pdf)}.
(2003-07-03)

abstract interpretation
[theory] A partial execution of a program which gains information about its {semantics} (e.g. control structure, flow of information) without performing all the calculations. Abstract interpretation is typically used by compilers to analyse programs in order to decide whether certain optimisations or transformations are applicable.
The objects manipulated by the program (typically values and functions) are represented by points in some {domain}. Each abstract domain point represents some set of real ("{concrete}") values.
For example, we may take the abstract points "+", "0" and "-" to represent positive, zero and negative numbers and then define an abstract version of the multiplication operator, *#, which operates on abstract values:
*# | + 0 - ---|------ + | + 0 - 0 | 0 0 0 - | - 0 +
An interpretation is "safe" if the result of the abstract operation is a safe approximation to the abstraction of the concrete result. The meaning of "a safe approximation" depends on how we are using the results of the analysis.
If, in our example, we assume that smaller values are safer then the "safety condition" for our interpretation (#) is
a# *# b# [= (a * b)#
where a# is the abstract version of a etc.
In general an interpretation is characterised by the {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)

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
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
Abstract Syntax Notation 1
[language, standard, protocol] (ASN.1, X.208, X.680) An {ISO}/{ITU-T} {standard} for transmitting structured {data} on {networks}, originally defined in 1984 as part of {CCITT X.409} '84. ASN.1 moved to its own standard, X.208, in 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 the way the information is encoded. Various ASN.1 encoding rules provide the {transfer syntax} (a {concrete} representation) of the data values whose {abstract syntax} is described in ASN.1. The standard ASN.1 encoding rules include {BER} (Basic Encoding Rules - X.209), {CER} (Canonical Encoding Rules), {DER} (Distinguished Encoding Rules), and {PER} (Packed Encoding Rules).
ASN.1 together with specific ASN.1 encoding rules facilitates the exchange of structured data especially between {application programs} over networks by describing data structures in a way that is independent of machine architecture and implementation language.
{OSI} {Application layer} {protocols} such as {X.400} {MHS} {electronic mail}, {X.500} directory services and {SNMP} use ASN.1 to describe the {PDU}s they exchange.
Documents describing the ASN.1 notations: {ITU-T} Rec. X.680, {ISO} 8824-1; {ITU-T} Rec. X.681, {ISO} 8824-2; {ITU-T} Rec. X.682, {ISO} 8824-3; {ITU-T} Rec. X.683, {ISO} 8824-4
Documents describing the ASN.1 encoding rules: {ITU-T} Rec. X.690, {ISO} 8825-1; {ITU-T} Rec. X.691, {ISO} 8825-2.
[M. Sample et al, "Implementing Efficient Encoders and Decoders for Network Data Representations", IEEE Infocom 93 Proc, v.3, pp. 1143-1153, Mar 1993. Available from Logica, UK].
See also {snacc}.
(2000-10-20)

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 window toolkit
Abstract Window Toolkit
[graphics] (AWT) {Java}'s {platform}-independent {windowing}, graphics, and user-interface {toolkit}. The AWT is part of the {Java Foundation Classes} (JFC) - the standard {API} for providing a {graphical user interface} (GUI) for a Java program.
Compare: {SWING}.
["Java in a Nutshell", O'Reilly].
{Home (http://java.sun.com/products/jdk/awt/)}.
(2000-07-26)

abstract windowing toolkit
Abstract Windowing Toolkit
{Abstract Window Toolkit}

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)

abstracttype and schemedefinition language
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)

absys
ABSYS
[language] An early {declarative language} from the {University of Aberdeen} which anticipated a number of features of Prolog.
["ABSYS: An Incremental Compiler for Assertions", J.M. Foster et al, Mach Intell 4, Edinburgh U Press, 1969, pp. 423-429].
(1994-11-08)

ac2
AC2
[audio] An {audio} format, succeded by {AC3}.
(2001-12-18)

ac3
AC3
[audio] An {audio} format by Sony[?], the successor of {AC2}. AC3 is used for multi-channel {audio} for {digital video}.
(2001-12-18)

aca
ACA
{Application Control Architecture}

acap
ACAP
{Application Configuration Access Protocol}

accelerated graphics port
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
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
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 test or launch language
Acceptance, Test Or Launch Language
[language] (ATOLL) The language used for automating the checking and launch of Saturn rockets.
["SLCC ATOLL User's Manual", IBM 70-F11-0001, Huntsville AL Dec 1970].
(2000-04-03)

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)

acceptor
{Finite State Machine}

access
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
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
ACCLAIM
[project] A European Union {ESPRIT} {Basic Research Action}.
[What's it about?]
(1994-11-08)

accounting file
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
ACCU
{Association of C and C++ Users}

accumulator
[processor] In a {central processing unit}, a {register} in which intermediate results are stored. Without an accumulator, it would be necessary to write the result of each calculation (addition, multiplication, {shift}, etc.) to {main memory} and read them back. Access to main memory is slower than access to the accumulator which usually has direct paths to and from the {arithmetic and logic unit} (ALU).
The {canonical} example is summing a list of numbers. The accumulator is set to zero initially, each number in turn is added to the value in the accumulator and only when all numbers have been added is the result written to main memory.
Modern CPUs usually have many registers, all or many of which can be used as accumulators. For this reason, the term "accumulator" is somewhat archaic. Use of it as a synonym for "register" is a fairly reliable indication that the user has been around for quite a while and/or that the architecture under discussion is quite old. The term in full is almost never used of microprocessor registers, for example, though symbolic names for arithmetic registers beginning in "A" derive from historical use of the term "accumulator" (and not, actually, from "arithmetic"). Confusingly, though, an "A" register name prefix may also stand for "address", as for example on the {Motorola} {680x0} family.
2. [programming] A register, memory location or variable being used for arithmetic or logic (as opposed to addressing or a loop index), especially one being used to accumulate a sum or count of many items. This use is in context of a particular routine or stretch of code. "The FOOBAZ routine uses A3 as an accumulator."
[{Jargon File}]
(1999-04-20)

accuracy
[mathematics] How close to the real value a measurement is.
Compare {precision}.
(1998-04-19)

ace
ACE
1. {Advanced Computing Environment}.
2. {Adaptive Communication Environment}.

acf
ACF
{Advanced Communications Function}

acfncp
ACF/NCP
{Advanced Communication Function/Network Control Program}

acia
ACIA
{Asynchronous Communications Interface Adapter}

acid
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
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
ACK
1. [character] /ak/ The {mnemonic} for the ACKnowledge character, {ASCII} code 6.
2. [communications] A message transmitted to indicate that some data has been received correctly. Typically, if the sender does not receive the ACK message after some predetermined time, or receives a {NAK}, the original data will be sent again.
[{Jargon File}]
(1997-01-07)

acl
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
ACM
1. [body] The {Association for Computing}.
2. [communications] {addressed call mode}.
(1997-05-07)

acme
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
ACOM
[language] An early system on the {IBM 705}.
[Listed in CACM 2(5):16 (May 1959)].
(1994-11-08)

acorn archimedes
Acorn Archimedes
{Archimedes}

acorn computer group
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
Acorn Computers Ltd.
[company] A UK computer manufacturer, part of the {Acorn Computer Group} plc. Acorn was founded on 1978-12-05, on a kitchen table in a back room. Their first creation was an electronic slot machine. After the {Acorn System 1}, 2 and 3, Acorn launched the first commercial {microcomputer} - the {ATOM} in March 1980. In April 1981, Acorn won a contract from the {BBC} to provide the {PROTON}. In January 1982 Acorn launched the {BBC Microcomputer} System. At one time, 70% of microcomputers bought for UK schools were BBC Micros.
The Acorn Computer Group went public on the Unlisted Securities Market in September 1983. In April 1984 Acorn won the Queen's Award for Technology for the BBC Micro and in September 1985 {Olivetti} took a controlling interest in Acorn. The {Master} 128 Series computers were launched in January 1986 and the BBC {Domesday} System in November 1986.
In 1983 Acorn began to design the Acorn RISC Machine (ARM), the first low-cost, high volume {RISC} processor chip (later renamed the {Advanced RISC Machine}). In June 1987 they launched the {Archimedes} range - the first 32-bit {RISC} based {microcomputers} - which sold for under UKP 1000. In February 1989 the R140 was launched. This was the first {Unix} {workstation} under UKP 4000. In May 1989 the A3000 (the new {BBC Microcomputer}) was launched.
In 1990 Acorn formed {Advanced RISC Machines} Ltd. (ARM) in partnership with {Apple Computer, Inc.} and {VLSI} to develop the ARM processor. Acorn has continued to develop {RISC} based products.
With 1992 revenues of 48.2 million pounds, Acorn Computers was the premier supplier of {Information Technology} products to UK education and had been the leading provider of 32-bit RISC based {personal computers} since 1987.
Acorn finally folded in the late 1990s. Their operating system, {RISC OS} was further developed by a consortium of suppliers.
{Usenet} newsgroups: {news:comp.sys.acorn}, {news:comp.sys.acorn.announce}, {news:comp.sys.acorn.tech}, {news:comp.binaries.acorn}, {news:comp.sources.acorn}, {news:comp.sys.acorn.advocacy}, {news:comp.sys.acorn.games}.
{Acorn's FTP server (ftp://ftp.acorn.co.uk/)}.
{HENSA software archive (http://micros.hensa.ac.uk/micros/arch.html)}. {Richard Birkby's Acorn page (http://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)}.
[Recent history?]
(2000-09-26)

acorn risc machine
Acorn RISC Machine
[processor] The original name of the {Advanced RISC Machine}.
(1995-03-07)

acos
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
ACP
{Algebra of Communicating Processes}

acpi
ACPI
{Advanced Configuration and Power Interface}

acrobat
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
ACSE
{Association Control Service Element}

act
ACT
1. [software] {Annual Change Traffic}.
2. [company] {Ada Core Technologies}.
(1999-06-24)

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

act one
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)

act1
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
Act2
[language] An {actor} language.
["Issues in the Design of Act2", D. Theriault, TR728, MIT AI Lab, June 1983].
(1994-11-08)

act3
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
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
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
active DBMS
[database] A conventional or passive {DBMS} combined with a means of event detection and condition monitoring. Event handling is often rule-based, as with an {expert system}.
(1994-11-08)

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

active language i
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
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
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
Active Server Pages
[World-Wide Web, programming] (ASP) A {scripting} environment for {Microsoft Internet Information Server} in which you can combine {HTML}, scripts and reusable {ActiveX} {server} components to create dynamic {web pages}.
IIS 4.0 includes scripting engines for {Microsoft Visual Basic} Scripting Edition ({VBScript}) and {Microsoft JScript}. {ActiveX} scripting engines for {Perl} and {REXX} are available through third-party developers.
[URL?]
(1999-12-02)

activex
ActiveX
[programming] A type of {COM} component that can self-register, also known as an "ActiveX control". All COM objects implement the "IUnknown" interface but an ActiveX control usually also implements some of the standard interfaces for embedding, user interface, methods, properties, events, and persistence.
ActiveX controls were originally called "{OLE} Controls", and were required to provide all of these interfaces but that requirement was dropped, and the name changed, to make ActiveX controls lean enough to be downloaded as part of a web page.
Because ActiveX components can support the OLE embedding interfaces, they can be included in web pages. Because they are COM objects, they can be used from languages such as {Visual Basic}, {Visual C++}, {Java}, {VBScript}.
["Understanding ActiveX and OLE", David Chappell, MS Press, 1996].
{Home (http://www.microsoft.com/com/tech/activex.asp)}.
(2002-04-19)

activex data objects
ActiveX Data Objects
[database, Microsoft, programming] (ADO) {Microsoft}'s {library} for accessing data sources through {OLE DB}. Typically it is used to query or modify data stored in a relational database.
{Home (http://msdn.microsoft.com/library/en-us/ado270/htm/adostartpage1.asp)}.
(2003-07-08)

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)

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

actors
Actors
[theory] A model for {concurrency} by {Carl Hewitt}. Actors are autonomous and concurrent {objects} which execute {asynchronously}. The Actor model provides flexible mechanisms for building parallel and {distributed} software systems.
{(http://osl.cs.uiuc.edu/)}.
["Laws for Communicating Parallel Processes", C. Hewitt et al, IFIP 77, pp. 987-992, N-H 1977].
["ACTORS: A Model of Concurrent Computation in Distributed Systems", Gul A. Agha [agha@cs.uiuc.edu], Cambridge Press, MA, 1986].
(1999-11-23)

actorsingerwaiterwebmaster
actor/singer/waiter/webmaster
[World-Wide Web] An elaboration of the ages-old concept of the actor/singer/waiter, someone who waits tables _for now_, but who has aspirations of breaking into the glamorous worlds of acting or New Media or both!
He keeps going to auditions and sending a resumes to {C|Net (http://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
Actra
[language] A {multi-processor} {exemplar}-based {Smalltalk}.
[LaLonde et al, OOPSLA '86].
(1994-11-08)

actual argument
[programming] A value, expression, or reference passed to a {function} or {subroutine} when it is called and which replaces or is bound to the corresponding {formal argument}.
See: {argument}.
(2002-07-02)

actus
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
AD
{Administrative Domain}

ad
[networking] The {country code} for Andorra.
(1999-01-26)

ad converter
A/D converter
{Analog to Digital Converter}

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)

ada
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 support {single inheritance}, using "tagged types" which are types that can be extended via {inheritance}.
Ada programming places a heavy emphasis on {multitasking}. Tasks are synchronised by the {rendezvous}, in which a task waits for one of its subroutines to be executed by another. The conditional entry makes it possible for a task to test whether an entry is ready. The selective wait waits for either of two entries or waits for a limited time.
Ada is often criticised, especially for its size and complexity, and this is attributed to its having been designed by committee. In fact, both Ada 83 and Ada 95 were designed by small design teams to be internally consistent and tightly integrated. By contrast, two possible competitors, {Fortran 90} and {C++} have both become products designed by large and disparate volunteer committees.
See also {Ada/Ed}, {Toy/Ada}.
{Home of the Brave Ada Programmers (http://lglwww.epfl.ch/Ada/)}. {Ada FAQs (http://lglwww.epfl.ch/Ada/FAQ/)} (hypertext), {text only (ftp://lglftp.epfl.ch/pub/Ada/FAQ)}.
{(http://wuarchive.wustl.edu/languages/ada/)}, {(ftp://ajpo.sei.cmu.edu/)}, {(ftp://stars.rosslyn.unisys.com/pub/ACE_8.0)}.
E-mail: [adainfo@ajpo.sei.cmu.edu].
{Usenet} newsgroup: {news:comp.lang.ada}.
{An Ada grammar (ftp://primost.cs.wisc.edu/)} including a lex scanner and yacc parser is available. E-mail: [masticol@dumas.rutgers.edu].
{Another yacc grammar and parser for Ada by Herman Fischer (ftp://wsmr-simtel20.army.mil/PD2:[ADA.EXTERNAL-TOOLS]GRAM2.SRC)}.
An {LR parser} and {pretty-printer} for {Ada} from NASA is available from the {Ada Software Repository}.
{Adamakegen} generates {makefiles} for {Ada} programs.
["Reference Manual for the Ada Programming Language", ANSI/MIL STD 1815A, US DoD (Jan 1983)]. Earlier draft versions appeared in July 1980 and July 1982. ISO 1987.
[{Jargon File}]
(2000-08-12)

ada
Ada++
[language] An {object-oriented} extension to {Ada}, implemented as an Ada {preprocessor}. Obsoleted by {Ada 95} which includes object-oriented features.
[{Jargon File}]
(1995-09-19)

ada 83
Ada 83
[language] The original {Ada}, as opposed to {Ada 95}.
(1995-03-13)

ada 95
Ada 95
[language] A revision and extension of {Ada} (Ada 83) begun in 1988 and completed on 1994-12-01 by a team lead by Tucker Taft of {Intermetrics}. Chris Anderson was the Project Manager. The printed standard was expected to be available around 1995-02-15.
Additions include {object-orientation} ({tagged types}, {abstract types} and {class-wide types}), hierarchical libraries and synchronisation with shared data (protected types) similar to {Orca}. It lacks {multiple inheritance} but supports the construction of multiple inheritance type hierarchies through the use of {generics} and {type composition}.
{GNAT} aims to be a free implementation of Ada 95.
You can get the standard from the {Ada Joint Program Office (http://wuarchive.wustl.edu/languages/ada/ajpo/index.shtml)}.
["Introducing Ada 9X", J.G.P. Barnes, Feb 1993].
(1999-12-02)

ada 9x
Ada 9X
[language] The working title for {Ada 95} before its adoption as an {ISO} {standard}.
(1995-01-19)

ada core technologies
Ada Core Technologies
[company] (ACT) The company that maintains {GNAT}.
Ada Core Technologies was founded in 1994 by the original authors of the GNAT compiler. ACT provides software for {Ada 95} development.
{Home (http://www.gnat.com/)}.
(2000-10-28)

ada lovelace
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)

ada programming support environment
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)

ada semantic interface specification
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
Ada Software Repository
[language] A collection of {Ada} programs?
{Home (http://wuarchive.wustl.edu/languages/ada/asr/)}.
(1995-01-06)

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

adaed
Ada/Ed
[language, education] An {interpreter}, editor, and {run-time environment} for {Ada}, intended as a teaching tool. Ada/Ed does not have the capacity, performance, or robustness of commercial Ada compilers. Ada/Ed was developed at {New York University} as part of a project in language definition and software prototyping.
AdaEd runs on {Unix}, {MS-DOS}, {Atari ST}, and {Amiga}.
It handles nearly all of {Ada 83} and was last validated with version 1.7 of the {ACVC} tests. Being an interpreter, it does not implement most {representation clause}s and thus does not support systems programming close to the machine level.
Latest version: 1.11.0a+, as of 1994-08-18. A later version is known as {GW-Ada}.
E-mail: Michael Feldman [mfeldman@seas.gwu.edu].
{(ftp://ftp.wustl.edu/amiga/languages/ada)}, {(ftp://cnam.cnam.fr/pub/Ada/Ada-Ed)}. {For Amiga (ftp://cs.nyu.edu/pub/adaed)}.
{RISC OS port (ftp://micros.hensa.ac.uk/micros/arch/riscos/c/c052)}.
(1999-11-04)

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

adam
ADAM
{A Data Management system}

adam7
Adam7
[graphics, algorithm] One of the {progressive coding} methods used in {PNG} {images}. Adam7, named after its author, Adam M. Costello, consists of seven distinct passes over the image. Each pass transmits a subset of the {pixels} in the image. The pass in which each pixel is transmitted is defined by replicating the following 8-by-8 pattern over the entire image, starting at the top left:
1 6 4 6 2 6 4 6 7 7 7 7 7 7 7 7 5 6 5 6 5 6 5 6 7 7 7 7 7 7 7 7 3 6 4 6 3 6 4 6 7 7 7 7 7 7 7 7 5 6 5 6 5 6 5 6 7 7 7 7 7 7 7 7
(2000-09-12)

adamakegen
Adamakegen
[tool] A program that generates {makefiles} for {Ada} programs. Adamakegen was written by Owen O'Malley [owen-omalley@home.net]. It requires {Icon} and runs under {Verdix} and {SunAda}.
Current version: 2.6.3, as of 1993-03-02.
{Home (http://members.home.net/owenomalley/adamakegen.html)}.
(2001-11-07)

adamo
ADAMO
[database] A data management system written at CERN based on the {Entity-Relationship model}.
(1995-03-14)

adao
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
Adaplan
[language] A {functional database} language based upon {Backus}' {FP} language.
[Erwig&Lipeck, Proc. DBPL-3, 1991].
(1995-05-07)

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

adapt
ADAPT
[language] A subset of {APT}.
[Sammet 1969, p. 606].
(1995-02-14)

adaptable user interface
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
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
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
Adaptive Digital Pulse Code Modulation
[communications] (ADPCM) A {compression} technique which records only the difference between samples and adjusts the coding scale dynamically to accomodate large and small differences. ADPCM is simple to implement, but introduces much {noise}.
[Used where? Does the {Sony} minidisk use ADPCM or {ATRAC}?]
(1998-12-10)

adaptive learning
[algorithm] (Or "{Hebbian} learning") Learning where a system programs itself by adjusting weights or strengths until it produces the desired output.
(1995-03-16)

adaptive routing
{dynamic routing}

adaptive server enterprise
Adaptive Server Enterprise
[database (ASE) The {relational database management system} that started life in the mid-eighties [first release?] as "Sybase SQL Server". For a number of years {Microsoft} was a Sybase distributor, reselling the Sybase product for {OS/2} and (later) {Windows NT} under the name "Microsoft SQL Server".
Around 1994, Microsoft basically bought a copy of the {source code} of Sybase SQL Server and then went its own way. As competitors, Sybase and Microsoft have been developing their products independently ever since. Microsoft has mostly emphasised ease-of-use and "Window-ising" the product, while Sybase has focused on maximising performance and reliability, and running on high-end hardware.
When releasing version 11.5 in 1997, Sybase renamed its product to "ASE" to better distinguish its database from Microsoft's. Both ASE and MS SQL Server call their query language "Transact-SQL" and they are very similar.
Sybase SQL Server was the first true {client-server} RDBMS which was also capable of handling real-world workloads. In contrast, other DBMSs have long been monolithic programs; for example, {Oracle} only "bolted on" client-server functionality in the mid-nineties. Also, Sybase SQL Server was the first commercially successful RDBMS supporting {stored procedures} and {triggers}, and a cost-based {query optimizer}.
As with many other technology-driven competitors of Microsoft, Sybase has lost market share to MS's superior marketing, though many consider it has the superior system.
{(http://www.sypron.nl/whatis_ase.html)}.
(2003-07-02)

adaptive simulated annealing
Adaptive Simulated Annealing
[language] (ASA) An {algorithm} for global optimisation of generic {functions} by Lester Ingber [ingber@alumni.caltech.edu] [ingber@ingber.com].
Latest version: 20.5, as of 2000-02-29.
{Home (http://www.alumni.caltech.edu/~ingber/)}.
{Home (http://www.ingber.com/)}.
Mailing list: [asa-request@alumni.caltech.edu].
(2000-02-29)

adaptive transform acoustic coding
Adaptive TRansform Acoustic Coding
[algorithm] (ATRAC) An audio compression {algorithm}, introduced by {Sony} for its {Mini Disk}, which relies on the masking of low-amplitude frequency components by temporaly adjacent high-amplitude components. ATRAC consists of a three-band {subband encoder} (0...5.5, 5.5...11, 11...22 kHz) and a {MDCT} based transformation encoder.
[Does Sony Minidisk use {ADPCM}?]
(2001-12-13)

adaptor
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)}.
[Connection with Thomas Brandes and GMD?]
(1993-06-01)

adc
ADC
{Analog to Digital Converter}

adccp
ADCCP
{Advanced Data Communications Control Protocol}

adcu
ADCU
{application developer customer unit}

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

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
Address Resolution Protocol
[networking, protocol] (ARP) A method for finding a {host}'s {Ethernet address} from its {Internet address}. The sender broadcasts an ARP {packet} containing the {Internet address} of another host and waits for it (or some other host) to send back its Ethernet address. Each host maintains a {cache} of address translations to reduce delay and loading. ARP allows the Internet address to be independent of the Ethernet address but it only works if all hosts support it.
ARP is defined in {RFC 826}.
The alternative for hosts that do not do ARP is {constant mapping}.
See also {proxy ARP}, {reverse ARP}.
(1995-03-20)

address space
[operating system, architecture] The range of addresses which a processor or process can access, or at which a {device} can be accessed. The term may refer to either {physical address} or {virtual address}.
The size of a processor's address space depends on the width of the processor's {address bus} and address {registers}.
Each device, such as a memory {integrated circuit}, will have its own local address space which starts at zero. This will be mapped to a range of addresses which starts at some base address in the processor's address space.
Similarly, each {process} will have its own address space, which may be all or a part of the processor's address space. In a {multitasking} system this may depend on where in memory the process happens to have been loaded. For a process to be able to run at any address it must consist of {position-independent code}. Alternatively, each process may see the same local address space, with the {memory management unit} mapping this to the process's own part of the processor's address space.
(1999-11-01)

address strobe
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)

addressed call mode
[communications] (ACM) A mode that permits control signals and commands to establish and terminate calls in {V.25bis}.
(1997-05-07)

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

addressing mode
1. [processor, programming] One of a set of methods for specifying the {operand}(s) for a {machine code} instruction. Different processors vary greatly in the number of addressing modes they provide. The more complex modes described below can usually be replaced with a short sequence of instructions using only simpler modes.
The most common modes are "register" - the operand is stored in a specified {register}; "absolute" - the operand is stored at a specified memory address; and "{immediate}" - the operand is contained within the instruction.
Most processors also have {indirect addressing} modes, e.g. "register indirect", "memory indirect" where the specified register or memory location does not contain the operand but contains its address, known as the "{effective address}". For an absolute addressing mode, the effective address is contained within the instruction.
Indirect addressing modes often have options for pre- or post- increment or decrement, meaning that the register or memory location containing the {effective address} is incremented or decremented by some amount (either fixed or also specified in the instruction), either before or after the instruction is executed. These are very useful for {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)

adele
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
ADES
[language] An early system on the {IBM 704}.
Version: ADES II.
[Listed in CACM 2(5):16 (May 1959)].
(1995-03-20)

adhoc polymorphism
ad-hoc polymorphism
{overloading}

adhockery
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}.
[{Jargon File}]
(1995-01-05)

aditi
Aditi
[database, project] The Aditi Deductive Database System. A multi-user {deductive database} system from the Machine Intelligence Project at the {University of Melbourne}. It supports base {relations} defined by {facts} (relations in the sense of {relational databases}) and {derived relations} defined by {rules} that specify how to compute new information from old information.
Both base relations and the rules defining derived relations are stored on disk and are accessed as required during query evaluation. The rules defining derived relations are expressed in a {Prolog}-like language, which is also used for expressing queries.
Aditi supports the full structured data capability of Prolog. Base relations can store arbitrarily nested terms, for example arbitrary length lists, and rules can directly manipulate such terms. Base relations can be indexed with {B-trees} or multi-level signature files.
Users can access the system through a {Motif}-based query and database administration tool, or through a command line interface. There is also in interface that allows {NU-Prolog} programs to access Aditi in a transparent manner. Proper {transaction processing} is not supported in this release.
The beta release runs on {SPARC}/{SunOS4}.1.2 and {MIPS}/{Irix}4.0.
E-mail: [aditi@cs.mu.oz.au].
(1992-12-17)

adjacency
[networking] A relationship between two {network} devices, e.g. {routers}, which are connected by one media segment so that a packet sent by one can reach the other without going through another network device. The concept of adjacency is important in the exchange of routing information.
Adjacent {SNA} {nodes} are nodes connected to a given node with no intervening nodes. In {DECnet} and {OSI}, adjacent nodes share a common segment ({Ethernet}, {FDDI}, {Token Ring}).
(1998-03-10)

adjacent
{adjacency}

adl
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
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
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
ADMD
{Administration Management Domain}

admin
{system administrator}

administration management domain
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
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)

ado
ADO
{ActiveX Data Objects}

adobe systems inc
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
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
ADPCM
{Adaptive Digital Pulse Code Modulation}

adr
ADR
{Astra Digital Radio}

ads
ADS
An {expert system}.

adsl
ADSL
{Asymmetric Digital Subscriber Line}

adsp
ADSP
{AppleTalk Data Stream Protocol}

adsu
ADSU
{ATM Data Service Unit}

adt
ADT
{abstract data type}

advanced audio coding
Advanced Audio Coding
[audio] (AAC) A successor to {MP3}, allowing lower {bit rates} and more stable quality.
See {MPEG-2 AAC Low Profile} and {MPEG-4 AAC Main Profile}.
(2001-12-02)

advanced communication functionnetwork control program
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
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
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
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
Advanced Data Communications Control Protocol
[protocol] An {ANSI} {standard} {bit-oriented} {data link} control {protocol}.
(1997-05-07)

advanced encryption standard
Advanced Encryption Standard
[cryptography, algorithm] (AES) The {NIST}'s replacement for the {Data Encryption Standard} (DES). The Rijndael /rayn-dahl/ {symmetric block cipher}, designed by Joan Daemen and Vincent Rijmen, was chosen by a NIST contest to be AES.
AES is Federal Information Processing Standard FIPS-197.
AES currently supports 128, 192 and 256-bit keys and encryption blocks, but may be extended in multiples of 32 bits.
{Home (http://csrc.nist.gov/CryptoToolkit/aes/)}.
{Rijndael home page (http://www.esat.kuleuven.ac.be/~rijmen/rijndael/)}.
(2003-07-04)

advanced function presentation
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 Printing
{Advanced Function Presentation}

advanced intelligent tape
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.shtml)}.
(1999-04-16)

advanced interactive executive
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
Advanced Micro Devices, Inc.
[company] (AMD) A US manufacturer of {integrated circuits}, founded in 1969. AMD was the fifth-largest IC manufacturer in 1995. AMD focuses on the personal and networked computation and communications market. They produce {microprocessors}, {embedded processors} and related peripherals, memories, {programmable logic devices}, circuits for telecommunications and networking applications.
In 1995, AMD had 12000 employees in the USA and elsewhere and manufacturing facilities in Austin, Texas; Aizu-Wakamatsu, Japan; Bangkok, Thailand; Penang, Malaysia; and Singapore.
AMD made the {AMD 2900} series of {bit-slice} {TTL} components and clones of the {Intel 80386} and {Intel 486} {microprocessors}.
{AMD Home (http://www.amd.com/)}.
Address: Sunnyvale, CA, USA.
(1995-02-27)

advanced network systems architecture
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 peertopeer networking
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
Advanced Power Management
[hardware] (APM) A feature of some displays, usually but not always, on {laptop computers}, which turns off power to the display after a preset period of inactivity to conserve electrical power. Monitors with this capability are usually refered to as "green monitors", meaning environmentally friendly.
Not to be confused with a {screen blanker} which is {software} that causes the display to go black (by setting every {pixel} to black) to prevent {burn-in}.
(1997-08-25)

advanced programmable interrupt controller
Advanced Programmable Interrupt Controller
[integrated circuit] (APIC) A {Programmable Interrupt Controller} (PIC) that can handle {interrupts} from and for multiple {CPU}s, and, usually, has more available interrupt lines that a typical PIC.
(2003-03-18)

advanced programtoprogram communications
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
Advanced Research Projects Agency
{Defense Advanced Research Projects Agency}

advanced research projects agency network
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
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
Advanced RISC Computing Specification
[standard, hardware] (ARC, previously ARCS) The baseline hardware requirements for an {ACE}-compatible system.
(1995-01-16)

advanced risc machine
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
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
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
Advanced Software Environment
[programming] (ASE) An {object-oriented} {application support system} from {Nixdorf}.
(1995-09-12)

advanced statistical analysis program
Advanced STatistical Analysis Program
[tool, electronics] (ASTAP) A program for analysing electronic circuits and other networks.
["Advanced Statistical Analysis Program (ASTAP) Program Reference Manual", SH-20-1118, IBM, 1973].
(2000-01-27)

advanced technology attachment
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
Advanced Technology Attachment Interface with Extensions
[storage, standard] (ATA-2, Enhanced Integrated Drive Electronics, EIDE) A proposed (May 1996 or earlier?) {standard} from {X3T10} (document 948D rev 3) which extends the {Advanced Technology Attachment} interface while maintaining compatibility with current {IBM PC} {BIOS} designs.
ATA-2 provides for faster data rates, 32-bit transactions and (in some drives) {DMA}. Optional support for power saving modes and removable devices is also in the standard.
ATA-2 was developed by {Western Digital} as "Enhanced Integrated Drive Electronics" (EIDE) around 1994. {Marketroids} call it "Fast ATA" or "Fast ATA-2".
ATA-2 was followed by {ATA-3} and {ATA-4} ("Ultra DMA").
(2000-10-07)

advanced waveffect
Advanced WavEffect
[multimedia, music, hardware] (AWE) The kind of synthesis used by the {EMU 8000} music synthesizer {integrated circuit} found on the {SB AWE32} card.
(1996-12-15)

advantage gen
Advantage Gen
[language, software] A {CASE} tool for {rapid application development} which generates code from graphical {business process models}. Formerly called Information Engineering Facility (IEF) and produced by {Texas Instruments}, it was then bought by {Sterling Software, Inc.} who renamed it to COOL:Gen to fit into their COOL line of products. {Computer Associates International, Inc.} then acquired {Sterling Software, Inc.}, and renamed the tool "Advantage Gen".
In 2003, CA are supporting Advantage Gen and adding support for {J2EE}/{EJB}, enhanced web enablement, {Web services}, and {.Net}.
Current version: 6.5, as of 2003-04-14.
{(http://www3.ca.com/Solutions/Product.asp?ID=256)}.
(2003-06-23)

advent
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?]
[{Jargon File}]
(1996-04-01)

adventure definition language
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
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
AE
{Application Executive}

ae
[networking] The {country code} for the United Arab Emirates.
(1999-01-27)

aed
AED
{Automated Engineering Design}

aegis
Aegis
[programming, tool] A {CASE} tool for project change management, from the {GNU} project.
(1995-03-27)

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

aeolus
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
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
AES
1. [programming] {Application environment specification}.
2. [security] {Advanced Encryption Standard}.
(1999-11-03)

aesop
AESOP
{An Evolutionary System for On-line Programming}

af
[networking] The {country code} for Afghanistan.
(1999-01-27)

afac
AFAC
[language] An early system on the {IBM 704}.
[Listed in CACM 2(5):16 (May 1959)].
(1995-04-04)

afaik
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
AFIPS
{American Federation of Information Processing Societies}

afj
AFJ
{April Fool's Joke}

afk
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
AFNOR
[body, standard] Association Francaise pour la Normalisation.
The French national {standard}s institute, a member of {ISO}.
(1994-12-14)

afp
AFP
1. [protocol] {Appletalk Filing Protocol}.
2. [printer, language] {Advanced Function Presentation}.
(1998-06-28)

afs
AFS
{Andrew File System}

afuu
AFUU
{Association Francaise 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
AGL
[programming] (Atelier de Genie Logiciel) French for {IPSE}.
(1997-01-07)

agm theory for belief revision
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
AGORA
[language] A distributed {object-oriented language}.

agp
AGP
{Accelerated Graphics Port}

agp graphics
AGP graphics
{Accelerated Graphics Port}

ahdl
AHDL
{Analog Hardware Design Language}

ahpl
AHPL
{A Hardware Programming Language}

ai
AI
{artificial intelligence}

ai
[networking] The {country code} for Anguilla.
(1999-01-27)

ai international
AI International
[company] One of distributors of {Prolog++}, subsumed by {Customer Engagement Company} before December 1998.
(1998-12-13)

ai koan
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)

aia
AIA
{Application Integration Architecture}

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

aid
AID
{Algebraic Interpretive Dialogue}

aida
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
AIDS
[jargon] /aydz/ A* Infected Disk Syndrome ("A*" is a {glob} pattern that matches, but is not limited to, {Apple Computer}), this condition is quite often the result of practicing unsafe {SEX}.
See {virus}, {worm}, {Trojan horse}, {virgin}.
[{Jargon File}]
(1995-04-13)

aidx
AIDX
[abuse, operating system] /aydkz/ A derogatory term for {IBM}'s perverted version of {Unix}, {AIX}, especially for the AIX 3.? used in the {IBM RS/6000} series (some hackers think it is funnier just to pronounce "AIX" as "aches"). A victim of the dreaded "hybridism" disease, this attempt to combine the two main currents of the Unix stream ({BSD} and {USG Unix}) became a monstrosity to haunt system administrators' dreams. For example, if new accounts are created while many users are logged on, the load average jumps quickly over 20 due to silly implementation of the user databases.
For a quite similar disease, compare {HP-SUX}. Also, compare {Macintrash} {Nominal Semidestructor}, {Open DeathTrap}, {ScumOS}, {sun-stools}.
[{Jargon File}]
(1995-04-13)

aiff
AIFF
{Audio IFF}

aimaco
AIMACO
{AIr MAterial COmmand compiler}

aimnet
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
AIR
[standard] A future {infrared} standard from {IrDA}. AIR will provide in-room multipoint to multipoint connectivity. AIR supports a data rate of 4 Mbps at a distance of 4 metres, and 250 Kbps at up to 8 metres. It is designed for cordless connections to multiple peripherals and meeting room collaboration applications.
See also {IrDA Data} and {IrDA Control}
(1999-10-14)

air material command compiler
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
AIT
{Advanced Intelligent Tape}

aix
AIX
{Advanced Interactive eXecutive}

akc
AKC
{Ascending Kleene Chain}

akcl
AKCL
{Austin Kyoto Common Lisp}

akl
AKL
{Andorra Kernel Language}

al
AL
1. {Assembly Language}.
2. {artificial life}.

al
[networking] The {country code} for Albania.
(1999-01-27)

aladdin enterprises
Aladdin Enterprises
[company] A small, privately owned, US software consulting and development company, founded in 1986, best known as the original developer of {Ghostscript}.
Address: San Francisco Peninsula, California, USA.
Not to be confused with {Aladdin Systems, Inc.}.
{Aladdin Enterprises Home (http://www.aladdin.com/)}.
(2003-09-24)

aladdin systems inc
Aladdin Systems, Inc.
[company] The company that developed and distributes {Stuffit} and other {utility programs} for the {Macintosh}, {Microsoft Windows}, and {Palm} {handheld computers}.
Not to be confused with {Aladdin Enterprises}.
{Aladdin Systems Home (http://www.aladdinsys.com/)}.
(2003-09-20)

aladin
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
ALAM
[language] A language for {symbolic mathematics}, especially General Relativity.
See also {CLAM}.
["ALAM Programmer's Manual", Ray D'Inverno, 1970].
(1994-10-28)

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

alan kay
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 M. Turing
{Alan Turing}

alan shugart
Alan Shugart
{Alan F. Shugart}

alan turing
Alan Turing
[person] Alan M. Turing, 1912-06-22/3? - 1954-06-07. A British mathematician, inventor of the {Turing Machine}. Turing also proposed the {Turing test}. Turing's work was fundamental in the theoretical foundations of computer science.
Turing was a student and fellow of {King's College Cambridge} and was a graduate student at {Princeton University} from 1936 to 1938. While at Princeton Turing published "On Computable Numbers", a paper in which he conceived an {abstract machine}, now called a {Turing Machine}.
Turing returned to England in 1938 and during World War II, he worked in the British Foreign Office. He masterminded operations at {Bletchley Park}, UK which were highly successful in cracking the Nazis "Enigma" codes during World War II. Some of his early advances in computer design were inspired by the need to perform many repetitive symbolic manipulations quickly. Before the building of the {Colossus} computer this work was done by a roomful of women.
In 1945 he joined the {National Physical Laboratory} in London and worked on the design and construction of a large computer, named {Automatic Computing Engine} (ACE). In 1949 Turing became deputy director of the Computing Laboratory at Manchester where the {Manchester Automatic Digital Machine}, the worlds largest memory computer, was being built.
He also worked on theories of {artificial intelligence}, and on the application of mathematical theory to biological forms. In 1952 he published the first part of his theoretical study of morphogenesis, the development of pattern and form in living organisms.
Turing was gay, and died rather young under mysterious circumstances. He was arrested for violation of British homosexuality statutes in 1952. He died of potassium cyanide poisoning while conducting electrolysis experiments. An inquest concluded that it was self-administered but it is now thought by some to have been an accident.
There is an excellent biography of Turing by Andrew Hodges, subtitled "The Enigma of Intelligence" and a play based on it called "Breaking the Code". There was also a popular summary of his work in Douglas Hofstadter's book "Godel, Escher, Bach".
{(http://www.AlanTuring.net/)}.
(2001-10-09)

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

alaw
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
ALC
1. {Assembly Language Compiler}.
2. {Airline Line Control}.
(1997-02-05)

alcool90
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
ALCOR
[language] A subset of {ALGOL}.
[Sammet 1969, p. 180].
(1995-04-18)

aldat
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
ALDES
{ALgorithm DEScription}

aldisp
ALDiSP
{Applicative Language for Digital Signal Processing}

alec
ALEC
{A Language with an Extensible Compiler}

alef
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
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
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
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
Alexis
[language] Alex Input Specification.
The input language for the {scanner generator} {Alex}.
(1995-04-23)

alf
ALF
{Algebraic Logic Functional language}

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

algebra of communicating processes
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)

algebraic
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
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
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
Algebraic Manipulation Package
[mathematics, tool] (AMP) A {symbolic mathematics} program written in {Modula-2}, seen on {CompuServe}.
(1994-10-19)

algebraic specification language
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)

algol
ALGOL
{ALGOL 60}

algol 58
ALGOL 58
[language] An early version of {ALGOL 60}, originally known as "IAL".
{Michigan Algorithm Decoder} (MAD), developed in 1959, was based on IAL.
["Preliminary report - International Algebraic Language", CACM 1(12):8, 1958].
[Details? Relationship to ALGOL 60?]
(1999-12-10)

algol 60
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
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
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
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 68 revised
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 68c
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 68r
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 68rs
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
ALGOL 68S
[language] A subset of {ALGOL 68} allowing simpler compilation, intended mainly for numerical computation. It was rewritten in {BLISS} for the {PDP-11}, and later in {Pascal}. It is available as {shareware} from Charles Lindsey [chl@cs.man.ac.uk].
Version 2.3 runs on {Sun-3} under {SunOS} 4.x and {Atari} under {GEMDOS} (or potentially other computers supported by the {Amsterdam Compiler Kit}).
["A Sublanguage of ALGOL 68", P.G. Hibbard, SIGPLAN Notices 12(5), May 1977].
(1995-05-04)

algol c
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
ALGOL D
[language]
["A Proposal for Definitions in ALGOL", B.A. Galler et al, CACM 10:204-219, 1967].

algol n
ALGOL N
[language] A successor to {ALGOL 60} proposed by Yoneda.
(1994-11-24)

algol w
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
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
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).
{Paul E. Black's Dictionary of Algorithms, Data Structures, and Problems (http://www.nist.gov/dads/)}.
(2002-02-05)

algorithm description
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
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
Algorithmic Language
{Algol 60}

algorithmic model
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
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
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
ALGY
[language] An early language for {symbolic mathematics}.
[Sammet 1969, p. 520].
(1995-04-12)

alias
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
Alice
[computer, parallel] A parallel {graph rewriting} computer developed by {Imperial College}, {University of Edinburgh} and {ICL}.
(1995-01-19)

alife
A-Life
{artificial life}

alife
{artificial life}

aljabr
ALJABR
[tool] An implementation of {MACSYMA} for the {Macintosh} by {Fort Pond Research}.
(1995-02-21)

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

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

alliance
ALLIANCE
[tool] A complete set of {CAD} tools for teaching Digital {CMOS} {VLSI} Design in Universities. It includes a {VHDL} compiler and simulator, {logic synthesis} tools, and automatic place and route tools. ALLIANCE is the result of a ten years effort at University Pierre et Marie Curie (PARIS VI, France).
It runs on {Sun-4}, not well supported: {MIPS}/{Ultrix}, {386}/{SystemV}.
Current version: 1.1, as of 1993-02-16.
(1993-02-16)

alloy
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
ALM
{Assembly Language for Multics}

aloha
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
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
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
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
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
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
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
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 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
Alpha EV6
{EV6}

alpha geek
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)

alpha particle
{bit rot}

alpha testing
[programming] Testing of software at the developer's site by the customer. The stage before {beta testing}.
(1996-05-10)

alphabeta pruning
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)

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)

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

alps
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".
[{Jargon File}]
(1997-04-12)

alt bit
/awlt bit/ alternate bit. See {meta bit}.
[{Jargon File}]

alta vista
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)

altac
ALTAC
[language] An extended {Fortran II} for the {Philco 2000}, built on {TAC}.
[Sammet 1969, p.146].
(1995-03-16)

altair 8800
Altair 8800
[computer] An {Intel 8080}-based machine made by {MITS}. The Altair was the first popular {microcomputer} kit.
It appeared on the cover of the January 1975 "Popular Electronics" magazine with an article (probably) by Leslie Solomon. Leslie Solomon was an editor at Popular Electronics who had a knack for spotting kits that would interest people and make them buy the magazine. The Altair 8800 was one such. The MITS guys took the prototype Altair to New York to show Solomon, but couldn't get it to work after the flight. Nonetheless, he liked it, and it appeared on the cover as "The first minicomputer in a kit."
Solomon's blessing was important enough that some MITS competitors named their product the "SOL" to gain his favour. Some wags suggested {SOL} was actually an abbreviation for the condition in which kit purchasers would find themselves.
{Bill Gates} and Paul Allen saw the article on the Altair 8800 in Popular Electronics. They 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.
{PC-History.org Altair 8800 page (http://pc-history.org/altair_8800.htm)}.
[Forrest M. Mimms, article in "Computers and Electronics", (formerly "Popular Electronics"), Jan 1985(?)].
[Was there ever an "Altair 9000" microcomputer?]
(2002-06-17)

alternating bit protocol
Alternating bit protocol
[networking] (ABP) A simple {data link layer} {protocol} that retransmits lost or corrupted messages.
Messages are sent from transmitter A to receiver B. Assume that the channel from A to B is initialised and that there are no messages in transit. Each message contains a data part, a {checksum}, and a one-bit {sequence number}, i.e. a value that is 0 or 1.
When A sends a message, it sends it continuously, with the same sequence number, until it receives an acknowledgment ({ACK}) from B that contains the same sequence number. When that happens, A complements (flips) the sequence number and starts transmitting the next message.
When B receives a message from A, it checks the checksum. If the message is not corrupted B sends back an ACK with the same sequence number. If it is the first message with that sequence number then it is sent for processing. Subsequent messages with the same sequence bit are simply acknowledged. If the message is corrupted B sends back an negative/error acknowledgment ({NAK}). This is optional, as A will continue transmitting until it receives the correct ACK.
A treats corrupted ACK messages, and NAK messages in the same way. The simplest behaviour is to ignore them all and continue transmitting.
(2000-10-28)

altmode
{alt}

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

altsources
alt.sources
[messaging, programming] A {Usenet} {newsgroup} for posting program {source code}.
{Archive (ftp://wuarchive.wustl.edu/usenet/alt.sources/)}.
(1995-10-18)

alu
ALU
1. [processor] {Arithmetic and Logic Unit}.
2. [body] {Association of Lisp Users}.

aluminum book
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}.
[{Jargon File}]
(1997-06-25)

alvey
Alvey
[project, body] A funding programme for collaborative research in the UK.
(1995-06-01)

am
[networking] The {country code} for Armenia.
Used for the {vanity domain} "i.am".
(1999-01-27)

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

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

amateur packet radio
[communications] (PR) The use of {packet radio} by amateurs to communicate between computers. PR is a complete amateur radio computer network with "digipeaters" (relays), mailboxes (BBS) and other special nodes.
In Germany, it is on HF, say, 2m (300 and 1200 BPS), 70cm (1200 to 9600 BPS), 23cm (normally 9600 BPS and up, currently most links between digipeaters) and higher frequencies. There is a KW (short wave) Packet Radio at 300 BPS, too.
Satellites with OSCAR (Orbiting Sattelite Carring Amateur Radio) transponders (mostly attached to commercial satellites by the AMateur SATellite (AMSAT) group) carry Packet Radio mailboxes or {digipeaters}.
There are both on-line and off-line services on the packet radio network: You can send {electronic mail}, read bulletins, chat, transfer files, connect to on-line DX-Clusters (DX=far distance) to catch notes typed in by other HAMs about the hottest international KW connections currently coming up (so you can pile up).
PR uses {AX.25} (an {X.25} derivative) as its {transport layer} and sometimes even {TCP/IP} is transmitted over AX.25. AX.25 is like X.25 but the adressing uses HAM "calls" like "DG8MGV".
There are special "wormholes" all over the world which "tunnel" amateur radio traffic through the {Internet} to forward mail. Sometimes mails travels over satelites. Normally amateur satellites have strange orbits, however the mail forwarding or 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 not for profit, it must not be interconnected to the {Internet} but it may be connected through the Internet. All people on the (completely free) amateur radio net must be licensed radio amateurs and must have a "call" which is unique all over the world.
There is a special {domain} AMPR.ORG (44.*.*.*) for amateur radio reserved in the IP space. This domain is split between countries, which can further subdivide it. For example 44.130.*.* is Germany, 44.130.58.* is Augsburg (in Bavaria), and 44.130.58.20 is dg8mgv.ampr.org (you may verify this with {nslookup}).
Mail transport is only one aspect of packet radio. You can talk interactively (as in {chat}), read files, or play silly games built in the Packet Radio software. Usually you can use the autorouter to let the digipeater network find a path to the station you want. However there are many (sometimes software incompatible) digipeaters out there, which the router cannot use. Paths over 1000 km are unlikely to be useable for {real-time} communication and long paths can introduce significant delay times (answer latency).
Other uses of amateur radio for computer communication include {RTTY} ({baudot}), {AMTOR}, {PACTOR}, and {CLOVER}.
{A huge hamradio archive (ftp://ftp.ucsd.edu/hamradio/)}.
{Usenet} newsgroup: {news:rec.radio.amateur.packet}.
(2001-05-12)

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

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

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

ambits
AMBIT/S
[language] {AMBIT} for strings.

ambush
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
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
AMD 29000
[processor] A {RISC} {microprocessor} descended from the {Berkley RISC} design. Like the {SPARC} design that was introduced shortly afterward, the 29000 has a large {register set} split into local and global sets. But though it was introduced before the SPARC, it has a more elegant method of register management.
The 29000 has 64 global registers, in comparison to the SPARC's eight. In addition, the 29000 allows variable sized windows allocated from the 128 register stack {cache}. The current window or stack frame is indicated by a stack pointer, a pointer to the caller's frame is stored in the current frame, like in an ordinary stack (directly supporting stack languages like {C}, a {CISC}-like philosophy). Spills and fills occur only at the ends of the cache, and registers are saved/loaded from the memory stack. This allows variable window sizes, from 1 to 128 registers. This flexibility, plus the large set of global registers, makes {register allocation} easier than in SPARC.
There is no special {condition code register} - any general register is used instead, allowing several condition codes to be retained, though this sometimes makes code more complex. An {instruction prefetch} buffer (using {burst mode}) ensures a steady instruction stream. 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
AMD 29027
[processor] The {FPU} for the {AMD 29000}.
(1995-01-16)

amd am2901
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
AMD Am2903
[processor] A {bit-slice} prcessor from {Advanced Micro Devices} which featured hardware multiply.
(1994-11-16)

amd am2910
AMD Am2910
[processor] An {address sequencer} from {Advanced Micro Devices}.
(1994-11-16)

amd k7
AMD K7
{Athlon}

amdahl
Amdahl
1. [company] {Amdahl Corporation}.
2. [person] {Gene Amdahl}.
(2000-04-03)

amdahl corporation
Amdahl Corporation
[company] A US computer manufacturer. Amdahl is a major supplier of large {mainframes}, {UNIX} and {Open Systems} software and servers, data storage subsystems, data communications products, applications development software, and a variety of educational and consulting services.
Amdahl products are sold in more than 30 countries for use in both open systems and {IBM} plug-compatible mainframe computing environments.
Quarterly sales $397M, profits $13M (Aug 1994).
In 1997 Amdahl became a division of {Fujitsu}.
{Home (http://www.amdahl.com/)}.
(1995-05-23)

amdahls law
Amdahl's Law
[parallel] (Named after {Gene Amdahl}) If F is the fraction of a calculation that is sequential, and (1-F) is the fraction that can be parallelised, then the maximum {speedup} that can be achieved by using P processors is 1/(F+(1-F)/P).
[Gene Amdahl, "Validity of the Single Processor Approach to Achieving Large-Scale Computing Capabilities", AFIPS Conference Proceedings, (30), pp. 483-485, 1967].
(2002-10-16)

america online inc
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)

american national standard
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
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
American Society of Mechanical Engineers
[body] (ASME) A group involved in {CAD} standardisation.
(1995-04-21)

american standard code for information interchange
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}, {oblique stroke}, {percent}, {plus}, {question mark}, {right brace}, {right brace}, {right bracket}, {right parenthesis}, {semicolon}, {single quote}, {space}, {tilde}, {underscore}, {vertical bar}, {zero}.
Some other common usages cause odd overlaps. The "#", "$", "]", and "&" characters, for example, are all pronounced "hex" in different communities because various assemblers use them as a prefix tag for {hexadecimal} constants (in particular, "#" in many assembler-programming cultures, "$" in the {6502} world, "]" at {Texas Instruments}, and "&" on the {BBC Micro}, {Acorn Archimedes}, {Sinclair}, and some {Zilog Z80} machines). See also {splat}.
The inability of {US-ASCII} to correctly represent nearly any language other than English became an obvious and intolerable {misfeature} as computer use outside the US and UK became the rule rather than the exception (see {software rot}). And so national extensions to US-ASCII were developed, such as Latin-1.
Hardware and software from the US still tends to embody the assumption that US-ASCII is the universal character set and that words of text consist entirely of byte values 65-90 and 97-122 (A-Z and a-z); this is a major irritant to people who want to use a character set suited to their own languages. Perversely, though, efforts to solve this problem by proliferating sets of national characters produced an evolutionary pressure (especially in protocol design, e.g., the {URL} standard) to stick to {US-ASCII} as a subset common to all those in use, and therefore to stick to English as the language encodable with the common subset of all the ASCII dialects. This basic problem with having a multiplicity of national character sets ended up being a prime justification for {Unicode}, which was designed, ostensibly, to be the *one* ASCII extension anyone will need.
A system is described as "{eight-bit clean}" if it doesn't mangle text with byte values above 127, as some older systems did.
See also {ASCII character table}, {Yu-Shiang Whole Fish}.
(1995-03-06)

american telephone and telegraph inc
American Telephone and Telegraph, Inc.
[company, telecommunications, Unix, C] (AT&T) One of the largest US telecommunications providers. Also noted for being the birthplace of the {Unix} {operating system} and the {C} and {C++} programming languages.
AT&T was incorporated in 1885, but traces its lineage to Alexander Graham Bell and his invention of the telephone in 1876. As parent company of the former {Bell System}, AT&T's primary mission was to provide telephone service to virtually everyone in the United States. In its first 50 years, AT&T established subsidiaries and allied companies in more than a dozen other countries. It sold these interests in 1925 and focused on achieving its mission in the United States. It did, however, continue to provide international long distance service.
The Bell System was dissolved at the end of 1983 with AT&T's divestiture of the Bell telephone companies.
AT&T split into three parts in 1996, one of which is {Lucent Tecnologies}, the former systems and equipment portion of AT&T (including Bell Laboratories).
See also {3DO}, {Advanced RISC Machine}, {Berkeley Software Distribution}, {Bell Laboratories}, {Concurrent C}, {Death Star}, {dinosaurs mating}, {InterNIC}, {System V}, {Nawk}, {Open Look}, {rc}, {S}, {Standard ML of New Jersey}, {Unix International}, {Unix conspiracy}, {USG Unix}, {Unix System Laboratories}.
{AT&T Home (http://www.att.com/)}.
(2002-06-21)

american wire gauge
American Wire Gauge
[hardware, standard] (AWG, sometimes "Brown and Sharpe Wire Gauge") A U.S. {standard} set of non-ferrous wire conductor sizes. Typical household wiring is AWG number 12 or 14. Telephone wire is usually 22, 24, or 26. The higher the gauge number, the smaller the diameter and the thinner the wire. Thicker wire is better for long distances due to its lower resistance per unit length.
(2001-03-26)

americas multimedia online
America's Multimedia Online
[company, World-Wide Web] (AMO) An {Internet} technologies company which invented {Never Offline} in 1995 and was officially started in 1996.
{Home (http://amo.net/)}.
E-mail: AMO [amo@amo.net].
Address: Albuquerque, NM, USA.
(1999-11-03)

ami
AMI
{Alternate Mark Inversion}

amiga
Amiga
[computer] A range of home computers first released by {Commodore Business Machines} in early 1985 (though they did not design the original - see below). Amigas were popular for {games}, {video processing}, and {multimedia}. One notable feature is a hardware {blitter} for speeding up graphics operations on whole areas of the screen.
The Amiga was originally called the Lorraine, and was developed by a company named "Amiga" or "Amiga, Inc.", funded by some doctors to produce a killer game machine. After the US game machine market collapsed, the Amiga company sold some {joysticks} but no Lorraines or any other computer. They eventually floundered and looked for a buyer.
Commodore at that time bought the (mostly complete) Amiga machine, infused some money, and pushed it through the final stages of development in a hurry. Commodore released it sometime[?] in 1985.
Most components within the machine were known by nicknames. The {coprocessor} commonly called the "Copper" is in fact the "{Video} Timing Coprocessor" and is split between two chips: the instruction fetch and execute units are in the "Agnus" chip, and the {pixel} timing circuits are in the "Denise" chip (A for address, D for data).
"Agnus" and "Denise" were responsible for effects timed to the {real-time} position of the video scan, such as midscreen {palette} changes, {sprite multiplying}, and {resolution} changes. Different versions (in order) were: "Agnus" (could only address 512K of {video RAM}), "Fat Agnus" (in a {PLCC} package, could access 1MB of video RAM), "Super Agnus" (slightly upgraded "Fat Agnus"). "Agnus" and "Fat Agnus" came in {PAL} and {NTSC} versions, "Super Agnus" came in one version, jumper selectable for PAL or NTSC. "Agnus" was replaced by "Alice" in the A4000 and A1200, which allowed for more {DMA} channels and higher bus {bandwidth}.
"Denise" outputs binary video data (3*4 bits) to the "Vidiot". The "Vidiot" is a hybrid that combines and amplifies the 12-bit video data from "Denise" into {RGB} to the {monitor}.
Other chips were "Amber" (a "flicker fixer", used in the A3000 and Commodore display enhancer for the A2000), "Gary" ({I/O}, addressing, G for {glue logic}), "Buster" (the {bus controller}, which replaced "Gary" in the A2000), "Buster II" (for handling the Zorro II/III cards in the A3000, which meant that "Gary" was back again), "Ramsey" (The {RAM} controller), "DMAC" (The DMA controller chip for the WD33C93 {SCSI adaptor} used in the A3000 and on the A2091/A2092 SCSI adaptor card for the A2000; and to control the {CD-ROM} in the {CDTV}), and "Paula" ({Peripheral}, Audio, {UART}, {interrupt} Lines, and {bus Arbiter}).
There were several Amiga chipsets: the "Old Chipset" (OCS), the "Enhanced Chipset" (ECS), and {AGA}. OCS included "Paula", "Gary", "Denise", and "Agnus".
ECS had the same "Paula", "Gary", "Agnus" (could address 2MB of Chip RAM), "Super Denise" (upgraded to support "Agnus" so that a few new {screen modes} were available). With the introduction of the {Amiga A600} "Gary" was replaced with "Gayle" (though the chipset was still called ECS). "Gayle" provided a number of improvments but the main one was support for the A600's {PCMCIA} port.
The AGA chipset had "Agnus" with twice the speed and a 24-bit palette, maximum displayable: 8 bits (256 colours), although the famous "{HAM}" (Hold And Modify) trick allows pictures of 256,000 colours to be displayed. AGA's "Paula" and "Gayle" were unchanged but AGA "Denise" supported AGA "Agnus"'s new screen modes. Unfortunately, even AGA "Paula" did not support High Density {floppy disk drives}. (The Amiga 4000, though, did support high density drives.) In order to use a high density disk drive Amiga HD floppy drives spin at half the rotational speed thus halving the data rate to "Paula".
Commodore Business Machines went bankrupt on 1994-04-29, the German company {Escom AG} bought the rights to the Amiga on 1995-04-21 and the Commodore Amiga became the Escom Amiga. In April 1996 Escom were reported to be making the {Amiga} range again but they too fell on hard times and {Gateway 2000} (now called Gateway) bought the Amiga brand on 1997-05-15.
Gateway licensed the Amiga operating system to a German hardware company called {Phase 5} on 1998-03-09. The following day, Phase 5 announced the introduction of a four-processor {PowerPC} based Amiga {clone} called the "{pre\box}". Since then, it has been announced that the new operating system will be a version of {QNX}.
On 1998-06-25, a company called {Access Innovations Ltd} announced {plans (http://www.micktinker.co.uk/aaplus.html)} to build a new Amiga chip set, the {AA+}, based partly on the AGA chips but with new fully 32-bit functional core and 16-bit AGA {hardware register emulation} for {backward compatibility}. The new core promised improved memory access and video display DMA.
By the end of 2000, Amiga development was under the control of a [new?] company called {Amiga, Inc.}. As well as continuing development of AmigaOS (version 3.9 released in December 2000), their "Digital Environment" is a {virtual machine} for multiple {platforms} conforming to the {ZICO} specification. As of 2000, it ran on {MIPS}, {ARM}, {PPC}, and {x86} processors.
{Home (http://www.amiga.com/)}.
{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}.
(2003-07-05)

amiga e
Amiga E
[tool] An {Amiga} {E} {compiler} by Wouter van Oortmerssen.
Amiga E compiles 20000 lines/minute on a 7 Mhz Amiga. It allows {in-line} {assembly code} and has an integrated {linker}. It has a large set of integrated functions and {modules}. V2.04 includes as modules a flexible {type} system, quoted expressions, {immediate} and typed lists, low level {polymorphism} and {exception} handling. It is written in {assembly language} and E.
Version 2.1b
{(ftp://ftp.wustl.edu/pub/aminet/dev/e/AmigaE21b.lha)}. {(ftp://amiga.physik.unizh.ch/amiga/dev/lang/AmigaE21b.lha)}.
{Usenet} newsgroup: {news:comp.sys.amiga.programmer}.
(1997-08-26)

aminet
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
AML
{A Manufacturing Language}

amle
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
AMO
{America's Multimedia Online}

amoeba
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}.
[{Jargon File}]
(1997-05-07)

amp
AMP
{Algebraic Manipulation Package}

amp off
[jargon] (Purdue) To run in {background}. From the {Unix} {shell} "&" (ampersand) operator.
[{Jargon File}]
(1995-11-14)

amper
{ampersand}

ampersand
[character] "&" {ASCII} character 38.
Common names: {ITU-T}, {INTERCAL}: ampersand; amper; and. Rare: address (from {C}); reference (from C++); bitand; background (from {sh}); pretzel; amp.
A common symbol for "and", used as the "address of" operator in {C}, the "reference" operator in {C++} and a {bitwise} {AND} operator in several programming languages.
{UNIX} {shells} use the character to indicate that a task should be run in the {background}.
The ampersand is a ligature (combination) of the cursive letters "e" and "t", invented in 63 BC by Marcus Tirus [Tiro?] as shorthand for the Latin word for "and", "et".
The word ampersand is a conflation (combination) of "and, per se and". Per se means "by itself", and so the phrase translates to "&, standing by itself, means 'and'". This was at the end of the alphabet as it was recited by children in old English schools. The words ran together and were associated with "&". The "ampersand" spelling dates from 1837.
{Take our word for it (http://www.takeourword.com/Issue010.html)}.
(2000-10-28)

ampl
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
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
Amplitude Modulation
[communications] (AM) A method of encoding {data} by varying the {amplitude} of a constant {frequency} {carrier}.
Contrast {Frequency Modulation}.
(2001-04-30)

ampplii
AMPPL-II
{Associative Memory Parallel Processing Language}

ams
AMS
{Andrew Message System}

amtran
AMTRAN
{Automatic Mathematical TRANslation}

amulet
Amulet
[processor] An implementation or the {Advanced RISC Machine} {microprocessor} architecture using the {micropipeline} design style. In April 1994 the Amulet group in the Computer Science department of {Manchester University} took delivery of the AMULET1 {microprocessor}. This was their first large scale asynchronous circuit and the world's first implementation of a commercial microprocessor architecture (ARM) in {asynchronous logic}.
Work was begun at the end of 1990 and the design despatched for fabrication in February 1993. The primary intent was to demonstrate that an asynchronous microprocessor can consume less power than a synchronous design.
The design incorporates a number of concurrent units which cooperate to give instruction level compatibility with the existing synchronous part. These include an Address unit, which autonomously generates instruction fetch requests and interleaves ({nondeterministic}ally) data requests from the Execution unit; a {Register} file which supplies operands, queues write destinations and handles data dependencies; an Execution unit which includes a multiplier, a shifter and an {ALU} with data-dependent delay; a Data interface which performs byte extraction and alignment and includes an {instruction prefetch} buffer, and a control path which performs {instruction decode}. These units only synchronise to exchange data.
The design demonstrates that all the usual problems of processor design can be solved in this asynchronous framework: backward {instruction set} compatibility, {interrupts} and exact {exceptions} for {memory faults} are all covered. It also demonstrates some unusual behaviour, for instance {nondeterministic} prefetch depth beyond a branch instruction (though the instructions which actually get executed are, of course, deterministic). There are some unusual problems for {compiler} {optimisation}, as the metric which must be used to compare alternative code sequences is continuous rather than discrete, and the {nondeterminism} in external behaviour must also be taken into account.
The chip was designed using a mixture of custom {datapath} and compiled control logic elements, as was the synchronous ARM. The fabrication technology is the same as that used for one version of the synchronous part, reducing the number of variables when comparing the two parts.
Two silicon implementations have been received and preliminary measurements have been taken from these. The first is a 0.7um process and has achieved about 28 kDhrystones running the standard {benchmark} program. The other is a 1 um implementation and achieves about 20 kDhrystones. For the faster of the parts this is equivalent to a synchronous {ARM6} clocked at around 20MHz; in the case of AMULET1 it is likely that this speed is limited by the memory system cycle time (just over 50ns) rather than the processor chip itself.
A fair comparison of devices at the same geometries gives the AMULET1 performance as about 70% of that of an {ARM6} running at 20MHz. Its power consumption is very similar to that of the ARM6; the AMULET1 therefore delivers about 80 MIPS/W (compared with around 120 from a 20MHz ARM6). Multiplication is several times faster on the AMULET1 owing to the inclusion of a specialised asynchronous multiplier. This performance is reasonable considering that the AMULET1 is a first generation part, whereas the synchronous ARM has undergone several design iterations. AMULET2 (currently under development) is expected to be three times faster than AMULET1 - 120 k{dhrystones} - and use less power.
The {macrocell} size (without {pad ring}) is 5.5 mm by 4.5 mm on a 1 micron {CMOS} process, which is about twice the area of the synchronous part. Some of the increase can be attributed to the more sophisticated organisation of the new part: it has a deeper {pipeline} than the clocked version and it supports multiple outstanding memory requests; there is also specialised circuitry to increase the multiplication speed. Although there is undoubtedly some overhead attributable to the asynchronous control logic, this is estimated to be closer to 20% than to the 100% suggested by the direct comparison.
AMULET1 is code compatible with {ARM6} and is so is capable of running existing {binaries} without modification. The implementation also includes features such as interrupts and memory aborts.
The work was part of a broad {ESPRIT} funded investigation into low-power technologies within the European {Open Microprocessor systems Initiative} (OMI) programme, where there is interest in low-power techniques both for portable equipment and (in the longer term) to alleviate the problems of the increasingly high dissipation of high-performance chips. This initial investigation into the role {asynchronous logic} might play has now demonstrated that asynchronous techniques can be applied to problems of the scale of a complete {microprocessor}.
{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)

an evolutionary system for online programming
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)

analog
[spelling] American spelling of {analogue}.
(1995-11-14)

analog hardware design language
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
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
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 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://www.foldoc.org/"] 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
ANCP
[language] An early system on the {Datatron 200} series.
[Listed in CACM 2(5):16, May 1959].
(1995-11-15)

and
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
ANDF
{Architecture Neutral Distribution Format}

andorra kernel language
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)

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

andorraprolog
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
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
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
Andrew Fluegelman
[person] A successful attorney, editor of {PC World Magazine}, and author of the the {MS-DOS} communications program {PC-TALK III}, written in 1982. He once owned the trademark "{freeware}" but it wasn't enforced after his disappearance.
In 1985, Fluegelman was diagnosed with cancer. He was last seen a week later, on 1985-07-06, when he left his Marin County home to go to his office in Tiburon. He called his wife later that day and has not been heard from since. His car was found at Vista Point on the north end of the Golden Gate Bridge.
[San Francisco Examiner Sunday Magazine, October 1985].
{Shareware history (http://paulspicks.com/history.asp)}.
{NEWSBYTES article (http://textfiles.fisher.hu/news/freeware.txt)}.
{(http://doenetwork.bravepages.com/579dmca.html)}.
(2003-07-25)

andrew message system
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
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 S. Tanenbaum
{Andrew Tanenbaum}

andrew tanenbaum
Andrew Tanenbaum
[person] Professor Andrew S. Tanenbaum (1941-) of the {Vrije Universiteit, Amsterdam} in The Netherlands. Tanenbaum is famous for his work and books on computer architecture, {operating systems} and {networks}.
He wrote the textbook "Computer Networks", Second Edition, Prentice-Hall, 1981, which describes the {International Standards Organisation}, {Open Systems Interconnection} (ISO-OSI) network model.
See {Amoeba}, {Mac-1}, {Mic-1}, {Mic-2}, {Micro Assembly Language}, {MINIX}, {MicroProgramming Language}, {standard}.
[Home page?]
(1996-04-23)

andrew toolkit
Andrew Toolkit
[tool] (ATK) A {portable} {user interface} toolkit developed as part of the {Andrew project}, running on the {X Window System} and distributed with {X11R5}.
(1995-11-24)

andy tanenbaum
Andy Tanenbaum
{Andrew Tanenbaum}

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

anglosaxon point
Anglo-Saxon point
{ATA point}

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

ani
ANI
{Automatic Number Identification}

animated gif
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
Animus
["Constraint-Based Animation: The Implementation of Temporal Constraints in the Animus System", R. Duisberg, PhD Thesis U Washington 1986].
(1995-11-24)

anl
ANL
{Argonne National Laboratory}

anna
Anna
{ANNotated Ada}

annealing
{simulated annealing}

annotate
{annotation}

annotated ada
ANNotated Ada
[language, specification] (Anna) A {specification} language developed at {Stanford University} ca. 1980 for formally specifying {Ada} programs. It has a Specification Analyzer and a Consistency Checking System. It adds semantic {assertions} in the form of Ada {comments}.
{(ftp://anna.stanford.edu/pub/anna/)}.
["ANNA - A Language for Annotating Ada Programs", David Luckham et al, Springer 1987].
(1994-11-01)

annotation
1. [programming, compiler] Extra information associated with a particular point in a document or program. Annotations may be added either by a {compiler} or by the programmer. They are not usually essential to the correct function of the program but give hints to improve performance.
2. [hypertext] A new commentary {node} linked to an existing node. If readers, as well as authors, can annotate nodes, then they can immediately provide feedback if the information is misleading, out of date or plain wrong.
(1995-11-26)

annoybot
[messaging] /*-noy-bot/ An irksome {IRC} {robot}.
[{Jargon File}]
(1997-12-23)

annoyware
[software] {Shareware} that reminds you frequently that you are using an unregistered copy.
(1998-04-29)

annual change traffic
Annual Change Traffic
[software] (ACT) The fraction of the software product's {source code} which changes during a year, either through addition or modification. The ACT can be used to determine the product size in order to estimate software maintenance effort.
(1996-05-29)

annulled branch
{delayed control-transfer}

anonymous ftp
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
ANother Tool for Language Recognition
[tool] (ANTLR) The {parser generator} in the {Purdue Compiler-Construction Tool Set}.
(1995-10-26)

anr
ANR
{Automatic Network Routing}

ans
ANS
{American National Standard}

ansa
ANSA
{Advanced Network Systems Architecture}

ansi
ANSI
{American National Standards Institute}

ansi c
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
ANSI Minimal BASIC
[language, standard] ANS X3.60-1978.
[Details?]
(1995-11-29)

ansi x12
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 z3950
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)

ansisparc
ANSI/SPARC
{ANSI Standards Planning And Requirments Committee}

ansisparc architecture
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)

ansisparc model
ANSI/SPARC model
{ANSI/SPARC Architecture}

anthony hoare
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)

antialiasing
anti-aliasing
[graphics] A technique used on a {grey-scale} or colour {bitmap display} to make diagonal edges appear smoother by setting {pixels} near the edge to intermediate colours according to where the edge crosses them.
The most common example is black characters on a white background. Without anti-aliasing, diagonal edges appear jagged, like staircases, which may be noticeable on a low {resolution} display. If the display can show intermediate greys then anti-aliasing can be applied. A pixel will be black if it is completely within the black area, or white if it is completely outside the black area, or an intermediate shade of grey according to the proportions of it which overlap the black and white areas. The technique works similarly with other foreground and background colours.
"Aliasing" refers to the fact that many points (which would differ in the real image) are mapped or "aliased" to the same pixel (with a single value) in the digital representation.
(1998-03-13)

antichain
[mathematics] A subset S of a {partially ordered set} P is an antichain if,
for all x, y in S, x [= y =] x = y
I.e. no two different elements are related.
("[=" is written in {LaTeX} as {\subseteq}).
(1995-02-03)

antisymmetric
[mathematics] A {relation} R is antisymmetric if,
for all x and y, x R y and y R x =] x == y.
I.e. no two different elements are mutually related.
{Partial orders} and {total orders} are antisymmetric. If R is also {symmetric}, i.e.
x R y =] y R x
then
x R y =] x == y
I.e. different elements are not related.
(1995-04-18)

antivirus 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
ANTLR
{ANother Tool for Language Recognition}

anu
ANU
{Australian National University}

anu ml
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
AOCE
{Apple Open Collaboration Environment}

aol
AOL
{America On-Line}

aop
AOP
{aspect-oriented programming}

aos
AOS
1. /aws/ (East Coast), /ay-os/ (West Coast) A {PDP-10} instruction that took any memory location and added 1 to it. AOS meant "Add One and do not Skip". Why, you may ask, does the "S" stand for "do not Skip" rather than for "Skip"? Ah, here was a beloved piece of PDP-10 folklore. There were eight such instructions: AOSE added 1 and then skipped the next instruction if the result was Equal to zero; AOSG added 1 and then skipped if the result was Greater than 0; AOSN added 1 and then skipped if the result was Not 0; AOSA added 1 and then skipped Always; and so on. Just plain AOS didn't say when to skip, so it never skipped.
For similar reasons, AOJ meant "Add One and do not Jump". Even more bizarre, SKIP meant "do not SKIP"! If you wanted to skip the next instruction, you had to say "SKIPA". Likewise, JUMP meant "do not JUMP"; the unconditional form was JUMPA. However, hackers never did this. By some quirk of the 10's design, the {JRST} (Jump and ReSTore flag with no flag specified) was actually faster and so was invariably used. Such were the perverse mysteries of assembler programming.
2. /A-O-S/ or /A-os/ A {Multics}-derived {operating system} supported at one time by {Data General}.
A spoof of the standard AOS system administrator's manual ("How to Load and Generate your AOS System") was created, issued a part number, and circulated as photocopy folklore; it was called "How to Goad and Levitate your CHAOS System".
3. Algebraic Operating System, in reference to those calculators which use {infix} {operators} instead of {postfix notation}.
[{Jargon File}]
(1995-11-26)

apa
APA
{Application Portability Architecture}

apache
Apache
[World-Wide Web, project] A {open source} {HTTP} server for {Unix}, {Windows NT}, and other {platforms}. Apache was developed in early 1995, based on code and ideas found in the most popular HTTP server of the time, {NCSA httpd} 1.3. It has since evolved to rival (and probably surpass) almost any other {Unix} based HTTP server in terms of functionality, and speed. Since April 1996 Apache has been the most popular HTTP server on the {Internet}, in May 1999 it was running on 57% of all web servers.
It features highly configurable error messages, {DBM}-based {authentication} {databases}, and {content negotiation}.
Latest version: 1.3.9, as of 1999-10-27.
{Home (http://www.apache.org/httpd.html)}.
{FAQ (http://www.apache.org/docs/misc/FAQ.html)}.
(1999-10-27)

apal
APAL
{Array Processor Assembly Language}

aparel
APAREL
{A PArse REquest Language}

apc
APC
{Association for Progressive Communications}

apdl
APDL
{Algorithmic Processor Description Language}

ape
APE
[audio, compression] A {lossless} {audio} {compression} {algorithm} from {MonkeysAudio}.
(2001-12-20)

ape
apE
[graphics] A graphics package from the Ohio Supercomputer Centre.
(1995-11-29)

api
API
{Application Program Interface}

apic
APIC
{Advanced Programmable Interrupt Controller}

apl
APL
{A Programming Language}

apl2
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
APLGOL
[language] An {APL} variant with {ALGOL}-like control structure, from {Hewlett-Packard}(?).
(1995-11-29)

aplweb
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
APM
{Advanced Power Management}

apollo computer
Apollo Computer
[company] A company making {workstations} often used for {CAD}.
From 1980 to 1987, Apollo were the largest manufacturer of network {workstations}. Apollo workstations ran {Aegis}, a proprietary {operating system} with a {Posix}-compliant {Unix} alternative frontend. Apollo's networking was particularly elegant, among the first to allow {demand paging} over the network, and allowing a degree of {network transparency} and low {sysadmin}-to-machine ratio that is still unmatched.
Apollo's largest customers were Mentor Graphics (electronic design), GM, Ford, Chrysler, and Boeing (mechanical design). Apollo was acquired by {Hewlett-Packard} in 1989, and gradually closed down over the period 1990-1997.
(2003-07-18)

apostrophe
{single quote}

app
{application program}

appc
APPC
{Advanced Program-to-Program Communications}

appkit
AppKit
[tool] A set of objects used by the {application builder} for the {NEXTSTEP} environment.
(1995-03-13)

apple
APPLE
[language] A revision of {APL} for the {Illiac IV}.
(1995-04-28)

apple attachment unit interface
Apple Attachment Unit Interface
[hardware, networking] (AAUI) A 14-position, 0.050-inch-spaced ribbon contact connector. Early {Power Macintosh} and Quadras had an AAUI (Apple Attachment Unit Interface) {port} (rectangular shaped) for {Ethernet}, which requires a {transceiver}. To use {twisted pair} cabling, you would need to get a {twisted pair} transceiver for the computer with an AAUI port. Some {Power Macintosh} computers had both an AAUI and {RJ-45} port; you can use one or the other, but not both.
The pin-out is:
Pin Signal Name Signal Description ---- -------------- --------------------------------- 1 FN Pwr Power (+12V @ 2.1W or +5V @ 1.9W) 2 DI-A Data In circuit A 3 DI-B Data In circuit B 4 VCC Voltage Common 5 CI-A Control In circuit A 6 CI-B Control In circuit B 7 +5V +5 volts (from host) 8 +5V Secondary +5 volts (from host) 9 DO-A Data Out circuit A 10 DO-B Data Out circuit B 11 VCC Secondary Voltage Common 12 NC Reserved 13 NC Reserved 14 FN Pwr Secondary +12V @ 2.1W or +5V @ 1.9W Shell Protective Gnd Protective Ground
AAUI signals have the same description, function, and electrical requirements as the {AUI} signals of the same name, as detailed in {IEEE 802.3}-1990 CSMA/CD Standard, section 7.
(2000-02-10)

apple computer inc
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
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
Apple Macintosh
{Macintosh}

apple newton
Apple Newton
[computer] A {Personal Digital Assistant} produced by {Apple Computer}. The Newton provides a clever, {user-friendly} interface and relies solely on pen-based input. Eagerly anticipated, the Newton uses handwriting recognition software to "learn" the users handwriting and provide reliable {character recognition}.
Various third-party software applications are available and add-on {peripherals} like wireless {modems} for {Internet} access are being sold by {Apple Computer, Inc.} and its licensees.
{Newton Inc.}'s {NewtonOS} competes with {Microsoft Corporation}'s {Windows CE}, and was to be compatible with {DEC}'s {StrongARM} SA-1100, an embedded 200MHz {microprocessor}, which was due in 1998.
{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
Apple Open Collaboration Environment
[tool] (AOCE) Software for {electronic mail} and directory services.
(1995-03-08)

applescript
AppleScript
[language] An {object-oriented} {shell} language for the {Macintosh}, approximately a superset of {HyperTalk}.
(1995-12-10)

applesoft basic
Applesoft BASIC
[language] A version of {BASIC} for {Apple} computers.
(1995-12-10)

applet
[World-Wide Web] A {Java} program which can be distributed as an attachment in a {World-Wide Web} document and executed by a Java-enabled {web browser} such as Sun's {HotJava}, {Netscape Navigator} version 2.0, or {Internet Explorer}.
Navigator severely restricts the applet's file system and network access in order to prevent accidental or deliberate security violations. Full Java applications, which run outside of the browser, do not have these restrictions.
Web browsers can also be extended with {plug-ins} though these differ from applets in that they usually require manual installation and are {platform}-specific. Various other languages can now be embedded within {HTML} documents, the most common being {JavaScript}.
Despite Java's aim to be a "write once, run anywhere" language, the difficulty of accomodating the variety of browsers in use on the Internet has led many to abandon client-side processing in favour of {server}-side Java programs for which the term {servlet} was coined.
Merriam Webster "Collegiate Edition" gives a 1990 definition: a short application program especially for performing a simple specific task.
(2002-07-12)

appletalk
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
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
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
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
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
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
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
Application Executive
[language] (AE) An {embeddable language}, written as a {C} {interpreter} by Brian Bliss at UIUC. AE is compiled with an {application} and thus exists in the same process and address space. It includes a {dbx} {symbol table} scanner to access compiled variables and routines, or you can enter them manually by providing a type/name declaration and the address. When the {interpreter} is invoked, {source code} fragments are read from the input stream (or a string), parsed, and evaluated immediately. The user can call compiled functions in addition to a few {built-in} intrinsics, declare new data types and data objects, etc. Different input streams can be evaluated in parallel on {Alliant} computers.
AE has been ported to {SunOS} (cc or {gcc}), {Alliant FX} and {Cray YMP} (soon).
{(ftp://sp2.csrd.uiuc.edu/pub/at.tar.Z)}. {(ftp://sp2.csrd.uiuc.edu/pub/bliss/ae.tex.Z)}.
(1992-04-21)

application integration architecture
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
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
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 Programming Interface
{Application Program Interface}

application protocol data unit
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 server
1. [software] A {designer}'s or {developer}'s suite of {software} that helps {programmers} isolate the {business logic} in their {programs} from the {platform}-related code. {Application} {servers} can handle all of the {application} {logic} and {connectivity} found in {client-server} {applications}. Many {application} {servers} also offer features such as {transaction management}, {clustering} and {failover}, and {load balancing}; nearly all offer {ODBC} support.
{Application} {servers} range from small {footprint}, web-based {processors} for intelligent appliances or remote {embedded} devices, to complete environments for assembling, deploying, and maintaining {scalable} {multi-tier} applications across an {enterprise}.
2. [software] Production {programs} run on a mid-sized computer that handle all {application} operations between {browser}-based computers and an organisation's back-end business {applications} or {databases}. The {application} {server} works as a translator, allowing, for example, a customer with a {browser} to search an online retailer's {database} for pricing information.
3. [hardware] The device on which {application} {server} {software} runs. {Application Service Providers} offer commercial access to such devices.
{Citrix Application Serving White Paper (http://www.citrix.com/press/corpinfo/application_serving_wp_0700.pdf)}.
{Application Server Sites, a list maintained by Vayda & Herzum (http://www.componentfactory.org/links/appl.htm)}.
{The Application Server Zone at DevX, (http://www.appserver-zone.com/default.asp)}.
{TechMetrix Research's Application Server Directory, (http://www.techmetrix.com/trendmarkers/techmetrixasd.php3)}.
(2001-03-30)

application service element
Application Service Element
[networking] (ASE) Software in the {presentation layer} of the {OSI} seven layer model which provides an abstracted interface layer to service {application protocol data units} (APDU). Because {applications} and {networks} vary, ASEs are split into common services and specific services.
Examples of services provided by the {common application service element} (CASE) include remote operations (ROSE) and {database} {concurrency control and recovery} (CCR).
The {specific application service element} (SASE) provides more specialised services such as file transfer, database access, and order entry.
{Csico docs
(http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/osi_prot.htm)}.
(2003-09-27)

application service provider
[business, networking] (ASP) A service (usually a business) that provides remote access to an {application program} across a {network} {protocol}, typically {HTTP}. A common example is a {web site} that other web sites use for accepting payment by credit card as part of their {online ordering} systems.
As this term is complex-sounding but vague, it is widely used by {marketroids} who want to avoid being specific and clear at all costs.
(2001-03-26)

application software
{application program}

application software installation server
Application Software Installation Server
(ASIS) Something at {CERN}.
[What?]
(1999-10-21)

application testing
{system testing}

application visualisation system
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)

applications language
{Ousterhout's dichotomy}

applications programming interface
Applications Programming Interface
{Application Programming Interface}

applications software
{application program}

applicationspecific integrated circuit
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)

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
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
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
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 fools joke
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)

apse
APSE
{Ada Programming Support Environment}

apt
APT
1. [language] {Automatically Programmed Tools}.
2. [company] {Audio Processing Technology}.
(1996-01-15)

apx iii
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
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
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)

arc
ARC
{Advanced RISC Computing Specification}

arcade
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
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
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
Architecture Neutral Distribution Format
[programming, operating system] (ANDF) An emerging {OSF} {standard} for software distribution. Programs are compiled into ANDF before distribution and {executables} are produced from it for the local target system. This allows software to be developed and distributed in a single version then installed on a variety of hardware.
See also {UNCOL}.
["Architecture Neutral Distribution Format: A White Paper", Open Software Foundation, Nov 1990].
(1995-10-20)

archive
1. [file format] A single file containing one or (usually) more separate files plus information to allow them to be extracted (separated) by a suitable program.
Archives are usually created for software distribution or {backup}. {tar} is a common format for {Unix} archives, and {arc} or {PKZIP} for {MS-DOS} and {Microsoft Windows}.
2. [operating system] To transfer files to slower, cheaper media (usually {magnetic tape}) to free the {hard disk} space they occupied. This is now normally done for long-term storage but in the 1960s, when disk was much more expensive, files were often shuffled regularly between disk and tape.
3. [networking] {archive site}.
(1996-12-08)

archive site
[networking] (Or "FTP site", "FTP archive") An {Internet} {host} where program source, documents, {e-mail} or {news} messages are stored for public access via {anonymous FTP}, {Gopher}, {World-Wide Web} or other document distribution system. There may be several archive sites 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
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
ARCS
{ARC}

arctic
Arctic
[language, music] A {real-time} {functional language}, used for music synthesis.
["Arctic: A Functional Language for Real-Time Control", R.B. Dannenberg, Conf Record 1984 ACM Symp on LISP and Functional Prog, ACM].
(1995-01-16)

arena
[programming] The area of memory attached to a {Unix} process by the {brk} and {sbrk} {system calls} and used by {malloc} as dynamic storage. So named from a "malloc: corrupt arena" message emitted when some early versions detected an impossible value in the free block list.
See {overrun screw}, {aliasing bug}, {memory leak}, {memory smash}, {smash the stack}.
[{Jargon File}]
(1995-12-28)

ares
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
AREV
{Advanced Revelation}

arexx
AREXX
[language] {REXX} for the {Amiga}.
{ARexxGuide (http://www.halcyon.com/robin/www/arexxguide/main.html)}.
(1996-02-06)

arg
{argument}

argument
[programming] (Or "arg") A value or reference passed to a {function}, {procedure}, {subroutine}, command or program, by the caller. For example, in the function
square(x) = x * x
x is the {formal argument} or "parameter" and in the call
y = square(3+3)
3+3 is the {actual argument}. This will, in most cases, 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 functions are usually, following mathematical notation, written in parentheses after the function name, separated by commas. 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.
See also: {curried function}.
(2002-07-02)

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

ari service
ARI Service
[company] The trading name of the remnants of {AST Research, Inc.}. ARI Services is a wholly owned subsidiary of {Samsung Electronics Co. Ltd.}, of Seoul, Korea. They no longer manufacture or distribute computer hardware, but they continue to provide worldwide technical and service support to owners of systems that they manufactured.
{AST Computers, LLC} is a separate company.
Headquarters: 16225 Alton Parkway, POB 57005, Irvine, California 92619-7005, USA.
{Home (http://www.ari-service.com/)}.
(2000-03-28)

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

arithmatic
ARITH-MATIC
[language] An extension of {Grace Hopper}'s {A-2} programming language, developed in about 1955. ARITH-MATIC was originally known as A-3, but was renamed by the marketing department of {Remington Rand UNIVAC}.
{(http://cispom.boisestate.edu/cis221emaxson/hophtm.htm)}.
[How was A-2 extended?]
(2001-01-27)

arithmetic and logic unit
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
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/)}.
(1995-03-06)

arl
ARL
{ASSET Reuse Library}

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

arm ltd
ARM Ltd
{Advanced RISC Machines Ltd.}

arm610
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
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
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
ARM7500
[processor] An {ARM7} core with I/O and {VIDC20} all on one {integrated circuit}.
(1994-09-23)

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

armm
ARMM
{Automated Retroactive Minimal Moderation}

armourplated
armour-plated
{bulletproof}

arp
ARP
{Address Resolution Protocol}

arpa
ARPA
{Defense Advanced Research Projects Agency}

arpanet
ARPANET
{Advanced Research Projects Agency Network}

arq
ARQ
{Automatic Repeat Request}

array
1. [programming] A collection of identically typed data items distinguished by their indices (or "subscripts"). The number of dimensions an array can have depends on the language but is usually unlimited.
An array is a kind of {aggregate} data type. A single ordinary variable (a "{scalar}") could be considered as a zero-dimensional array. A one-dimensional array is also known as a "{vector}".
A reference to an array element is written something like A[i,j,k] where A is the array name and i, j and k are the indices. The {C} language is peculiar in that each index is written in separate brackets, e.g. A[i][j][k]. This expresses the fact that, in C, an N-dimensional array is actually a vector, each of whose elements is an N-1 dimensional array.
Elements of an array are usually stored contiguously. Languages differ as to whether the leftmost or rightmost index varies most rapidly, i.e. whether each row is stored contiguously or each column (for a 2D array).
Arrays are appropriate for storing data which must be accessed in an unpredictable order, in contrast to {lists} which are best when accessed sequentially.
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.
The {IBM AltiVec} (the "Velocity Engine" used in the {Apple G4} computers) is a vector processor.
Common uses for array processors include analysis of fluid dynamics and rotation of {3d} objects, as well as data retrieval, in which elements of a {database} are scanned simultaneously. Array processors are very rare now (1998).
{Array presentation (http://www.cs.njit.edu/leon/105/c5/index.htm)}.
(2003-09-11)

array processor assembly language
Array Processor Assembly Language
[language] (APAL) The {assembly language} for the {DAP} parallel computer.
(1994-11-28)

array theory
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
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
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
Artifex
[programming, tool] A {CASE} environment from {ARTIS} of Turin for the development of large {event-driven} distributed systems. It has code-generation and rapid prototyping features.
(1996-01-24)

artificial intelligence
[artificial intelligence] (AI) The subfield of computer science concerned with the concepts and methods of {symbolic inference} by computer and symbolic {knowledge representation} for use in making inferences. AI can be seen as an attempt to model aspects of human thought on computers. It is also sometimes defined as trying to solve by computer any problem that a human can solve faster. The term was coined by Stanford Professor {John McCarthy}, a leading AI researcher.
Examples of AI problems are {computer vision} (building a system that can understand images as well as a human) and {natural language processing} (building a system that can understand and speak a human language as well as a human). These may appear to be modular, but all attempts so far (1993) to solve them have foundered on the amount of context information and "intelligence" they seem to require.
The term is often used as a selling point, e.g. to describe programming that drives the behaviour of computer characters in a game. This is often no more intelligent than "Kill any humans you see; keep walking; avoid solid objects; duck if a human with a gun can see you".
See also {AI-complete}, {neats vs. scruffies}, {neural network}, {genetic programming}, {fuzzy computing}, {artificial life}.
{ACM SIGART (http://sigart.acm.org/)}. {U Cal Davis (http://phobos.cs.ucdavis.edu:8001)}. {CMU Artificial Intelligence Repository (http://www.cs.cmu.edu/Web/Groups/AI/html/repository.html)}.
(2002-01-19)

artificial intelligence lab
Artificial Intelligence Lab
{MIT AI Lab}

artificial life
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
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)

artistic license
Artistic license
[legal] The {open source license} applicable to {Perl}.
(1999-12-29)

artspeak
ARTSPEAK
[language] An early simple language for {plotter} graphics.
["The Art of Programming, ARTSPEAK", Henry Mullish, Courant Inst (Nov 1974)].
(1995-02-21)

as
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, programming] An {8031}/{8051} {assembler} by Ken Stauffer [stauffer@cpsc.ucalgary.ca] and Theo Deraadt which produces a variety of {object code} output formats. The distribution includes an {assembler}, {yacc} {parser}, and documentation. as31 runs on {Sun-3}, {Sun-4}, {SunOS 4.0}, {Tandy 6000}, and {Xenix}.
Current version: 1, as of 1990-01-26.
{as31 Home (http://www.pjrc.com/tech/8051/#as31_assembler)}.
(2002-05-07)

as400
AS400
{AS/400}

as400
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
ASA
{Adaptive Simulated Annealing}

asap
[chat] As soon as possible.
(1999-10-13)

asbestos
[jargon] Used as a modifier to anything intended to protect one from {flames}; also in other highly {flame}-suggestive usages. E.g., {asbestos longjohns}, {asbestos cork award}.
[{Jargon File}]
(1996-02-06)

asbestos cork award
[humour] Once, long ago at {MIT}, there was a {flamer} so consistently obnoxious that another hacker designed, had made, and distributed posters announcing that said flamer had been nominated for the "asbestos cork award". (Any reader in doubt as to the intended application of the cork should consult the etymology under {flame}.) Since then, it is agreed that only a select few have risen to the heights of bombast required to earn this dubious dignity - but there is no agreement on *which* few.
[{Jargon File}]
(1996-02-06)

asbestos longjohns
[humour] Notional garments donned by {Usenet} posters just before emitting a remark they expect will elicit {flamage}. This is the most common of the {asbestos} coinages. Also "asbestos underwear", "asbestos overcoat", etc.
[{Jargon File}]
(1997-07-04)

ascender
[text] A lowercase letter that extends above the "x-height" (the height of the letter "x"), such as "d", "t", or "h". Also used to denote the part of the letter extending above the x-height.
Compare {descender}.
(1998-03-27)

ascii
ASCII
{American Standard Code for Information Interchange}

ascii art
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)

ascii character table
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 graphics
{ASCII art}

asciibetical order
ASCIIbetical order
[jargon, programming] /as'kee-be'-t*-kl or'dr/ Used to indicate that data is sorted in {ASCII} collated order rather than alphabetical order. The main difference is that, in ASCII, all the upper case letters come before any of the lower case letters so, e.g., "Z" comes before "a".
[{Jargon File}]
(1999-04-08)

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

asdimpl
ASDIMPL
{ASDO IMPlementation Language}

asdl
ASDL
{Abstract-Type and Scheme-Definition Language}

asdo implementation 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
ASE
1. [programming] {Advanced Software Environment}.
2. [networking] {Application Service Element}.
3. [database] {Adaptive Server Enterprise}.
(2003-07-02)

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

ashtontate corporation
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
ASIC
{Application-Specific Integrated Circuit}

asis
ASIS
1. {Application Software Installation Server}.
2. [language] {Ada Semantic Interface Specification}.
(1999-10-21)

ask
ASK
{Amplitude Shift Keying}

asl
ASL
{Algebraic Specification Language}

asl
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
ASM
{assembly language}

asme
ASME
{American Society of Mechanical Engineers}

asn
ASN
{Autonomous System Number}

asn1
ASN.1
{Abstract Syntax Notation 1}

asp
ASP
1. [World-Wide Web] {Active Server Pages}.
2. [networking] {application service provider}.
3. [language] A {query language}(?).
[Sammet 1969, p.702].
4. [processor] {Attached Support Processor}.
(2000-07-08)

aspect
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
ASpecT
[language] Algebraic specification of {abstract data types}. A {strict} {functional language} that compiles to {C}.
Versions of ASpecT are available for {Sun}, {Ultrix}, {NeXT}, {Macintosh}, {OS/2} 2.0, {Linux}, {RS/6000}, {Atari}, {Amiga}.
{(ftp://wowbagger.uni-bremen.de/pub/programming/languages)}.
(1996-03-25)

aspect
[programming] In {aspect-oriented programming}, a modular unit of control over {emergent entities}.
(1999-08-31)

aspect ratio
[graphics] The ratio of width to height of a {pixel}, {image}, or {display screen}. Square pixels (1:1) are considered preferable but displays are usually about 5:4.
(1994-11-30)

aspectoriented programming
aspect-oriented programming
[programming] (AOP) A style of programming that attempts to abstract out features common to many parts of the code beyond simple functional modules and thereby improve the {quality} of software.
Mechanisms for defining and composing {abstractions} are essential elements of programming languages. The design style supported by the abstraction mechanisms of most current languages is one of breaking a system down into parameterised components that can be called upon to perform a function.
But many systems have properties that don't necessarily align with the system's functional components, such as failure handling, {persistence}, communication, replication, coordination, {memory management}, or {real-time} constraints, and tend to cut across groups of functional components.
While they can be thought about and analysed relatively separately from the basic functionality, programming them using current {component-oriented languages} tends to result in these aspects being spread throughout the code. The {source code} becomes a tangled mess of instructions for different purposes.
This "tangling" phenomenon is at the heart of much needless complexity in existing software systems. A number of researchers have begun working on approaches to this problem that allow programmers to express each of a system's aspects of concern in a separate and natural form, and then automatically combine those separate descriptions into a final executable form. These approaches have been called aspect-oriented programming.
{Xerox AOP homepage (http://www.parc.xerox.com/csl/projects/aop/)}.
{AspectJ (http://AspectJ.org/)}.
{ECOOPP'99 AOP workshop (http://wwwtrese.cs.utwente.nl/aop-ecoop99/)}.
(1999-11-21)

aspen
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
ASPI
{Advanced SCSI Peripheral Interface}

aspik
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
Aspirin
[language, tool] A {freeware} language from {MITRE Corporation} for the description of {neural networks}. A compiler, bpmake, is included. Aspirin is designed for use with the {MIGRAINES} interface.
Version: 6.0, as of 1995-03-08.
{(ftp://ftp.cognet.ucla.edu/alexis/)}.
(1995-03-08)

asple
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
ASPOL
{A Simulation Process-Oriented Language}

asqc
ASQC
{American Society for Quality Control}

asr
ASR
{Automatic Send Receive}

assembler
[programming] A program which converts {assembly language} into {machine code}.
(1996-03-25)

assembly
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
Assembly Language
[language, robotics] (AL) A language for industrial {robots} developed at {Stanford University} in the 1970s.
["The AL Language for an Intelligent Robot", T. Binford in Langages et Methods de Programation des Robots Industriels, pp. 73-88, IRIA Press 1979].
["AL User's Manual", M.S. Mujtaba et al, Stanford AI Lab, Memo AIM-323 (Jan 1979)].
(1994-11-24)

assembly language
[language] (Or "assembly code") A symbolic representation of the {machine language} of a specific {processor}. Assembly language is converted to {machine code} by an {assembler}. Usually, each line of assembly code produces one machine instruction, though the use of {macros} is common.
Programming in assembly language is slow and error-prone but is the only way to squeeze every last bit of performance out of the hardware.
{Filename extension}: .s ({Unix}), .asm ({CP/M} and others).
See also {second generation language}.
(1996-09-17)

assembly language compiler
Assembly Language Compiler
[language] (ALC) An alternative name for {IBM 360} {assembly language}.
Compare {BAL}.
(1995-01-04)

assembly language for multics
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 are used for {debugging} by catching {can't happen} errors.
2. In {logic programming}, a new {fact} or {rule} added to the database by the program at {run time}. This is an {extralogical} or impure feature of logic programming languages.
(1997-06-30)

asset
ASSET
{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
Asset Source for Software Engineering Technology
[project] (ASSET) A programme to promote software {reuse} by the US {DoD}.
See also {ASSET Reuse Library}.
(1996-08-19)

assigned numbers
[standard] The {RFC} {STD 2} documenting the currently assigned values from several series of numbers used in network {protocol} implementations. This RFC is updated periodically and, in any case, current information can be obtained from the {Internet Assigned Numbers Authority} (IANA). If you are developing a protocol or application that will require the use of a link, {socket}, {port}, protocol, etc., you should contact the IANA to receive a number assignment.
(1996-08-19)

assignment
[programming] Storing the value of an expression in a {variable}. This is commonly written in the form "v = e". In {Algol} the assignment operator was ":=" (pronounced "becomes") to avoid mathematicians qualms about writing statements like x = x+1.
Assignment is not allowed in {functional languages}, where an {identifier} always has the same value.
See also {referential transparency}, {single assignment}, {zero assignment}.
(1996-08-19)

assignment problem
[mathematics, algorithm] (Or "linear assignment") Any problem involving minimising the sum of C(a, b) over a set P of pairs (a, b) where a is an element of some set A and b is an element of set B, and C is some function, under constraints such as "each element of A must appear exactly once in P" or similarly for B, or both.
For example, the a's could be workers and the b's projects.
The problem is "linear" because the "cost function" C() depends only on the particular pairing (a, b) and is independent of all other pairings.
{(http://forum.swarthmore.edu/epigone/comp.soft-sys.matlab/bringhyclu)}. {(http://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
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
Association for Computational Linguistics
[body] (ACL) The international scientific and professional society for people working on problems involving {natural language} and computation. Membership includes the ACL quarterly journal, "Computational Linguistics", reduced registration at most ACL-sponsored conferences, discounts on ACL-sponsored publications, and participation in ACL Special Interest Groups. The ACL started in 1968; there are more than 2000 members worldwide.
E-mail: [acl@aclweb.org].
{Home (http://www.cs.columbia.edu/~acl/)}.
(1999-08-31)

association for computing
Association for Computing
[body] (ACM, before 1997 - "Association for Computing Machinery") The largest and oldest international scientific and educational computer society in the industry. Founded in 1947, only a year after the unveiling of {ENIAC}, ACM was established by mathematicians and electrical engineers to advance the science and application of {Information Technology}. {John Mauchly}, co-inventor of the ENIAC, was one of ACM's founders.
Since its inception ACM has provided its members and the world of computer science a forum for the sharing of knowledge on developments and achievements necessary to the fruitful interchange of ideas.
ACM has 90,000 members - educators, researchers, practitioners, managers, and engineers - who drive the Association's major programs and services - publications, special interest groups, chapters, conferences, awards, and special activities.
The ACM Press publishes journals (notably {CACM}), book series, conference proceedings, {CD-ROM}, {hypertext}, {video}, and specialized publications such as curricula recommendations and self-assessment procedures.
{Home (http://info.acm.org/)}.
(1998-02-24)

association for computing machinery
Association for Computing Machinery
{Association for Computing}

association for progressive communications
Association for Progressive Communications
[body, philosophy] (APC) A world-wide organisation of like-minded computer networks providing a global communications network dedicated to the free and balanced flow of information.
The APC defends and promotes non-commercial, productive online space for NGOs (Non-Governmental Organisations) and collaborates with like-minded organisations to ensure that the information and communication needs of civil society are considered in telecommunications, donor and investment policy.
A few of APC's partner organisations include The {Institute for Global Communications} (USA), GreenNet (UK), Nicarao (Nicaragua) Enda-Tiers Monde (Senegal) and GlasNet (Ukraine).
These organisations serve people working toward goals that include the prevention of warfare, elimination of militarism and poverty, protection of the environment, human rights, social and economic justice, participatory democracy, non-violent conflict resolution, and the promotion of sustainable development.
{Home (http://www.apc.org/english/)}.
E-mail: [apcadmin@apc.org].
(2000-10-08)

association for simula users
Association for SIMULA Users
[body] See {SIMULA}.
Address: Royal Institute of Technology, S-100 44 Stockholm, Sweden.
[Details?]
(1995-03-29)

association francaise des utilisateurs dunix
Association Francaise des Utilisateurs d'Unix
[body] (et des syst�mes ouverts, AFUU) French Association of {Unix} Users.
{Home (http://www.afuu.fr/)}.
(1996-06-07)

association of american publishers
Association of American Publishers
[body, publication] [body] (AAP) A group engaged in standardisation efforts in document preparation.
(2000-01-27)

association of c and c users
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
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.
{Home (http://www.cs.rochester.edu/u/miller/ALU/home.html)}.
{Usenet} {newsgroups}: {news:comp.org.lisp-users} {news:comp.std.lisp}.
Mailing list: [alu@ai.sri.com].
(1996-12-07)

associative array
[programming] 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
Associative Memory Parallel Processing Language
[language] (AMPPL-II) A language from the early 1970s.
(1995-11-14)

ast
AST
[company] 1. {ARI Service}.
2. {AST Computers, LLC}.
(2000-03-21)

ast computers llc
AST Computers, LLC
[company] The private company formed in January 1999 when Mr. Beny Alagem, the former chairman of {Packard Bell NEC, Inc.}, bought the name and intellectual property of {AST Research, Inc.}. AST Computers, LLC provide {hardware, software}, and services for small US businesses.
{Samsung Electronics Co. Ltd.}, of Seoul, Korea, owns a minority stake.
{Home (http://www.ast.com/)}.
Address: Los Angeles, CA, USA.
(2000-03-28)

ast research inc
AST Research, Inc.
[company] A company, formed some time before 1980, that was a leading {personal computer} manufacturer. AST developed {desktop}, mobile, and {server} {PC}s that were sold in more than 100 countries worldwide. It is now (2000-03-02) trading as {ARI Service}. In January 1999 the name and intellectual property were acquired by a new company named {AST Computers, LLC}.
(2000-03-21)

astap
ASTAP
{Advanced STatistical Analysis Program}

asterisk
[character] "*" {ASCII} code 42. Common names include: star; {INTERCAL}: {splat}; {ITU-T}: asterisk. Rare: {wild card}; gear; dingle; mult; spider; aster; times; twinkle; {glob}; {Nathan Hale}. Commonly used as the multiplication operator and as the {Kleene star}.
(2000-07-26)

asterix
[spelling] Do you mean "{asterisk}" (the star-shaped character), or {Asterix the Gaul (http://www.webring.org/cgi-bin/webring?ring=asterixwebring&index)}, the popular French cartoon by Goscinny and Uderzo?
(2000-07-26)

astra digital radio
Astra Digital Radio
[audio] {Digital Radio} over satellite, compatible with analog television transmissions. Alternatively the normal TV subcarriers can be modulated by a {MPEG-1 Layer-2} 48 kHz 192 kbps signal. Quality is better than analog carriers and only needs half the {bandwidth} (analog stereo = 2 carrier, digital stereo = 1 carrier). Quality is limited and the data rate can't be increased.
(2001-12-13)

astral
Astral
[language] A programming language based on {Pascal}, never implemented.
["ASTRAL: A Structured and Unified Approach to Database Design and Manipulation", T. Amble et al, in Proc of the Database Architecture Conf, Venice, June 1979].
(2000-01-27)

asymmetric digital subscriber line
Asymmetric Digital Subscriber Line
[communications, protocol] (ADSL, or Asymmetric Digital Subscriber Loop) A form of {Digital Subscriber Line} in which the bandwidth available for {downstream} connection is significantly larger then for {upstream}. Although designed to minimise the effect of {crosstalk} between the upstream and downstream channels this setup is well suited for {web browsing} and {client}-{server} applications as well as for some emerging applications such as {video on demand}.
The data-rate of ADSL strongly depends on the length and quality of the line connecting the end-user to the telephone company. Typically the upstream data flow is between 16 and 640 {kilobits} per second while the downstream data flow is between 1.5 and 9 {megabits} per second. ADSL also provides a voice channel.
ADSL can carry digital data, analog voice, and broadcast {MPEG2} video in a variety of implementations to meet customer needs.
["Data Cooks, But Will Vendors Get Burned?", "Supercomm Spotlight On ADSL" & "Lucent Sells Paradine", Wilson & Carol, Inter@ctive Week Vol. 3 #13, p1 & 6, June 24 1996].
See also {Carrierless Amplitude/Phase Modulation}, {Discrete MultiTone}.
{ADSL Forum (http://www.adsl.com/)}.
(1998-05-18)

asymmetric digital subscriber loop
Asymmetric Digital Subscriber Loop
{Asymmetric Digital Subscriber Line}

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)

asynchronous
[architecture] Not synchronised by a shared signal such as {clock} or {semaphore}, proceeding independently.
Opposite: {synchronous}.
1. [operating system] A {process} in a {multitasking} system whose execution can proceed independently, "in the {background}". Other processes may be started before the asynchronous process has finished.
2. [communications] A communications system in which data transmission may start at any time and is indicated by a {start bit}, e.g. {EIA-232}. A data {byte} (or other element defined by the {protocol}) ends with a {stop bit}. A continuous marking condition (identical to stop bits but not quantized in time), is then maintained until data resumes.
(1995-12-08)

asynchronous balanced mode
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
Asynchronous Communications Interface Adapter
[communications, hardware] (ACIA) A kind of {integrated circuit} that provides data formatting and control to {EIA-232} serial interfaces.
[Is this the same as a {UART}?]
(1997-05-07)

asynchronous logic
[architecture] A {data-driven} circuit design technique where, instead of the components sharing a common {clock} and exchanging data on clock edges, data is passed on as soon as it is available. This removes the need to distribute a common clock signal throughout the circuit with acceptable {clock skew}. It also helps to reduce power dissipation in {CMOS} circuits because {gates} only switch when they are doing useful work rather than on every clock edge.
There are many kinds of asynchronous logic. Data signals may use either "dual rail encoding" or "data bundling". Each dual rail encoded {Boolean} is implemented as two wires. This allows the value and the timing information to be communicated for each data bit. Bundled data has one wire for each data bit and another for timing. Level sensitive circuits typically represent a logic one by a high voltage and a logic zero by a low voltage whereas transition signalling uses a change in the signal level to convey information. A speed independent design is tolerant to variations in gate speeds but not to propagation delays in wires; a delay insensitive circuit is tolerant to variations in wire delays as well.
The purest form of circuit is delay-insensitive and uses dual-rail encoding with transition signalling. A transition on one wire indicates the arrival of a zero, a transition on the other the arrival of a one. The levels on the wires are of no significance. Such an approach enables the design of fully delay-insensitive circuits and automatic layout as the delays introduced by the layout compiler can't affect the functionality (only the performance). Level sensitive designs can use simpler, stateless logic gates but require a "return to zero" phase in each transition.
{(http://www.cs.man.ac.uk/amulet/async/)}.
(1995-01-18)

asynchronous transfer mode
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)}.
[More detail? Data rate(s)?]
(1996-04-01)

asyncronous
[spelling] It's spelled "{asynchronous}".
(1996-12-13)

at
1. [character] {commercial at}.
2. [networking] The {country code} for Austria.
(1999-01-27)

at
AT
{IBM PC AT}

at attachment
AT Attachment
{Advanced Technology Attachment}

at attachment packet interface
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
AT bus architecture
{Industry Standard Architecture}

at sign
{commercial at}

at3
AT-3
[language] The original name of {MATH-MATIC}.
[Sammet 1969, p. 135].
(2000-02-24)

ata
ATA
{Advanced Technology Attachment}

ata point
ATA point
[unit, text] (Or "Anglo-Saxon point") One of the two most common variants of the {point}, equal to 0.3514598 mm, or 0.0138366 inch, or 1/72.272 inch. The ATA point is used on the island of the United Kingdom and on the American continent.
[What point do they use in Ireland?]
(2002-03-11)

ata2
ATA-2
{Advanced Technology Attachment Interface with Extensions}

ata4
ATA-4
[storage] /ul'tr* D M A/ (Or "Ultra DMA", "UDMA", "Ultra-ATA", "Ultra-DMA/33") A development of the {Advanced Technology Attachment} specifications which gives nearly twice the maximum transfer speed of the {ATA-3} standard ({PIO} Mode 4).
ATA-4 Extensions Ultra DMA/33 Synchronous DMA Mode maximum burst transfer rates:
Mode Cycle Time Transfer Rate ns MB/s 0 235 16 1 160 24 2 120 33
This is achieved by improving timing windows in the {protocol} on the ATA interface; reducing propagation delays by {pipelining} data transfers and transferring data in {synchronous} (strobed) mode.
Developed by {Quantum Corporation}, ATA-4 has been freely licensed to manufacturers and is supported by {Intel Corporation}.
(1998-09-30)

atanasoff john vincent
Atanasoff, John Vincent
{John Vincent Atanasoff}

atanasoffberry computer
Atanasoff-Berry Computer
[computer] (ABC) The first electronic {digital computer} ever built. The ABC was built between 1937 and 1942 by Dr. {John Vincent Atanasoff} and Clifford Berry at {Iowa State College}. It incorporated {binary} arithmetic, {regenerative memory}, {parallel processing}, and separation of memory and computing functions.
Ideas from the ABC were used in the design of {ENIAC} (1943-1946).
{(http://www.cs.iastate.edu/jva/jva-archive.shtml)}.
(2002-04-07)

atapi
ATAPI
{AT Attachment Packet Interface}

atari
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}.
{Michigan U (ftp://atari.archive.umich.edu)}, {UK (ftp://micros.hensa.ac.uk/)}, {Germany (ftp://ftp.Germany.EU.net)} [192.76.144.75], {Netherlands (ftp://ftp.cs.ruu.nl/)} [131.211.80.17], {UK (ftp://src.doc.ic.ac.uk/computing/systems/atari/umich)}.
(1999-07-12)

atfs
AtFS
{Attributed File System}

athena
Athena
{Project Athena}

atherton technology
Atherton Technology
[company] The comapny that developed the {Software BackPlane} {CASE} framework. Their {Atherton Tool Integration Services} were the basis for the ATIS standard.
(2000-02-24)

athlon
Athlon
[hardware] (K7) {AMD}'s 7th generation {x86} {processor}, released in June 1999.
Athlon uses a {Slot A} {motherboard} and is not compatible with {Slot 1} motherboards.
[Details? Reference?]
(1999-08-05)

atis
ATIS
{A Tools Integration Standard}

atk
ATK
{Andrew Toolkit}

atlas
ATLAS
{Abbreviated Test Language for Avionics Systems}

atlas autocode
Atlas Autocode
[language] The {Autocode} for the {Ferranti} {Atlas}, which may have been the first commercial computer with {hardware-paged} {virtual memory}. Whereas other {autocodes} were basically {assembly languages}, Atlas Autocode was high-level and {block-structured}, resembling a cross between {Fortran} and {ALGOL 60}. It had {call-by value}, {loops}, {declarations}, {complex numbers}, {pointers}, {heap} and {stack} storage generators, {dynamic arrays}, and extensible {syntax}.
(2000-04-03)

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

atmp
ATMP
{Asynchronous Transfer Mode Protocol}?
(2001-03-03)

atob
[tool] /A too B/ A utility that does {ASCII} to {binary} conversion. The reverse process is {btoa}.
[Algorithm?]
(1997-08-08)

atoll
ATOLL
{Acceptance, Test Or Launch Language}

atomic
[jargon] (From Greek "atomos", indivisible) Indivisible; cannot be split up.
For example, an instruction may be said to do several things "atomically", i.e. all the things are done immediately, and there is no chance of the instruction being half-completed or of another being interspersed. Used especially to convey that an operation cannot be interrupted.
An atomic {data type} has no internal structure visible to the program. It can be represented by a flat {domain} (all elements are equally defined). Machine {integers} and {Booleans} are two examples.
An atomic {database transaction} is one which is guaranteed to complete successfully or not at all. If an error prevents a partially-performed transaction from proceeding to completion, it must be "backed out" to prevent the database being left in an inconsistent state.
[{Jargon File}]
(2000-04-03)

atrac
ATRAC
{Adaptive TRansform Acoustic Coding}

ats
ATS
{Attribute Translation System}

att
AT&T
{American Telephone and Telegraph, Inc.}

att bell labs
AT&T Bell Labs
{Bell Laboratories}

attachment unit interface
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)

attenuation
[communications] The progressive reduction in {amplitude} of a signal as it travels farther from the point of origin.
For example, an electric signal's amplitude reduces with distance due to electrical {impedance}. Attenuation is usually measured in {decibels} [per metre?].
Attenuation does not imply appreciable modification of the shape of the waveform (distortion), though as the signal amplitude falls the {signal-to-noise ratio} will also fall unless the channel itself is noise free or the signal is amplified at some intermediate point(s) along the channel.
["Networking Essentials, second edition", Microsoft Corporation, pub. Microsoft Press 1997].
(2003-07-29)

atto
-
{prefix}

attoparsec
[unit, humour] About 31 mm (one inch). "atto-" is the standard {SI} {prefix} for multiplication by 10^-18. A parsec (parallax-second) is 3.26 light-years; an attoparsec is thus 3.26 * 10^-18 light years. Thus, one attoparsec per {microfortnight} is about one inch per second.
This unit is reported to be in use (though probably not very seriously) among hackers in the UK.
[{Jargon File}]
(1996-12-08)

attribute
[data] A named value or relationship that exists for some or all {instances} of some {entity} and is directly associated with that instance.
Examples include the {href} attribute of an {HTML} {anchor} element, the columns of a database table considered as attributes of each row, and the {members} ({properties} and {methods} of an {object} in {OOP}. This contrasts with the contents of some kind of container (e.g. an array), which are typically not named. The contents of an {associative array}, though they might be considered to be named by their key values, are not normally thought of as attributes.
(2001-02-04)

attribute translation system
Attribute Translation System
[grammar, tool] (ATS) A {BNF}-based {parser generator} from the {University of Saskatchewan}(?). ATS generates table-driven {LL1} {parsers} with full {insert-only error recovery}. It also has full left-attribute semantic handling, which is a dream compared to using {YACC}'s parser actions.
(2000-04-08)

attributed file system
Attributed File System
[storage] (AtFS) The basis of the {Shape_VC} toolkit.
Cooperative work within projects is supported by a status model controlling visibility of version objects, locking, and "long transactions" for synchronising concurrent updates. The concept of object attributes provides a basis for storing management information with versions and passing this information between individual tools. This mechanism is useful for building integrated environments from a set of unrelated tools.
(2000-02-24)

atx
ATX
[hardware, standard] An {open} {PC} {motherboard} specification by {Intel}.
ATX is a development of the {Baby AT} specification with the motherboard rotated 90 degrees in the chassis. The {CPU} and {SIMM} sockets have been relocated away from the {expansion card} slots meaning that all the slots support full-length cards. More {I/O} functions are integrated on the motherboard. As the longer edge of the board is now at the back of the chassis, there is more space for connectors; also, the I/O opening on the back panel of the chassis has been defined as double the previous height, allowing vendors to add extra on-board I/O functions over and above the standard.
Most {Pentium Pro} boards use this {form factor}.
As well as the motherboard size, layout, and placement, the ATX specification also includes requirements for power supply and fan specification and location.
The full size ATX board measures 305mm wide by 244mm deep. There is also a Mini-ATX form factor, 284mm by 208mm.
{Home (http://developer.intel.com/design/motherbd/atx.htm)}.
(2001-07-16)

au
1. [networking] The two character {country code} for Australia used in {Internet} {domain names}.
2. [filename extension] {audio}.
(1995-02-15)

aubergine
[jargon] A secret term used to refer to computers in the presence of computerphobic third parties.
(1995-01-24)

audio
[file format] Sound, one component of {multimedia}. Computers (and audio compact discs and digital audio tape) work with {digital audio}, in contrast to vinyl disks or analogue tape.
(1999-07-30)

audio iff
Audio IFF
[file format, music] (AIFF) A format developed by {Apple Computer} Inc. for storing high-quality {digital audio} and musical instrument information. It is also used by {SGI} and several professional audio packages.
(1994-10-10)

audio processing technology
Audio Processing Technology
[company] (APT) A company that produces {codecs} based on {predictive analysis} rather than {frequency coding}.
(1996-01-15)

audio video interleave
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)

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)

audiographics
{Audiographic Teleconferencing}

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

augmented backusnaur form
Augmented Backus-Naur Form
[language] An extension of {Backus-Naur Form} documented in {RFC 2234}.
[Summary?]
(1997-11-23)

aui
AUI
1. [tool, product] {Adaptable User Interface}.
2. [networking] {Attachment Unit Interface}.
(1996-12-08)

aum
A'UM
[language] A {stream}-based, {concurrent}, {logic}, {object-oriented} language by K. Yoshida and Takashi Chikayama [chikayama@klic.org], built on top of {KL1}.
["A'UM - A Stream-based Concurrent Logic Object-Oriented Language", K. Yoshida et al, Proc 3rd Intl Conf Fifth Gen Comp Sys, Springer 1988, pp. 638-649].
(2000-07-16)

aup
AUP
{acceptable use policy}

aurora
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
Austin Kyoto Common Lisp
[language] (AKCL) A collection of ports, bug fixes, and performance improvements to {KCL} by William Schelter [wfs@cli.com], [wfs@math.utexas.edu], University of Texas.
Version 1-615 includes ports to {Decstation} 3100, {HP9000}/300, {i386}/{Sys V}, {IBM-PS2}/{AIX}, {IBM-RT}/{AIX}, {SGI}, {Sun-3}/{Sunos} 3 or 4, {Sun-4}, {Sequent Symmetry}, {IBM370}/{AIX}, {VAX}/{BSD VAX}/{Ultrix}, {NeXT}.
{(ftp://rascal.ics.utexas.edu/pub/akcl-1-609.tar.Z)}.
(1992-04-29)

authentication
[security] The verification of the identity of a person or process. In a communication system, authentication verifies that messages really come from their stated source, like the signature on a (paper) letter.
(2001-03-16)

authoring
[hypertext] Creating a {hypertext} or {hypermedia} document.
(1994-11-07)

auto idle
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)

autobaud
{automatic baud rate detection}

autobogotiphobia
{bogotify}

autocad
AutoCAD
[CAD, product] A {CAD} {software} package for mechanical engineering, marketed by {Autodesk, Inc.}
(1994-11-09)

autocode
Autocode
[language] 1. The {assembly language} accepted by {AUTOCODER}.
2. A generic term for symbolic {assembly language}. Versions of Autocode were developed for {Ferranti} {Atlas}, {Titan}, {Mercury} and {Pegasus} and {IBM 702} and {IBM 705}.
(2001-05-14)

autocoder
AUTOCODER
[language] Possibly the first primitive {compiler}. AUTOCODER was written by Alick E. Glennie in 1952. It translated symbolic statements into {machine language} for the {Manchester Mark I} computer.
Autocoding later came to be a generic term for {assembly language} programming.
(1994-11-07)

autoconf
[software, tool] The {GNU project}'s tool that configures a source code distribution to compile and run on a different platform.
Among {open source} {hackers}, a mere running {binary} of a program is not considered a full release; what's interesting is a source tree that can be built into binaries using standard tools. Since the mid-1990s, autoconf, {automake}, and {libtools} have been the standard way to make a distribution portable so that it can be built on multiple {operating systems} without change.
(2002-09-20)

autoconfiscate
[software, jargon] A term coined by Noah Friedman meaning to set up or modify a {source-code} distribution so that it configures and builds using the {GNU project}'s {autoconf}/automake/libtools suite.
(2002-09-20)

autodesk inc
Autodesk, Inc.
[company] The distributors of the {AutoCAD} {CAD} package.
Address: Sausalito, CA, USA.
(1994-11-09)

autoexecbat
AUTOEXEC.BAT
[operating system] The {batch file} containing commands, loaded by {MS-DOS} after running {CONFIG.SYS}. AUTOEXEC.BAT contains normal DOS commands and can be used for additional system configuration such as setting paths and variables, configuring network connections and running {application programs}.
(1995-03-18)

autograf
AUTOGRAF
[tool] A system for describing {bar charts}.
["User's Manual for AUTOGRAF", Cambridge Computer Assoc, Dec 1972].
(2001-05-14)

autogrp
AUTOGRP
{AUTOmated GRouPing system}

autolisp
Autolisp
[language] A dialect of {Lisp} used by the {Autocad} {CAD} package from {Autodesk}.
(1994-11-09)

autoloader
{stack loader}

automagically
[jargon] /aw-toh-maj'i-klee/ or /aw-toh-maj'i-k*l-ee/ Automatically, but in a way that, for some reason (typically because it is too complicated, or too ugly, or perhaps even too trivial), the speaker doesn't feel like explaining to you.
E.g. "The C-INTERCAL compiler generates C, then automagically invokes {cc} to produce an executable."
See {magic}.
[{Jargon File}]
(2001-05-18)

automata
{automaton}

automata theory
{automaton}

automated engineering design
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 grouping system
AUTOmated GRouPing system
[tool, mathematics] (AUTOGRP) An interactive statistical analysis system, an extension of {CML}.
["AUTOGRP: An Interactive Computer System for the Analysis of Health Care Data", R.E. Mills et al, Medical Care 14(7), Jul 1976].
(1994-11-07)

automated retroactive minimal moderation
Automated Retroactive Minimal Moderation
[messaging] (ARMM) A {Usenet} robot created by Dick Depew of Munroe Falls, Ohio. ARMM was intended to automatically cancel posts from anonymous-posting sites. Unfortunately, the robot's recogniser for anonymous postings triggered on its own automatically-generated control messages! Transformed by this stroke of programming ineptitude into a monster of Frankensteinian proportions, it broke loose on the night of 1993-03-31 and proceeded to {spam} {news:news.admin.policy} with a recursive explosion of over 200 messages.
Reactions varied from amusement to outrage. The pathological messages crashed at least one mail system, and upset people paying line charges for their {Usenet} feeds. One poster described the ARMM debacle as "instant {Usenet} history" (also establishing the term {despew}), and it has since been widely cited as a cautionary example of the havoc the combination of good intentions and incompetence can wreak on a network.
Compare {Great Worm}; {sorcerer's apprentice mode}. See also {software laser}, {network meltdown}.
(1996-01-08)

automated testing
[testing] Software testing assisted with software tools that require no operator input, analysis, or evaluation.
(2001-05-20)

automath
AUTOMATH
[language, mathematics] A very high level language for writing proofs, from Eindhoven, Netherlands.
["The Mathematical Language AUTOMATH, Its Usage and Some of its Extensions", N.G. deBruijn, in Symp on Automatic Demonstration, LNM 125, Springer 1970].
(2001-07-09)

automatic baud rate detection
[communications] (ABR, autobaud) A process by which a receiving device determines the speed, {code level}, and {stop bits} of incoming data by examining the first character, usually a preselected sign-on character. ABR allows the receiving device to accept data from a variety of transmitting devices operating at different speeds without needing to establish data rates in advance.
(1996-06-18)

automatic hyphenation
[text] A feature of some {word processors} which can insert {hyphens} into words which would otherwise extend beyond the right hand margin of the page.
More advanced word processors may have options to control the position of the hyphen, to restrict certain words from being hyphenated, and to allow custom dictionaries of hyphenation points to be built up.
(1996-08-02)

automatic mathematical translation
Automatic Mathematical TRANslation
[mathematics, tool] (AMTRAN) A system developed by NASA in Huntsville in 1966 for the {IBM 1620}, based on the {Culler-Fried} System. It required a special terminal.
["AMTRAN: An Interactive Computing System", J. Reinfelds, Proc FJCC 37:537- 542, AFIPS (Fall 1970)].
(1995-11-14)

automatic network routing
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
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
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
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
Automatic Sequence Controlled Calculator
{Mark 1}

automatically programmed tools
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)

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
Automatische Rechenplanfertigung
[language] A programming language published in 1952 by Heinz Rutishauser (1918-70).
[Features?]
(2001-07-09)

automaton
[robotics, mathematics, algorithm] (Plural automata) A machine, {robot}, or {formal system} designed to follow a precise sequence of instructions.
Automata theory, the invention and study of automata, includes the study of the capabilities and limitations of computing processes, the manner in which systems receive input, process it, and produce output, and the relationships between behavioural theories and the operation and use of automated devices.
See also {cellular automaton}, {finite state machine}.
(1996-04-23)

automatrix inc
Automatrix, Inc.
[company] The company which produced {CAM-PC}.
Address: Ballston Spa, NY, USA.
{Home (http://www.automatrix.com/)}.
(1995-04-21)

autonomous system
Autonomous System
[networking, routing] (AS) A collection of {routers} under a single administrative authority, using a common {Interior Gateway Protocol} for routing {packets}.
(2001-09-16)

autonomous system number
Autonomous System Number
[networking, routing] (ASN) Used for {routing} on the {Internet}.
[Does each ASN uniquely identify an {Autonomous System}?]
(2001-09-16)

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

autoprojector
[theory] A self-applicable {partial evaluator}.
(2001-09-16)

autoprompt
AUTO-PROMPT
[language] A {numerical control} language from {IBM} for {3D} milling.
[Sammet 1969, p.606].
(2001-09-25)

autostat
Autostat
[language] A language for statistical programming.
["Autostat: A Language for Statistical Programming", A.S. Douglas et al, Computer J 3:61, 1960].
(2001-09-25)

autostereogram
{SIRDS}

aux
A/UX
[operating system] (Apple's UniX) {Apple}'s first version of {Unix} for {Macintosh} computers. A/UX merges the {Macintosh Finder} ({GUI}) with a Unix core, offering functions from both systems. It will run on some late-model {Motorola 68000} Macs, but not on the {Power Macintosh}.
A/UX is based on {AT&T} Unix {System V}.2.2 with numerous extensions from V.3, V.4 and {BSD} 4.2/4.3. It also provides full {POSIX} compliance.
A/UX 3.x.x incorporates {System 7} for the Macintosh, thus supporting the vast majority of Macintosh {applications}. System 7 and Unix are fully integrated under A/UX 3.x.x with the Unix file system being seen as a disk drive by the Finder.
{jagubox's A/UX Home Page (http://jagubox.gsfc.nasa.gov/aux/Info/FAQ.auxl)}.
(1997-12-13)

auxiliary storage
[storage] An obsolete term for a {hard disk} {drive}.
(1997-04-14)

av
{avatar}

availability
[system] The degree to which a system suffers degradation or interruption in its service to the customer as a consequence of failures of one or more of its parts.
One of the components of {RAS}.
(2000-08-13)

avalonc
Avalon/C++
[language, parallel] A {concurrent} extension of {C++} with servers and transactions developed in 1986 for {fault-tolerant} {distributed} systems. Avalon/C++ was influenced by {Argus}.
["Camelot and Avalon: A Distributed Transaction Facility", J.L. Eppinger et al, Morgan Kaufmann 1990].
(2002-01-13)

avaloncommon lisp
Avalon/Common LISP
[language] A {LISP} dialect available as a prototype only.
["Reliable Distributed Computing with Avalon/Common LISP", S.M. Clamen et al, CMU-CS-89-186 and Proc Intl Conf on Computer Languages, Mar 1990].
(2002-02-03)

avatar
1. [chat, virtual reality] An {image} representing a user in a multi-user {virtual reality} (or VR-like, in the case of {Palace}) space.
2. (CMU, Tektronix) {root}, {superuser}. There are quite a few {Unix} computers on which the name of the superuser account is "avatar" rather than "root". This quirk was originated by a {CMU} hacker who disliked the term "superuser", and was propagated through an ex-CMU hacker at {Tektronix}.
[{Jargon File}]
(1997-09-14)

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)

averstar
AverStar
[company] The US software engineering company that developed {Hal}, under their former name, "Intermetrics". Other products include {CS-4}, {Red}, {Mwave Developers Toolkit} ({multimedia} for {IBM PC}), {cross-compilers} for {C} and {C++}; {Ada '83}, {Ada 95}, and {SAMeDL}. AverStar also supply {client/server} systems; custom software applications and {turnkey} systems; independent verification and validation; {CAE} integration technology; languages and compilers: {Ada}, {C}, {C++}, {HDL}s ({MHDL}), {Modula}, {SPL/1}.
Address: Intermetrics, Inc., 733 Concord Avenue, Cambridge, MA 02138, USA. Telephone: +1 (617) 661 1840. Fax: +1 (617) 868 2843.
Address: 7918 Jones Branch Drive, McLean, Va 22102, USA. Telephone: +1 (703) 827-2606. Fax: +1 (703) 827-5560.
Also Houston, TX, Huntington Beach, CA, Warminster, PA, and others.
{AverStar Home (http://www.averstar.com/)}.
(2003-02-17)

avi
AVI
{Audio Video Interleave}

avon
Avon
[language] A {dataflow} language.
["AVON: A Dataflow Language", A. Deb, ICS 87, Second Intl Conf on Supercomputing, v.3, pp.9-19, ISI 1987].
(1994-11-28)

avs
AVS
{Application Visualisation System}

aw
[networking] The {country code} for Aruba.
(1999-01-27)

awe
AWE
{Advanced WavEffect}

awg
AWG
{American Wire Gauge}

awk
1. [tool, language] (Named from the authors' initials) An interpreted language included with many versions of {Unix} for massaging text data, developed by Alfred Aho, Peter Weinberger, and Brian Kernighan in 1978. It is characterised by {C}-like syntax, declaration-free variables, {associative arrays}, and field-oriented text processing.
There is a {GNU} version called {gawk} and other varients including {bawk}, {mawk}, {nawk}, {tawk}. {Perl} was inspired in part by awk but is much more powerful.
{Unix manual page}: awk(1).
{netlib WWW (http://plan9.att.com/netlib/research/index.html)}. {netlib FTP (ftp://netlib.att.com/netlib/research/)}.
["The AWK Programming Language" A. Aho, B. Kernighan, P. Weinberger, A-W 1988].
2. [jargon] An expression which is awkward to manipulate through normal {regexp} facilities, for example, one containing a {newline}.
[{Jargon File}]
(1995-10-06)

awt
AWT
{Abstract Window Toolkit}

axe
aXe
[tool] A {text editor} for the {X Window System}. No longer maintained.
(1998-03-13)

axiom
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
AXIOM*
[mathematics, tool] A {symbolic mathematics} system.
{A#} is one component of AXIOM*.
Version: 2.
(1995-02-21)

axiom of choice
Axiom of Choice
[mathematics] (AC, or "Choice") An {axiom} of {set theory}:
If X is a set of sets, and S is the union of all the elements of X, then there exists a function f:X -] S such that for all non-empty x in X, f(x) is an element of x.
In other words, we can always choose an element from each set in a set of sets, simultaneously.
Function f is a "choice function" for X - for each x in X, it chooses an element of x.
Most people's reaction to AC is: "But of course that's true! From each set, just take the element that's biggest, stupidest, closest to the North Pole, or whatever". Indeed, for any {finite} set of sets, we can simply consider each set in turn and pick an arbitrary element in some such way. We can also construct a choice function for most simple {infinite sets} of sets if they are generated in some regular way. However, there are some infinite sets for which the construction or specification of such a choice function would never end because we would have to consider an infinite number of separate cases.
For example, if we express the {real number} line R as the union of many "copies" of the {rational numbers}, Q, namely Q, Q+a, Q+b, and infinitely (in fact uncountably) many more, where a, b, etc. are {irrational numbers} no two of which differ by a rational, and
Q+a == {q+a : q in Q}
we cannot pick an element of each of these "copies" without AC.
An example of the use of AC is the theorem which states that the {countable} union of countable sets is countable. I.e. if X is countable and every element of X is countable (including the possibility that they're finite), then the sumset of X is countable. AC is required for this to be true in general.
Even if one accepts the axiom, it doesn't tell you how to construct a choice function, only that one exists. Most mathematicians are quite happy to use AC if they need it, but those who are careful will, at least, draw attention to the fact that they have used it. There is something a little odd about Choice, and it has some alarming consequences, so results which actually "need" it are somehow a bit suspicious, e.g. the {Banach-Tarski paradox}. On the other side, consider {Russell's Attic}.
AC is not a {theorem} of {Zermelo Frankel set theory} (ZF). Godel and Paul Cohen proved that AC is independent of ZF, i.e. if ZF is consistent, then so are ZFC (ZF with AC) and ZF(~C) (ZF with the negation of AC). This means that we cannot use ZF to prove or disprove AC.
(2003-07-11)

axiom of comprehension
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)

axiomatic architecture description language
Axiomatic Architecture Description Language
[language, architecture, parallel] (AADL) A language allowing concise modular specification of {multiprocessor} architectures from the compiler/operating-system interface level down to chip level. AADL is rich enough to specify target architectures while providing a concise model for clocked {microarchitectures}.
["AADL: A Net-Based Specification Method for Computer Architecture Design", W. Damm et al in Languages for Parallel Architectures, J.W. deBakker ed, Wiley, 1989].
(2003-06-30)

axiomatic semantics
[theory] A set of assertions about properties of a system and how they are effected by program execution. The axiomatic semantics of a program could include pre- and post-conditions for operations. In particular if you view the program as a state transformer (or collection of state transformers), the axiomatic semantics is a set of invariants on the state which the state transformer satisfies.
E.g. for a function with the type:
sort_list :: [T] -] [T]
we might give the precondition that the argument of the function is a list, and a postcondition that the return value is a list that is sorted.
One interesting use of axiomatic semantics is to have a language that has a {finitely computable} sublanguage that is used for specifying pre and post conditions, and then have the compiler prove that the program will satisfy those conditions.
See also {operational semantics}, {denotational semantics}.
(1995-11-09)

axiomatic set theory
[theory] One of several approaches to {set theory}, consisting of a {formal language} for talking about sets and a collection of {axioms} describing how they behave.
There are many different {axiomatisations} for set theory. Each takes a slightly different approach to the problem of finding a theory that captures as much as possible of the intuitive idea of what a set is, while avoiding the {paradoxes} that result from accepting all of it, the most famous being {Russell's paradox}.
The main source of trouble in naive set theory is the idea that you can specify a set by saying whether each object in the universe is in the "set" or not. Accordingly, the most important differences between different axiomatisations of set theory concern the restrictions they place on this idea (known as "comprehension").
{Zermelo Frankel set theory}, the most commonly used axiomatisation, gets round it by (in effect) saying that you can only use this principle to define subsets of existing sets.
NBG (von Neumann-Bernays-Goedel) set theory sort of allows comprehension for all {formulae} without restriction, but distinguishes between two kinds of set, so that the sets produced by applying comprehension are only second-class sets. NBG is exactly as powerful as ZF, in the sense that any statement that can be formalised in both theories is a theorem of ZF if and only if it is a theorem of ZFC.
MK (Morse-Kelley) set theory is a strengthened version of NBG, with a simpler axiom system. It is strictly stronger than NBG, and it is possible that NBG might be consistent but MK inconsistent.
{NF (http://math.boisestate.edu/~holmes/holmes/nf.html)} ("New Foundations"), a theory developed by Willard Van Orman Quine, places a very different restriction on comprehension: it only works when the formula describing the membership condition for your putative set is "stratified", which means that it could be made to make sense if you worked in a system where every set had a level attached to it, so that a level-n set could only be a member of sets of level n+1. (This doesn't mean that there are actually levels attached to sets in NF). NF is very different from ZF; for instance, in NF the universe is a set (which it isn't in ZF, because the whole point of ZF is that it forbids sets that are "too large"), and it can be proved that the {Axiom of Choice} is false in NF!
ML ("Modern Logic") is to NF as NBG is to ZF. (Its name derives from the title of the book in which Quine introduced an early, defective, form of it). It is stronger than ZF (it can prove things that ZF can't), but if NF is consistent then ML is too.
(2003-09-21)

axle
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
AYT
[chat] Are you there?
(1996-03-09)

az
[networking] The {country code} for Azerbaijan.
(1999-01-27)

azerty
AZERTY
{QWERTY}

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

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

b1 security
B1 security
{Orange Book}

b1ff
B1FF
{BIFF}

b2 security
B2 security
{Orange Book}

b2b
B2B
{business to business}

b3 security
B3 security
{Orange Book}

b4
[chat] before.

ba
[networking] The {country code} for Bosnia and Herzegowina.
(1999-01-27)

baan
Baan
[company] A provider of {enterprise resource planning} and {manufacturer resource planning} software.
{Home (http://www.baan.com/)}.
(1998-07-07)

babbage
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
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
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
BABT
{British Approval Boards for Telecommunications}

baby at
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
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
BACAIC
Boeing Airplane Company Algebraic Interpreter Coding system.
A pre-{Fortran} system on the {IBM 701} and {IBM 650}.
(1995-02-08)

bachman
Bachman
A proposed a style of {Entity-Relationship model} which differs from Chen's.
(1995-02-08)

bachman information systems
Bachman Information Systems
[company] The company which merged with {CADRE} to form {Cayenne Software} in July 1996.
(1998-02-06)

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].
[{Jargon File}]
(1995-04-25)

back end generator
Back End Generator
[tool] (BEG) A {code generator} developed by H. Emmelmann et al at GMD, University Karlsruhe, Germany. Its input language is Back End Generator Language (BEGL).
{(ftp://gatekeeper.dec.com/pub/gmd/cocktail/beg)}.
["BEG - A Generator for Efficient Back Ends", H. Emmelmann et al, SIGPLAN Notices 24(7):227-237 (Jul 1989)].
["BEG - A Back End Generator - User Manual", H. Emmelmann, GMD, U Karlsruhe, 1990].
[Summary?]
(2000-12-16)

back end generator language
Back End Generator Language
{Back End Generator}

back link
[hypertext] A {link} in one direction implied by the existence of an explicit link in the other direction.
(1996-05-28)

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)

backbone
[networking] The top level in a hierarchical {network}. {Stub networks} and {transit networks} which connect to the same backbone are guaranteed to be interconnected.
See also: {Internet backbone}.
(1998-07-02)

backbone cabal
[networking] A group of large-site administrators who pushed through the {Great Renaming} and reined in the chaos of {Usenet} during most of the 1980s. The cabal {mailing list} disbanded in late 1988 after a bitter internal cat-fight.
[{Jargon File}]
(1994-11-28)

backbone site
A key {Usenet}, {electronic mail} and/or {Internet} site; one that processes a large amount of third-party traffic, especially if it is the home site of any of the regional coordinators for the {Usenet} maps. Notable backbone sites as of early 1993 include {uunet} and the mail machines at {Rutgers University}, UC Berkeley, {DEC}'s Western Research Laboratories, {Ohio State University} and the {University of Texas}.
Compare {rib site}, {leaf site}.
[{Jargon File}]
(1994-11-28)

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

backgammon
See {bignum}, {moby}, {pseudoprime}.
[{Jargon File}]

background
1. [operating system] A task running in the background (a background task) is detached from the terminal where it was started (and often running at a lower priority); opposite of {foreground}. This means that the task's input and output must be from/to files (or other processes).
Nowadays this term is primarily associated with {Unix}, but it appears to have been first used in this sense on {OS/360}.
Compare {amp off}, {batch}, {slopsucker}.
2. [jargon] For a human to do a task "in the background" is to do it whenever {foreground} matters are not claiming your undivided attention, and "to background" something means to relegate it to a lower priority. "For now, we'll just print a list of nodes and links; I'm working on the graph-printing problem in the background." Note that this implies ongoing activity but at a reduced level or in spare time, in contrast to mainstream "back burner" (which connotes benign neglect until some future resumption of activity). Some people prefer to use the term for processing that they have queued up for their unconscious minds (often a fruitful tack to take upon encountering an obstacle in creative work).
(1996-05-28)

backing store
1. [storage] Computer memory, usually {magnetic disks}, storing data and programs. Sections of this information can then be copied into the main memory ({RAM}) for processing. Backing store is cheaper but RAM is faster. Such a hierarchy of memory devices allows a trade-off between performance and cost.
2. [text] Character storage in memory or on disk, as opposed to displayed or printed characters. This distinction is important where the visual ordering of characters differs from the order in which they are stored, e.g. bidirectional or non-spacing layout.
In a {Unicode} encoding, text is stored in sequential order in the backing store. Logical or backing store order corresponds to the order in which text is typed on the keyboard (after corrections such as insertions, deletions, and overtyping). A text rendering process converts Unicode text in the backing store to readable text.
["The Unicode Standard: Worldwide Character Encoding", Version 1.0, Vol. 1. Addison-Wesley, 1991].
(2001-02-25)

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
BackOffice
[software] A suite of network {server} software from {Microsoft} that includes {Windows NT} Server, BackOffice Server (for the integrated development, deployment, and management of BackOffice applications in departments, branch offices, and medium sized businesses); {Exchange Server}; {Proxy Server}; {Site Server} for {intranet} publishing, management, and search; Site Server Commerce Edition For comprehensive {Internet commerce} transactions; {Small Business Server} for business operations, resource management, and customer relations; {SNA Server} for the integration of existing and new systems and data; {SQL Server} for scalable, reliable database and data-warehousing; {Systems Management Server} (SMS) for centralised change- and {configuration-management}.
Latest version: 4.5, as of 2000-12-16.
{Home (http://www.microsoft.com/backofficeserver/)}.
(2000-12-16)

backplane
[hardware, electronics] A {printed circuit board} with slots into which other cards are plugged.
A backplane,is typically just a connector and does not usually have many active components on it. This contrasts with a {motherboard}.
{Designing a backplane (http://www.iec.org/online/tutorials/design_backplane/index.html)}.
(2002-09-08)

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

backside cache
[hardware, processor] An implementation of {secondary cache} memory that allows it to be directly accessed by the {CPU}.
Backside cache is used by {Apple Computers, Inc.} in their {PowerPC G3} processor. Previous PowerPC processors used the {system bus} to access both secondary cache and {main memory}. In the PowerPC G3 a dedicated bus handles only {CPU}/cache transactions. This bus can operate faster than the system bus thus improving the overall performance of the processor.
The term apparently derives from the relocation of the secondary cache from the {motherboard} to the processor card itself, i.e. on the backside of the processor card.
(1998-09-10)

backslash
[character] "\" {ASCII} code 92. Common names: escape (from C/Unix); reverse slash; slosh; backslant; backwhack. Rare: bash; {ITU-T}: reverse slant; reversed virgule; {INTERCAL}: backslat.
Backslash is used to separate components in {MS-DOS} {pathnames}, and to introduce special character sequence in {C} and {Unix} strings, e.g. "\n" for newline.
(2000-02-21)

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 {differential backup}, {incremental backup}, {full backup}. Compare {archive}.
(2003-06-22)

backup domain controller
Backup Domain Controller
[networking] (BDC) The backup domain controller replicates the {SAM} database, handling access requests that the {Primary Domain Controller} doesn't respond to. BDCs increase reliability and reduce load on the PDC.
(2003-07-16)

backup pumpkin
{pumpkin}

backus normal form
Backus Normal Form
{Backus-Naur Form}

backusnaur form
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)

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 backward compatible change, on the other hand, allows old versions to coexist without crashes or error messages, but too many major changes incorporating elaborate backward compatibility processing can lead to extreme {software bloat}.
See also {flag day}.
[{Jargon File}]
(2003-06-23)

backward compatibility
[jargon] Able to share data or commands with older versions of itself, or sometimes other older systems, particularly systems it intends to supplant. Sometimes backward compatibility is limited to being able to read old data but does not extend to being able to write data in a format that can be read by old versions.
For example, {WordPerfect} 6.0 can read WordPerfect 5.1 files, so it is backward compatible. It can be said that {Perl} is backward compatible with {awk}, because Perl was (among other things) intended to replace awk, and can, with a converter, run awk programs.
See also: {backward combatability}.
Compare: {forward compatible}.
(2003-06-23)

backward compatible
{backward compatibility}

backwards compatibility
{backward compatibility}

backwards compatible
{backward compatibility}

bad
BAD
/B-A-D/ Broken As Designed, a play on "{working as designed}", from {IBM}. Failing because of bad design and misfeatures rather than because of bugs.
[{Jargon File}]
(2002-04-14)

bad command or file name
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
Bad Thing
[jargon] (From the 1930 Sellar & Yeatman parody "1066 And All That") Something that can't possibly result in improvement of the subject. This term is always capitalised, as in "Replacing all of the 9600-baud modems with bicycle couriers would be a Bad Thing".
Opposite: {Good Thing}.
British correspondents confirm that {Bad Thing} and {Good Thing} (and probably therefore {Right Thing} and {Wrong Thing}) come from the book referenced in the etymology, which discusses rulers who were Good Kings but Bad Things. This has apparently created a mainstream idiom on the British side of the pond.
[{Jargon File}]

bag on the side
An extension to an established hack that is supposed to add some functionality to the original. Usually derogatory, implying that the original was being overextended and should have been thrown away, and the new product is ugly, inelegant, or bloated. Also "to hang a bag on the side [of]". "C++? That's just a bag on the side of C." "They want me to hang a bag on the side of the accounting system."

bal
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] An optimisation of a {tree} which aims to keep equal numbers of items on each {subtree} of each node so as to minimise the maximum path from the root to any {leaf node}. As items are inserted and deleted, the tree is restructured to keep the nodes balanced and the search paths uniform. Such an {algorithm} is appropriate where the overheads of the reorganisation on update are outweighed by the benefits of faster search.
A {B-tree} is a kind of {balanced tree} that can have more than two subtrees at each node (i.e. one that is not restricted to being a {binary tree}).
(2000-01-10)

balgol
BALGOL
[language] {ALGOL} on {Burroughs 220}.
[Sammet 1969, p. 174].
(1996-04-15)

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

balm
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}.
[{Jargon File}]

banach algebra
Banach algebra
[mathematics] An {algebra} in which the {vector space} is a {Banach space}.
(1997-02-25)

banach inverse mapping theorem
Banach inverse mapping theorem
[mathematics] In a {Banach space} the inverse to a {continuous} {linear mapping} is continuous.
(1998-06-25)

banach space
Banach space
[mathematics] A {complete} {normed} {vector space}. Metric is induced by the norm: d(x,y) = ||x-y||. Completeness means that every {Cauchy sequence} converges to an element of the space. All finite-dimensional {real} and {complex} normed vector spaces are complete and thus are Banach spaces.
Using absolute value for the norm, the real numbers are a Banach space whereas the rationals are not. This is because there are sequences of rationals that converges to irrationals.
Several theorems hold only in Banach spaces, e.g. the {Banach inverse mapping theorem}. All finite-dimensional real and complex vector spaces are Banach spaces. {Hilbert spaces}, spaces of {integrable functions}, and spaces of {absolutely convergent series} are examples of infinite-dimensional Banach spaces. Applications include {wavelets}, {signal processing}, and radar.
[Robert E. Megginson, "An Introduction to Banach Space Theory", Graduate Texts in Mathematics, 183, Springer Verlag, September 1998].
(2000-03-10)

banachtarski paradox
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.
[{Jargon File}]

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] The difference between the highest and lowest frequencies of a transmission channel (the width of its allocated band of frequencies).
The term is often used erroneously to mean {data rate} or capacity - the amount of {data} that is, or can be, sent through a given communications circuit per second.
[How is data capacity related to bandwidth?]
[{Jargon File}]
(2001-04-24)

bang
1. A common spoken name for "!" (ASCII 33), especially when used in pronouncing a {bang path} in spoken hackish. In {elder days} this was considered a {CMU}ish usage, with {MIT} and {Stanford} hackers preferring {excl} or {shriek}; but the spread of {Unix} has carried "bang" with it (especially via the term {bang path}) and it is now certainly the most common spoken name for "!". Note that it is used exclusively for non-emphatic written "!"; one would not say "Congratulations bang" (except possibly for humorous purposes), but if one wanted to specify the exact characters "foo!" one would speak "Eff oh oh bang".
See {pling}, {shriek}, {ASCII}.
2. An exclamation signifying roughly "I have achieved enlightenment!", or "The dynamite has cleared out my brain!" Often used to acknowledge that one has perpetrated a {thinko} immediately after one has been called on it.
[{Jargon File}]
(1995-01-31)

bang on
(Or "pound on"). To stress-test a piece of hardware or software: "I banged on the new version of the simulator all day yesterday and it didn't crash once. I guess it is ready for release."
[{Jargon File}]

bang path
1. [communications] An old-style {UUCP} {electronic-mail address} naming a sequence of hosts through which a message must pass to get from some assumed-reachable location to the addressee (a "{source route}"). So called because each {hop} is signified by a {bang} sign (exclamation mark). Thus, for example, the path
...!bigsite!foovax!barbox!me
directs people to route their mail to computer bigsite (presumably a well-known location accessible to everybody) and from there through the computer foovax to the account of user me on barbox.
Before {autorouting 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}.
[{Jargon File}]
(1994-11-28)

banyan
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
BAP
1. [language] An early system used on the {IBM 701}.
[Listed in CACM 2(5):16 (May 1959)].
(1994-11-28)
2. [language] {Brain Aid Prolog}.
(1995-03-07)

bapi
BAPI
{Business Application Programming Interface}

bar
1. [programming, convention] /bar/ The second {metasyntactic variable}, after {foo} and before {baz}. E.g. "Suppose function FOO calls functions BAR..."
2. Often appended to {foo} to produce {foobar}.
[{Jargon File}]
(1995-03-07)

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.
[{Jargon File}]

barf
/barf/ [mainstream slang for "vomit"] 1. Term of disgust. This is the closest hackish equivalent of the Val\-speak "gag me with a spoon". (Like, euwww!) See {bletch}.
2. To say "Barf!" or emit some similar expression of disgust. "I showed him my latest hack and he barfed" means only that he complained about it, not that he literally vomited.
3. To fail to work because of unacceptable input, perhaps with a suitable error message, perhaps not. Examples: "The division operation barfs if you try to divide by 0." (That is, the division operation checks for an attempt to divide by zero, and if one is encountered it causes the operation to fail in some unspecified, but generally obvious, manner.) "The text editor barfs if you try to read in a new file before writing out the old one".
See {choke}, {gag}.
In Commonwealth Hackish, "barf" is generally replaced by "puke" or "vom". {barf} is sometimes also used as a {metasyntactic variable}, like {foo} or {bar}.
(1996-02-26)

barfmail
[messaging] Multiple {bounce messages} accumulating to the level of serious annoyance, or worse. The sort of thing that happens when an inter-network {mail gateway} goes down or misbehaves.
[{Jargon File}]
(1996-01-05)

barfulation
/bar`fyoo-lay'sh*n/ Variation of {barf} used around the Stanford area. An exclamation, expressing disgust. On seeing some particularly bad code one might exclaim, "Barfulation! Who wrote this, Quux?"
[{Jargon File}]

barfulous
/bar'fyoo-l*s/ (Or "barfucious", /bar-fyoo-sh*s/) Said of something that would make anyone barf, if only for aesthetic reasons.
(1995-02-22)

barney
In Commonwealth hackish, "barney" is to {fred} as {bar} is to {foo}. That is, people who commonly use "fred" as their first {metasyntactic variable} will often use "barney" second. The reference is, of course, to Fred Flintstone and Barney Rubble in the Flintstones cartoons.
[{Jargon File}]
(1994-11-28)

baroque
Baroque
An early {logic programming} language written by Boyer and Moore in 1972.
["Computational Logic: Structure Sharing and Proof of program Properties", J. Moore, DCL Memo 67, U Edinburgh 1974].
[{Jargon File}]
(1995-02-22)

baroque
Feature-encrusted; complex; gaudy; verging on excessive. Said of hardware or (especially) software designs, this has many of the connotations of {elephantine} or monstrosity but is less extreme and not pejorative in itself. "{Metafont} even has features to introduce random variations to its letterform output. Now *that* is baroque!"
See also {rococo}.
[{Jargon File}]
(1995-02-22)

barrel shifter
[hardware] A hardware device that can shift or rotate a data word by any number of bits in a single operation. It is implemented like a {multiplexor}, each output can be connected to any input depending on the shift distance.
(1995-03-28)

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)

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)

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)

base technology
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)

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)

baseline
{released version}

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)

bash
Bourne Again SHell. {GNU}'s {command interpreter} for {Unix}. Bash is a {Posix}-compatible {shell} with full {Bourne shell} syntax, and some {C shell} commands built in. The Bourne Again Shell supports {Emacs}-style command-line editing, job control, functions, and on-line help. Written by Brian Fox of {UCSB}.
The latest version is 1.14.1. It includes a {yacc} parser, the interpreter and documentation.
{(ftp://ftp.gnu.org/bash-1.14.1.tar.gz)} or from a {GNU archive site}. E-mail: [bug-bash@gnu.org]. {Usenet} newsgroup: {news:gnu.bash.bug}.
(1994-07-15)

basic
BASIC
[language] Beginner's All-purpose Symbolic Instruction Code. A simple language oroginally designed for ease of programming by students and beginners.
BASIC exists in many dialects, and is popular on {microcomputers} with sound and graphics support. Most micro versions are {interactive} and {interpreted}.
BASIC has become the leading cause of brain-damage in proto-hackers. This is another case (like {Pascal}) of the cascading lossage that happens when a language deliberately designed as an educational toy gets taken too seriously. A novice can write short BASIC programs (on the order of 10-20 lines) very easily; writing anything longer is (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 editors} were considered essential. Just typing the line number deleted the line and to edit a line you just typed the new line with the same number. Programs were typically numbered in steps of ten to allow for insertions. Later versions, such as {BASIC V}, allow {GOTO}-less {structured programming} with named {procedures} and {functions}, IF-THEN-ELSE-ENDIF constructs and {WHILE} loops etc.
Early BASICs had no graphic operations except with graphic characters. In the 1970s BASIC {interpreters} became standard features in {mainframes} and {minicomputers}. Some versions included {matrix} operations as language {primitives}.
A {public domain} {interpreter} for a mixture of {DEC}'s {MU-Basic} and {Microsoft Basic} is {here (ftp://oak.oakland.edu/pub/Unix-c/languages/basic/basic.tar-z)}. A {yacc} {parser} and {interpreter} were in the comp.sources.unix archives volume 2.
See also {ANSI Minimal BASIC}, {bournebasic}, {bwBASIC}, {ubasic}, {Visual Basic}.
[{Jargon File}]
(1995-03-15)

basic assembly language
Basic Assembly Language
(BAL) What most people called {IBM 360} {assembly language}.
See {ALC}.
(1995-04-13)

basic autocoder
BASIC AUTOCODER
Early system on IBM 7070. Listed in CACM 2(5):16 (May 1959).

basic cobol
Basic COBOL
[language] A subset of {COBOL} from {COBOL-60} standards.
[Sammet 1969, p. 339].
(1997-12-07)

basic encoding rules
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
Basic Fortran
[language] A subset of {Fortran}.
[Sammet 1969, p. 150].
(1999-06-09)

basic inputoutput system
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
Basic JOVIAL
[language] A subset of {JOVIAL} written ca. 1965.
[Sammet 1969, p.529].
(1995-04-19)

basic language for implementation of system software
Basic Language for Implementation of System Software
[language] (BLISS, or allegedly, "System Software Implementation Language, Backwards") A language designed by W.A. Wulf at {CMU} around 1969.
BLISS is an {expression language}. It is {block-structured}, and typeless, with {exception handling} facilities, {coroutines}, a {macro} system, and a highly {optimising compiler}. It was one of the first non-{assembly languages} for {operating system} implementation. It gained fame for its lack of a {goto} and also lacks implicit {dereferencing}: all symbols stand for addresses, not values.
Another characteristic (and possible explanation for the backward acronym) was that BLISS fairly uniformly used backward {keywords} for closing blocks, a famous example being ELUDOM to close a MODULE. An exception was BEGIN...END though you could use (...) instead.
DEC introduced the NOVALUE keyword in their dialects to allow statements to not return a value.
Versions: CMU {BLISS-10} for the PDP-10; CMU {BLISS-11}, {BLISS-16}, DEC {BLISS-16C}, DEC {BLISS-32}, {BLISS-36} for {VAX}/{VMS}, {BLISS-36C}.
["BLISS: A Language for Systems Programming", CACM 14(12):780-790, Dec 1971].
[Did the B stand for "Better"?]
(1997-03-01)

basic multilingual plane
Basic Multilingual Plane
[text, standard] (BMP) The first plane defined in {Unicode}/{ISO 10646}, designed to include all {scripts} in active modern use. The BMP currently includes the Latin, Greek, Cyrillic, Devangari, hiragana, katakana, and Cherokee scripts, among others, and a large body of mathematical, {APL}-related, and other miscellaneous {characters}. Most of the {Han} {ideographs} in current use are present in the BMP, but due to the large number of ideographs, many were placed in the {Supplementary Ideographic Plane}.
{Unicode home (http://www.unicode.org)}.
(2002-03-19)

basic object system
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
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
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}.
[Dates?]
(1998-07-08)

basic rate interface
Basic Rate Interface
[communications] (BRI, 2B+D, 2B1D) An {Integrated Services Digital Network} channel consisting of two 64 {kbps} "bearer" (B) channels and one 16 kbps "delta" (D) channel, giving a total data rate of 144 kbps. The B channels are used for voice or user data, and the D channel is used for control and signalling and/or {X.25} {packet} networking. BRI is the kind of ISDN interface most likely to be found in residential service.
(2002-01-13)

basic v
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
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}.
[{Jargon File}]

baud
[communications, unit] /bawd/ (plural "baud") The unit in which the information carrying capacity or "{signalling rate}" of a communication channel is measured. One baud is one symbol (state-transition or level-transition) per second. This coincides with bits per second only for two-level {modulation} with no {framing} or {stop bits}.
A symbol is a unique state of the communication channel, distinguishable by the receiver from all other possible states. For example, it may be one of two voltage levels on a wire for a direct digital connection or it might be the phase or frequency of a carrier.
The term "baud" was originally a unit of telegraph signalling speed, set at one {Morse code} dot per second. Or, more generally, the reciprocal of the duration of the shortest signalling element. It was proposed at the International Telegraph Conference of 1927, and named after {J.M.E. Baudot} (1845-1903), the French engineer who constructed the first successful teleprinter.
The UK {PSTN} will support a maximum rate of 600 baud but each baud may carry between 1 and 16 bits depending on the coding (e.g. {QAM}).
Where data is transmitted as {packets}, e.g. characters, the actual "data rate" of a channel is
R D / P
where R is the "raw" rate in bits per second, D is the number of data bits in a packet and P is the total number of bits in a packet (including packet overhead).
The term "baud" causes much confusion and is usually best avoided. Use "bits per second" (bps), "bytes per second" or "characters per second" (cps) if that's what you mean.
(1998-02-14)

baud barf
[jargon] /bawd barf/ The garbage one gets on the {display screen} when using a {modem} connection with some {protocol} setting (especially line speed) incorrect, or when someone picks up a voice extension on the same line, or when really bad line noise disrupts the connection. Baud barf is not completely {random}, by the way; hackers with a lot of serial-line experience can usually tell whether the device at the other end is expecting a higher or lower speed than the {terminal} is set to. *Really* experienced ones can identify particular speeds.
[{Jargon File}]
(1996-02-22)

baud rate
{baud}

baudot
Baudot
{Baudot code}

baudot code
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)

baudotbetical order
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)

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)."
[{Jargon File}]

bb
[networking] The {country code} for Barbados.
(1999-01-27)

bbc
BBC
{British Broadcasting Corporation}

bbc microcomputer
BBC Microcomputer
A series of {6502}-based personal computers launched by {Acorn Computers} Ltd. in January 1982, for use in the British Broadcasting Corporation's educational programmes on computing. The computers are noted for their reliability (many are still in active service in 1994) and both hardware and software were designed for easy expansion. The 6502-based computers were succeeded in 1987 by the Acorn {Archimedes} family.
{xbeeb} is a BBC Micro {emulator} for {Unix} and {X11}.

bbc networking club
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
BBL
[chat] (I will) be back later.

bbn
BBN
{Bolt, Beranek and Newman}

bboard
{bulletin board system}

bbs
BBS
{bulletin board system}

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

bc neliac
BC NELIAC
Version of NELIAC, post 1962. Sammet 1969, p.197.

bcbf
BCBF
{Branch on Chip Box Full}

bcc
BCC
1. {Blind Carbon Copy}.
2. {Block Check Character}.
3. {Blocked Call Cleared}.
(1997-02-05)

bcd
BCD
{binary coded decimal}

bcl
BCL
The successor to {Atlas Commercial Language}.
["The Provisional BCL Manual", D. Hendry, U London 1966].

bcnu
BCNU
Be seein' you.

bcpl
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
BCS
1. {British Computer Society}.
2. {Binary Compatibility Standard}.

bd
[networking] The {country code} for Bangladesh.
(1999-01-27)

bdc
BDC
{Backup Domain Controller}

bdl
BDL
{Block Diagram Compiler}

bdpa
BDPA
{Black Data Processing Associates}

be
[networking] The {country code} for Belgium.
(1999-01-27)

be inc
Be Inc
[company] The company that produced the {BeBox}, founded by Jean-Louis Gassee, former product chief at {Apple}.
(1996-10-05)

bea
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}.
[{Jargon File}]

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.

beamer
1. [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?]
2. A personal video station (PVS) that adds video to standard telephone lines at no additional cost.
(1999-10-24)

bean
{JavaBeans}

beanie key
{feature key}

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)

bearer channel
[communications] Originally, a channel suited for carrying one voice-grade connection. Typically a {DS0} channel.
Compare {data channel}.
(1997-03-7)

beats the shit outa me
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
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
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
BEDO
{Burst Extended Data Out DRAM}

bedrock
Bedrock
A {C++} {class} library for {Macintosh} user interface portability.

beep
{bell}

beeper
{pager}

beg
BEG
{Back End Generator}

begin
@Begin
[text] The {Scribe} equivalent of {\begin}.
[{Jargon File}]

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
BEGL
{Back End Generator}

beige toaster
{Macintosh}

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

bell curve
[statistics] {normal distribution}.

bell laboratories
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 Labs
{Bell Laboratories}

bellcore
Bellcore
{Bell Communications Research, Inc.}

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.
[{Jargon File}]

bells whistles and gongs
bells, whistles, and gongs
A standard elaborated form of {bells and whistles}; typically said with a pronounced and ironic accent on the "gongs".

benchmark
[benchmark] A standard program or set of programs which can be run on different computers to give an inaccurate measure of their performance.
"In the computer industry, there are three kinds of lies: lies, damn lies, and benchmarks."
A benchmark may attempt to indicate the overall power of a system by including a "typical" mixture of programs or it may attempt to measure more specific aspects of performance, like graphics, I/O or computation (integer or {floating-point}). Others measure specific tasks like {rendering} polygons, reading and writing files or performing operations on matrices. The most useful kind of benchmark is one which is tailored to a user's own typical tasks. While no one benchmark can fully characterise overall system performance, the results of a variety of realistic benchmarks can give valuable insight into expected real performance.
Benchmarks should be carefully interpreted, you should know exactly which benchmark was run (name, version); exactly what configuration was it run on (CPU, memory, compiler options, single user/multi-user, peripherals, network); how does the benchmark relate to your workload?
Well-known benchmarks include {Whetstone}, {Dhrystone}, {Rhealstone} (see {h}), the {Gabriel benchmarks} for {Lisp}, the {SPECmark} suite, and {LINPACK}.
See also {machoflops}, {MIPS}, {smoke and mirrors}.
{Usenet} newsgroup: {news:comp.benchmarks}.
{Tennessee BenchWeb (http://netlib.org/benchweb/)}.
[{Jargon File}]
(2002-03-26)

bend over here it comes again
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 B. Mandelbrot
{Benoit Mandelbrot}

benoit mandelbrot
Benoit Mandelbrot
[person] /ben'wa man'dl-bro/ Benoit B. Mandelbrot. The {IBM} scientist who wrote several original books on {fractals} and gave his name to the set he was discovered, the {Mandelbrot set} and coined the term "fractal" in 1975 from the Latin fractus or "to break".
(1997-07-02)

bentley systems inc
Bentley Systems, Inc.
[company] The company that sells {MicroStation}.
Address: Exton, PA, USA.
{Home (http://www.bentley.com/)}.
(2001-05-18)

beos
BeOS
[operating system] The {operating system} originally designed to run on the {BeBox} {microcomputer}. BeOS is good at both {multitasking} and {real-time} operation. It has a {bash} command shell, with ports of many {GNU} programs by Be, Inc. It has a {GUI} front end (not {X}). A {C++} {compiler} is supplied with the machine, and there are rumours of other languages being ported in the future.
BeOs eventually became used on the {x86} and standard {PPC}.
Be, Inc. went bankrupt in 1999, after releasing the last upgrade of BeOS (R5.0.3), and was sold to {Palm}.
Several groups are currently (2003) attempting to create an R6 version of the OS. The most likely to succeed are {Yellowtab} and {OpenBeOS}, which is likely to be renamed.
(2003-05-30)

ber
BER
1. [protocol, standard] {Basic Encoding Rules}.
2. [communications] {Bit Error Rate}.
(2001-05-14)

berkeley
Berkeley
{University of California at Berkeley}

berkeley 42
Berkeley 4.2
{Berkeley Software Distribution}

berkeley edif200
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
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
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
Berkeley Logo
[language] A {Logo} {interpreter} by Brian Harvey [bh@cs.berkeley.edu]. Berkeley Logo programs will run on {Unix}, {IBM PC}, or {Macintosh}. It doesn't do anything fancy about graphics and only allows one {turtle}.
Version: 4.6, as of 2000-03-21.
{MswLogo} is a {Microsoft Windows} {front end}.
{(ftp://anarres.cs.berkeley.edu/pub/ucblogo)}.
(2000-03-28)

berkeley network
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
Berkeley Quality Software
[abuse] (Often abbreviated "BQS") Term used in a pejorative sense to refer to software that was apparently created by rather spaced-out hackers late at night to solve some unique problem. It usually has nonexistent, incomplete, or incorrect documentation, has been tested on at least two examples, and core dumps when anyone else attempts to use it. This term was frequently applied to early versions of the "dbx(1)" debugger.
See also {Berzerkeley}.
[{Jargon File}]
(1996-01-15)

berkeley software design inc
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 software distribution
Berkeley Software 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 softworks
Berkeley Softworks
[company] The company that wrote {Graffiti} and a similar scheme for the {Commodore 64} (made it very {Macintosh}-like) and the {Commodore 128} (which could {multitask}).
(1995-01-24)

berkeley unix
Berkeley Unix
{Berkeley Software Distribution}

berkeley yacc
Berkeley Yacc
[tool] (byacc, previously Zeus, then Zoo) Probably the best variant of the {Yacc} {parser generator}. Written by Robert Corbett [Robert.Corbett@eng.sun.com].
Latest version: 1.9, as of 2000-06-09.
{(ftp://ftp.cs.berkeley.edu/pub/4bsd/byacc.1.9.tar.Z)}.
(2000-07-16)

berklix
/berk'liks/ (From {Berkeley Unix}) {Berkeley Software Distribution}. Not used at {Berkeley} itself. May be more common among {suit}s attempting to sound like cognoscenti than among hackers, who usually just say "BSD".
[{Jargon File}]
(1995-02-23)

bernerslee tim
Berners-Lee, Tim
{Tim Berners-Lee}

bernoulli box
Bernoulli Box
[storage] A high capacity storage device, {Iomega Corporation}'s first popular product, that spins a mylar disk over a read-write head using the {Bernoulli principle}.
(1997-04-15)

bernoulli principle
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
Bernstein condition
[parallel] Processes cannot execute in parallel if one effects values used by the other. Nor can they execute in parallel if any subsequent process uses data effected by both, i.e. whose value might depend on the order of execution.
(1995-02-23)

berr
BERR
{bus error}

bertrand
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
Bertrand Meyer
The author of the {Eiffel} Language and many articles on {object-oriented} software techniques.
(1995-03-01)

bertrand russell
Bertrand Russell
[person] (1872-1970) A British mathematician, the discoverer of {Russell's paradox}.
(1995-03-27)

berzerkeley
Berzerkeley
[humour] /b*r-zer'klee/ (From "berserk", via the name of a now-deceased record label) A humorous distortion of "Berkeley" used especially to refer to the practices or products of the {BSD Unix} hackers.
See {software bloat}, {Missed'em-five}, {Berkeley Quality Software}.
Mainstream use of this term in reference to the cultural and political peculiarities of UC Berkeley as a whole has been reported from as far back as the 1960s.
[{Jargon File}]
(1996-06-01)

berzerkley
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
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
/bay't*/, /be't*/ or (Commonwealth) /bee't*/
See {beta conversion}, {beta test}.
[{Jargon File}]

beta
BETA
Kristensen, Madsen [olmadsen@daimi.aau.dk], Moller-Pedersen & Nygaard, 1983. Object-oriented language with block structure, coroutines, concurrency, {strong typing}, part objects, separate objects and classless objects. Central feature is a single abstraction mechanism called "patterns", a generalisation of classes, providing instantiation and hierarchical inheritance for all objects including procedures and processes.
Mjolner Informatics ApS, Aarhus, implementations for Mac, Sun, HP, Apollo.
E-mail: [info@mjolner.dk].
Mailing list: [usergroup@mjolner.dk].
["Object-Oriented Programming in the BETA Programming Language", Ole Lehrmann et al, A-W June 1993, ISBN 0-201-62430-3].
[{Jargon File}]
(1995-10-31)

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

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}

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

bezier
Bezier
[graphics] (After Frenchman Pierre Bezier 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
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
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
BFI
{brute force and ignorance}

bg
[networking] The {country code} for Bulgaria.
(1999-01-27)

bga
BGA
{Ball Grid Array}

bgh
[chat] Be Good Humans.
(2001-03-28)

bgp
BGP
{Border Gateway Protocol}

bh
[networking] The {country code} for Bahrain.
(1999-01-27)

bhc code
BHC Code
{Bose-Chaudhuri-Hocquenghem Code}

bi
[networking] The {country code} for Burundi.
(1999-01-27)

bib
{BibTeX}

bible
[publication] The most detailed and authoritative reference for a particular language, {operating system} or other complex software system. It is also used to denote one of a small number of such books such as {Knuth} and {K&R}.
[{Jargon File}]
(1996-12-03)

bibop
BIBOP
{Big bag of pages}

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

biendian
bi-endian
Silicon schizophrenia. Processors and other chips that have can be switched to work in {big-endian} or {little-endian} mode.
The {PowerPC} chip has this ability, which allows it to run the little-endian {Windows NT}, or the big-endian {Mac OS/PPC}.
(1995-02-23)

biff
/bif/ To notify someone of incoming mail. From the {BSD} utility "biff(1)", which was in turn named after a friendly golden Labrador who used to chase frisbees in the halls at UCB while {4.2BSD} was in development (it had a well-known habit of barking whenever the mailman came). No relation to {BIFF}.
[{Jargon File}]

biff
BIFF
/bif/ (Or "B1FF", from {Usenet}) The most famous {pseudo}, and the prototypical {newbie}. Articles from BIFF are characterised by all uppercase letters sprinkled liberally with bangs, typos, "cute" misspellings (EVRY BUDY LUVS GOOD OLD BIFF CUZ HE'S A K00L DOOD AN HE RITES REEL AWESUM THINGZ IN CAPITULL LETTRS LIKE THIS!!!), use (and often misuse) of fragments of {chat} abbreviations, a long {sig block} (sometimes even a {doubled sig}), and unbounded naivete. BIFF posts articles using his elder brother's VIC-20. BIFF's location is a mystery, as his articles appear to come from a variety of sites. However, {BITNET} seems to be the most frequent origin. The theory that BIFF is a denizen of BITNET is supported by BIFF's (unfortunately invalid) {electronic mail address}: [BIFF@BIT.NET].
[1993: Now It Can Be Told! My spies inform me that BIFF was originally created by Joe Talmadge [jat@cup.hp.com], also the author of the infamous and much-plagiarised "Flamer's Bible". The BIFF filter he wrote was later passed to Richard Sexton, who posted BIFFisms much more widely. Versions have since been posted for the amusement of the net at large. - ESR]
[{Jargon File}]
(1997-09-22)

big
\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
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 gray wall
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".
[{Jargon File}]
(1995-03-07)

big iron
[jargon] (Or "heavy metal [Cambridge]) Large, expensive, ultra-fast computers. Used generally of {number crunching} {supercomputers} such as {Cray}s, but can include more conventional big commercial {IBM}ish {mainframes}. The term implies approval, in contrast to "{dinosaur}".
[{Jargon File}]
(2000-11-09)

big red switch
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
Big Room
[jargon, humour] The extremely large room with the blue ceiling and intensely bright light (during the day) or black ceiling with lots of tiny night-lights (during the night) found outside all computer installations. "He can't come to the phone right now, he's somewhere out in the Big Room."
(1996-03-04)

big win
[jargon] An {MIT} term for a {Good Thing} or a lucky accident.
[{Jargon File}]
(1996-03-06)

bigendian
big-endian
1. [data, architecture] A computer {architecture} in which, within a given multi-{byte} numeric representation, the most significant byte has the lowest address (the word is stored "big-end-first").
Most processors, including the {IBM 370} family, the {PDP-10}, the {Motorola} {microprocessor} families, and most of the various {RISC} designs current in mid-1993, are big-endian.
See {-endian}.
2. [networking, standard] A backward {electronic mail address}. The world now follows the {Internet} {hostname} {standard} (see {FQDN}) and writes e-mail addresses starting with the name of the computer and ending up with the {country code} (e.g. fred@doc.acme.ac.uk). In the United Kingdom the {Joint Networking Team} decided to do it the other way round (e.g. me@uk.ac.wigan.cs) before the {Internet} {domain} standard was established. Most {gateway sites} required {ad-hockery} in their {mailers} to handle this.
By July 1994 this parochial idiosyncracy was on the way out and mailers started to reject big-endian addresses. By about 1996, people would look at you strangely if you suggested such a bizarre thing might ever have existed.
[{Jargon File}]
(1998-08-09)

biglan
BIG-LAN
["BIG-LAN Frequently Asked Questions Memo", BIG-LAN DIGEST V4:I8, February 14, 1992.]

bigloo
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.
[{Jargon File}]
(1996-06-27)

bigot
A person who is religiously attached to a particular computer, language, operating system, editor, or other tool (see {religious issues}). Usually found with a specifier; thus, "Cray bigot", "ITS bigot", "APL bigot", "VMS bigot", "Berkeley bigot". Real bigots can be distinguished from mere partisans or zealots by the fact that they refuse to learn alternatives even when the march of time and/or technology is threatening to obsolete the favoured tool. It is truly said "You can tell a bigot, but you can't tell him much." Compare {weenie}.
[{Jargon File}]

bijection
[mathematics] A {function} is bijective or a bijection or a one-to-one correspondence if it is both {injective} (no two values map to the same value) and {surjective} (for every element of the {codomain} there is some element of the {domain} which maps to it). I.e. there is exactly one element of the domain which maps to each element of the codomain.
For a general bijection f from the set A to the set B:
f'(f(a)) = a where a is in A and f(f'(b)) = b where b is in B.
A and B could be disjoint sets.
See also {injection}, {surjection}, {isomorphism}, {permutation}.
(2001-05-10)

bill gates
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
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
[data] (BCD, packed decimal) A number representation where a number is expressed as a sequence of decimal digits and then each decimal digit is encoded as a four-bit binary number (a {nibble}). E.g. decimal 92 would be encoded as the eight-bit sequence 1001 0010.
In some cases, the right-most nibble contains the sign (positive or negative).
It is easier to convert decimal numbers to and from BCD than binary and, though BCD is often converted to binary for arithmetic processing, it is possible to build {hardware} that operates directly on BCD.
[Do calculators use BCD?]
(2001-01-27)

binary compatibility standard
Binary Compatibility Standard
[programming, standard] (BCS) The {ABI} of {88open}.
(1997-07-03)

binary counter
[electronics, hardware] A digital circuit which has a clock input and a number of count outputs which give the number of clock cycles. The output may change either on rising or falling clock edges. The circuit may also have a reset input which sets all outputs to zero when asserted. The counter may be either a {synchronous counter} or a {ripple counter}.
(1997-07-03)

binary data
{binary file}

binary exponential backoff
An {algorithm} for dealing with contention in the use of a network. To transmit a {packet} the {host} sets a local parameter, L to 1 and transmits in one of the next L {slot}s. If a {collision} occurs, it doubles L and repeats.

binary file
[storage, operating system] A file containing {binary} data, i.e. 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 before {MIME} became widespread in about 1995. The {FTP} utility must be put into "binary" mode in order to copy a binary file since in its default "ascii" mode translates between the different 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.
(2002-01-19)

binary large object
[database] (BLOB) A large block of data stored in a {database}, such as an {image} or {sound} file. A BLOB has no structure which can be interpreted by the {database management system} but is known only by its size and location.
(1997-11-04)

binary package
[software] An {archive} file that contains all files and directories that must be installed in order to make a working installation of the program(s) included in the package, and the {maintainer scripts} necessary for the installation. A binary package is usually specific to a certain {platform}, in contrast to a {source package}.
(2001-01-27)

binary search
[algorithm] A search {algorithm} which repeatedly divides an ordered {search space} in half according to how the required (key) value compares with the middle element.
The following pseudo-{C} routine performs a binary search return the index of the element of vector "thing[first..last]" equal to "target":
if (target [ thing[first] || target ] thing[last]) return NOT_FOUND; while (first [ last) { mid = (first+last)/2; /* truncate to integer */ if (target == thing[mid]) return mid; if (target [ thing[mid]) last = mid-1; else first = mid+1; } if (target == thing[last]) return last; return NOT_FOUND;
(2003-01-14)

binary synchronous transmission
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
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)

bindingtime analysis
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
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 40
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
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}, {Sun-3}; {IBM RS6000}; {HP PA-RISC} (two variants); {Intel 80386}, {Intel 486}/{Linux}, {MS-DOS}, {Microsoft Windows 3.1} (with DOS-extender {go32} v1.10).
{Multi-BinProlog} is a {multi-threaded} {Linda}-style parallel extension to BinProlog for {Solaris} 2.3.
{(ftp://clement.info.umoncton.ca/BinProlog/)}.
E-mail: Paul Tarau [tarau@info.umoncton.ca].
(1995-04-04)

bior
BIOR
An early system on {UNIVAC} I or II.
[Listed in CACM 2(5):16 (May 1959)].
(1995-04-01)

bios
BIOS
{Basic Input/Output System}

bip
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
BIPS
Billion (10^9) instructions per second. Same as {GIPS}.

birdmeertens formalism
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
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
BISDN
Broadband {Integrated Services Digital Network}.

bison
Bison
[tool] {GNU}'s replacement for the {yacc} {parser generator}. Bison runs under {Unix} and on {Atari} computers. It was written by Robert Corbett.
Latest version: 1.28, as of 2000-05-22.
As of version 1.24, Bison will no longer apply the {GNU} {General Public License} to your code. You can use the output files without restriction.
{FTP GNU.org (ftp://ftp.gnu.org/gnu/bison/)} or your nearest {GNU archive site}.
E-mail: [bug-bison@gnu.org].
{Bison++} is a version which produces {C++} output.
(2000-07-05)

bison
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
BIST
{Built-in Self Test}

bisync
{Binary Synchronous Transmission}

bit
[unit] (b) {binary} digit.
The unit of information; the amount of information obtained by asking a yes-or-no question; a computational quantity that can take on one of two values, such as false and true or 0 and 1; the smallest unit of storage - sufficient to hold one bit.
A bit is said to be "set" if its value is true or 1, and "reset" or "clear" if its value is false or 0. One speaks of setting and clearing bits. To {toggle} or "invert" a bit is to change it, either from 0 to 1 or from 1 to 0.
The term "bit" first appeared in print in the computer-science sense in 1949, and seems to have been coined by the eminent statistician, {John Tukey}. Tukey records that it evolved over a lunch table as a handier alternative to "bigit" or "binit".
See also {flag}, {trit}, {mode bit}, {byte}, {word}.
[{Jargon File}]
(2002-01-22)

bit bang
Transmission of data on a {serial line} accomplished by rapidly changing a single output bit, in software, at the appropriate times. The technique is a simple loop with eight OUT and SHIFT instruction pairs for each byte. Input is more interesting. And {full-duplex} (doing input and output at the same time) is one way to separate the real hackers from the {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}.
[{Jargon File}]

bit bashing
(Also "bit diddling" or {bit twiddling}). Any of several kinds of low-level programming characterised by manipulation of {bit}, {flag}, {nibble}, and other smaller-than-character-sized pieces of data. These include low-level device control, encryption algorithms, checksum and error-correcting codes, hash functions, some flavours of graphics programming (see {bitblt}), and assembler/compiler code generation. May connote either tedium or a real technical challenge (more usually the former). "The command decoding for the new tape driver looks pretty solid but the bit-bashing for the control registers still has bugs." See also {bit bang}, {mode bit}.

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}

bit error rate
Bit Error Rate
[data, digital, communications] (BER) The fraction of a message or block of data that is wrong.
(2003-03-25)

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)

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 rate
[communications, digital signal processing] (Or "bitrate") A {data rate} expressed in bits per second. This is a similar to {baud} but the latter is more applicable to channels with more than two states.
The common units of bit rate are {kilobits per second} (Kbps) and {megabits per second} (Mbps). In data rates, the multipliers "k", "M", etc. stand for powers of 1000 not powers of 1024.
The term is also commonly used when discussing digital {sampling} and {sample rates}. For example, the {MP3} audio {compaction} algorithm is often set to ouput files with a bitrate of 120 kbps. This means that the file contains an average of 120 kilobits for each second of audio (900 KB per minute). This compares with {CD audio} which is encoded at 44100 16-bit stereo samples per second or 1408 kbps.
(2003-05-19)

bit rot
[jargon] A hypothetical disease the existence of which has been deduced from the observation that unused programs or features will often stop working after sufficient time has passed, even if "nothing has changed". The theory explains that bits decay as if they were radioactive. As time passes, the contents of a file or the code in a program will become increasingly garbled.
People with a physics background tend to prefer the variant "bit decay" for the analogy with particle decay.
There actually are physical processes that produce such effects (alpha particles generated by trace radionuclides in ceramic chip packages, for example, can change the contents of a computer memory unpredictably, and various kinds of subtle media failures can corrupt files in mass storage), but they are quite rare (and computers are built with {error detection} circuitry to compensate for them). The notion long favoured among hackers that {cosmic rays} are among the causes of such events turns out to be a myth.
Bit rot is the notional cause of {software rot}.
See also {computron}, {quantum bogodynamics}.
[{Jargon File}]
(1998-03-15)

bit slice
[architecture] A technique for constructing a {processor} from modules, each of which processes one {bit-field} or "slice" of an {operand}. Bit slice processors usually consist of an {ALU} of 1, 2, 4 or 8 bits and control lines (including {carry} or {overflow} signals usually internal to the {CPU}). For example, two 4-bit ALUs could be arranged side by side, with control lines between them, to form an 8-bit ALU. A {sequencer} executes a program to provide data and control signals.
The {AMD Am2901} is an example.
(1994-11-15)

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.
[{Jargon File}]

bitblt
/bit'blit/ [{BLT}] 1. Any of a family of closely related algorithms for moving and copying rectangles of bits between main and display memory on a {bit-mapped} device, or between two areas of either main or display memory (the requirement to do the {Right Thing} in the case of overlapping source and destination rectangles is what makes BitBlt tricky).
2. {blit}, {BLT}.
[{Jargon File}]

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 {graphics accelerators}.
The bitmap display might be traced back to the earliest days of computing when the Manchester University Mark I(?) computer, developed by F.C. Williams and T. Kilburn shortly after the Second World War. This used a {storage tube} as its {working memory}. Phosphor dots were used to store single bits of data which could be read by the user and interpreted as binary numbers.
[Is this history correct? Was it ever used to display "graphics"? What was the resolution?]
(2002-05-15)

bitmap font
[text] A {font} where each character is stored as an {array} of {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}

bitnet
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} {dinosaurs}, {VAXen} (with lobotomised communications hardware), and {Prime Computer} supermini computers. They communicate using 80-character {EBCDIC} card images (see {eighty-column mind}); thus, they tend to mangle the {headers} and text of third-party traffic from the rest of the {ASCII}/{RFC 822} world with annoying regularity. BITNET is also notorious as the apparent home of {BIFF}.
[{Jargon File}]
(2002-09-02)

bitonal image
[graphics] An {image} consisting only of a foreground colour and a background colour.
Compare {monochrome}.
(1998-03-14)

bitpaired keyboard
bit-paired keyboard
[hardware] (Obsolete, or "bit-shift keyboard") A non-standard keyboard layout that seems to have originated with the {Teletype} {ASR-33} and remained common for several years on early computer equipment. The ASR-33 was a mechanical device (see {EOU}), so the only way to generate the character codes from keystrokes was by some physical linkage. The design of the ASR-33 assigned each character key a basic pattern that could be modified by flipping bits if the SHIFT or the CTRL key was pressed. In order to avoid making the thing more of a Rube Goldberg {kluge} than it already was, the design had to group characters that shared the same basic bit pattern on one key.
Looking at the {ASCII} chart, we find:
high low bits bits 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 010 ! " # $ % & ' ( ) 011 0 1 2 3 4 5 6 7 8 9
This is why the characters !"#$%&'() appear where they do on a Teletype (thankfully, they didn't use shift-0 for space). This was *not* the weirdest variant of the {QWERTY} layout widely seen, by the way; that prize should probably go to one of several (differing) arrangements on {IBM}'s even clunkier 026 and 029 card punches.
When electronic {terminals} became popular, in the early 1970s, there was no agreement in the industry over how the keyboards should be laid out. Some vendors opted to emulate the Teletype keyboard, while others used the flexibility of electronic circuitry to make their product look like an office typewriter. These alternatives became known as "bit-paired" and "typewriter-paired" keyboards. To a hacker, the bit-paired keyboard seemed far more logical - and because most hackers in those days had never learned to touch-type, there was little pressure from the pioneering users to adapt keyboards to the typewriter standard.
The doom of the bit-paired keyboard was the large-scale introduction of the computer terminal into the normal office environment, where out-and-out technophobes were expected to use the equipment. The "typewriter-paired" standard became universal, "bit-paired" hardware was quickly junked or relegated to dusty corners, and both terms passed into disuse.
[{Jargon File}]
(1995-02-20)

bitrobbing
bit-robbing
{in-band signalling}

bits per inch
[unit] (BPI) A measure of the recording density of a {magnetic tape} or {disk}.
(1995-04-13)

bits per pixel
[hardware, graphics] (bpp) The number of {bits} of information stored per {pixel} of an {image} or displayed by a {graphics adapter}. The more bits there are, the more colours can be represented, but the more memory is required to store or display the image.
A colour can be described by the intensities of red, green and blue ({RGB}) components. Allowing 8 {bits} (1 {byte}) per component (24 bits per pixel) gives 256 levels for each component and over 16 million different colours - more than the human eye can distinguish. {Microsoft Windows} [and others?] calls this {truecolour}. An image of 1024x768 with 24 bpp requires over 2 MB of memory.
"High colour" uses 16 bpp (or 15 bpp), 5 bits for blue, 5 bits for red and 6 bits for green. This reduced colour precision gives a slight loss of image quality at a 1/3 saving on memory.
Standard {VGA} uses a {palette} of 16 colours (4 bpp), each colour in the palette is 24 bit. Standard {SVGA} uses a {palette} of 256 colours (8 bpp).
Some graphics hardware and software support 32-bit colour depths, including an 8-bit "{alpha channel}" for transparency effects.
(1999-08-01)

bits per second
[communications, unit] (bps, b/s) The unit in which {data rate} is measured.
For example, a {modem}'s data rate is usually measured in {kilobits} per second. In 1996, the maximum modem speed for use on the {PSTN} was 33.6 kbps, rising to 56 kbps in 1997.
Note that kilo- (k), mega- (M), etc. in data rates denote powers of 1000, not 1024.
(2002-03-23)

bitty box
[abuse] (Or "calculator") /bit'ee boks/ A computer sufficiently small, primitive, or incapable as to cause a hacker acute claustrophobia at the thought of developing software on or for it. The term is especially used of small, obsolescent, {single-tasking}-only {personal computers} such as the {Atari 800}, {Osborne}, {Sinclair}, {VIC-20}, {TRS-80} or {IBM PC}, but the term is a general pejorative opposite of "real computer" (see {Get a real computer!}).
See also {mess-dos}, {toaster}, {toy}.
(1994-11-29)

bitwise
[programming] A bitwise operator treats its operands as a {vector} of {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.
[{Jargon File}]
(1994-11-29)

bizcore stability
biz-core stability
[security] {Internet} security products which secure the {business core}.
[Examples?]
(2003-03-09)

bj
[networking] The {country code} for Benin.
(1999-01-27)

bjarne stroustrup
Bjarne Stroustrup
[person] The father of {C++} and author of the C++ {bible}.
["The C++ Programming Language", Bjarne Stroustrup, Addison-Wesley, 1986].
[Details?]
(2000-05-12)

bjc4000
BJC4000
A colour {bubble jet} printer from {Canon}. Released in September 1994. It features 720 x 360 dots per inch in black and white mode and 360 x 360 in colour. It has two cartridges: one for black and one for the three primary colours so it prints true black when printing in colour.
(1994-11-29)

black art
A collection of arcane, unpublished, and (by implication) mostly ad-hoc techniques developed for a particular application or systems area (compare {black magic}). VLSI design and compiler code optimisation were (in their beginnings) considered classic examples of black art; as theory developed they became {deep magic}, and once standard textbooks had been written, became merely {heavy wizardry}. The huge proliferation of formal and informal channels for spreading around new computer-related technologies during the last twenty years has made both the term "black art" and what it describes less common than formerly. See also {voodoo programming}.
[{Jargon File}]

black box
[jargon] An {abstraction} of a device or system in which only its externally visible behaviour is considered and not its implementation or "inner workings".
See also {functional testing}.
(1997-07-03)

black data processing associates
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}.
[{Jargon File}]

black magic
[jargon] (Or "{FM}") A technique that works, though nobody really understands why. More obscure than {voodoo programming}, which may be done by {cookbook}.
Compare {black art}, {deep magic}, and {magic number}.
(2001-04-30)

blackbox testing
black-box testing
{functional testing}

blackice
BlackIce
[software, security] A commercial {firewall} and {intrusion detection} system.
{BlackIce Home (http://blackice.iss.net/)}.
(2003-09-13)

blargh
/blarg/ [MIT] The opposite of {ping}. An exclamation indicating that one has absorbed or is emitting a quantum of unhappiness. Less common than {ping}.
[{Jargon File}]

blast
1. {BLT}, used especially for large data sends over a network or comm line. Opposite of {snarf}. Usage: uncommon. The variant "blat" has been reported.
2. [HP/Apollo] Synonymous with {nuke}. Sometimes the message "Unable to kill all processes. Blast them (y/n)?" would appear in the command window upon logout.

blat
1. {blast}.
2. See {thud}.
[{Jargon File}]

blaze
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
BLAZE 2
An {object-oriented} successor to {BLAZE}.
["Concurrent Object Access in BLAZE 2", P. Mehrotra et al, SIGPLAN Notices 24(4):40-42 (Apr 1989)].

bleam
[jargon] To transmit or send data.
"Bleam that binary to me in an e-mail".
[Origin? Used where?]
(1997-05-14)

bleeper
{pager}

bletcherous
/blech'*-r*s/ Disgusting in design or function; aesthetically unappealing. This word is seldom used of people. "This keyboard is bletcherous!" (Perhaps the keys don't work very well, or are misplaced.) The term {bletcherous} applies to the esthetics of the thing so described; similarly for cretinous. By contrast, something that is "losing" or "bagbiting" may be failing to meet objective criteria.
[{Jargon File}]

bletchley park
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
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)

bline
B-LINE
An early {CAD} language.
["B-LINE, Bell Line Drawing Language", A.J. Frank, Proc Fall JCC 33 1968].
(1994-11-17)

blinkenlights
/blink'*n-li:tz/ Front-panel diagnostic lights on a computer, especially a {dinosaur}. Derives from the last word of the famous blackletter-Gothic sign in mangled pseudo-German that once graced about half the computer rooms in the English-speaking world. One version ran in its entirety as follows:
ACHTUNG! ALLES LOOKENSPEEPERS!
Das computermachine ist nicht fuer gefingerpoken und mittengrabben. Ist easy schnappen der springenwerk, blowenfusen und poppencorken mit spitzensparken. Ist nicht fuer gewerken bei das dumpkopfen. Das rubbernecken sichtseeren keepen das cotten-pickenen hans in das pockets muss; relaxen und watchen das blinkenlichten.
This silliness dates back at least as far as 1959 at Stanford University and had already gone international by the early 1960s, when it was reported at London University's ATLAS computing site. There are several variants of it in circulation, some of which actually do end with the word "blinkenlights".
In an amusing example of turnabout-is-fair-play, German hackers have developed their own versions of the blinkenlights poster in fractured English, one of which is reproduced here:
ATTENTION
This room is fullfilled mit special electronische equippment. Fingergrabbing and pressing the cnoeppkes from the computers is allowed for die experts only! So all the "lefthanders" stay away and do not disturben the brainstorming von here working intelligencies. Otherwise you will be out thrown and kicked anderswhere! Also: please keep still and only watchen astaunished the blinkenlights.
See also {geef}.
[{Jargon File}]

bliss
BLISS
{Basic Language for Implementation of System Software}

bliss10
BLISS-10
[language] A version of {BLISS} from {CMU} for the {PDP-10}.
(2002-02-01)

bliss11
BLISS-11
[language] A {cross-compiler} for the {PDP-11} running on a {PDP-10}. Written at {CMU} to support the {C.mmp}/{Hydra} project.
(2002-02-01)

bliss16c
BLISS-16C
[language] {DEC}'s {cross-compiler} equivalent of {BLISS-11}.
(2002-02-01)

bliss32
BLISS-32
[language] A version of {BLISS} from DEC for {VAX}/{VMS}.
(2002-02-01)

bliss36
BLISS-36
[language] {DEC}'s equivalent of {BLISS-10}.
(2002-02-01)

blit
/blit/ 1. To copy a large array of bits from one part of a computer's memory to another part, particularly when the memory is being used to determine what is shown on a display screen. "The storage allocator picks through the table and copies the good parts up into high memory, and then blits it all back down again." See {bitblt}, {BLT}, {dd}, {cat}, {blast}, {snarf}. More generally, to perform some operation (such as toggling) on a large array of bits while moving them.
2. Sometimes all-capitalised as "BLIT": an early experimental {bit-mapped} {terminal} designed by Rob Pike at {Bell Labs}, later commercialised as the {AT&T 5620}. (The folk etymology from "Bell Labs Intelligent Terminal" is incorrect. Its creators liked to claim that "Blit" stood for the Bacon, Lettuce, and Interactive Tomato).
[{Jargon File}]
(1994-11-16)

blitter
[hardware, graphics] /blit'r/ (Or "{raster blaster}"). A special-purpose {integrated circuit} or hardware system built to perform {blit} (or "{bit bang}") operations, especially used for fast implementation of {bit-mapped} graphics.
The {Commodore} {Amiga} and a few other {microcomputers} have these, but in 1991 the trend is away from them (however, see {cycle of reincarnation}).
[{Jargon File}]
(1996-04-30)

blivet
/bliv'*t/ [allegedly from a World War II military term meaning "ten pounds of manure in a five-pound bag"] 1. An intractable problem.
2. A crucial piece of hardware that can't be fixed or replaced if it breaks.
3. A tool that has been hacked over by so many incompetent programmers that it has become an unmaintainable tissue of hacks.
4. An out-of-control but unkillable development effort.
5. An embarrassing bug that pops up during a customer demo.
6. In the subjargon of computer security specialists, a denial-of-service attack performed by hogging limited resources that have no access controls (for example, shared spool space on a multi-user system).
This term has other meanings in other technical cultures; among experimental physicists and hardware engineers of various kinds it seems to mean any random object of unknown purpose (similar to hackish use of {frob}). It has also been used to describe an amusing trick-the-eye drawing resembling a three-pronged fork that appears to depict a three-dimensional object until one realises that the parts fit together in an impossible way.
[{Jargon File}]

bloat
{software bloat}

bloatware
[jargon, abuse] {Software} suffering from {software bloat}.
(1995-10-14)

blob
BLOB
1. {binary large object}.
2. [architecture] {blitter object}.
[{Jargon File}]

block
1. [unit] A unit of data or memory, often, but not exclusively, on a {magnetic disk} or {magnetic tape}.
Compare {record}, {sector}.
2. [operating system] To delay or sit idle while waiting for something.
Compare {busy-wait}.
(2000-07-17)

block diagram compiler
Block Diagram Compiler
[simulation, language] (BDL) A {block diagram} simulation tool, with associated language.
["A Software Environment for Digital Signal-Processing Simulations," D.H. Johnson & R.E. Vaughan, Circuits Systems and Signal Processing 6(1):31-43, 1987].
(2000-07-17)

block redundancy check
Block Redundancy Check
{Longitudinal Redundancy Check}

block started by symbol
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.
[{Jargon File}]

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)

bloggs family the
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
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
blow an EPROM
/bloh *n ee'prom/ (Or "blast", "burn") To program a {read-only memory}, e.g. for use with an {embedded system}. This term arose because the programming process for the {Programmable Read-Only Memory} (PROM) that preceded present-day {Erasable Programmable Read-Only Memory} (EPROM) involved intentionally blowing tiny electrical fuses on the chip. The usage lives on (it's too vivid and expressive to discard) even though the write process on EPROMs is nondestructive.
[{Jargon File}]
(1994-11-29)

blow away
[operating system, jargon] To remove (files and directories) from permanent storage, generally by accident. "He reformatted the wrong partition and blew away last night's netnews".
Compare: {nuke}.
[{Jargon File}]
(1996-01-05)

blow out
[jargon] (Probably from mining and tunnelling jargon) Of {software}, to fail spectacularly; almost as serious as {crash and burn}.
See {blow past}, {blow up}, {die horribly}.
[{Jargon File}]
(1994-11-29)

blow past
To {blow out} despite a safeguard. "The server blew past the 5K reserve buffer."
[{Jargon File}]
(1994-11-29)

blow up
1. Of a scientific computation: to become unstable. It suggests that the computation is diverging so rapidly that it will soon overflow or at least go {nonlinear}.
2. {blow out}.
[{Jargon File}]

blowing your buffer
[jargon] Losing your train of thought. A reference to {buffer overflow}.
(1999-01-15)

blox
BLOX
A {visual language}.

blt
BLT
1. /B-L-T/, /bl*t/ or (rarely) /belt/ Synonym for {blit}. This is the original form of {blit} and the ancestor of {bitblt}. It refers to any large bit-field copy or move operation (one resource-intensive memory-shuffling operation done on pre-paged versions of {ITS}, {WAITS} and {TOPS-10} was sardonically referred to as "The Big BLT"). The jargon usage has outlasted the {PDP-10} BLock Transfer instruction from which {BLT} derives; nowadays, the {assembly language} {mnemonic} {BLT} almost always means "Branch if Less Than zero".
2. bacon, lettuce and tomato (sandwich).
[{Jargon File}]

blue
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
Blue Book
1. [publication] Informal name for one of the four standard references on the page-layout and graphics-control language {PostScript}. The other three official guides are known as the {Green Book}, the {Red Book}, and the {White Book}.
["PostScript Language Tutorial and Cookbook", Adobe Systems, Addison-Wesley 1985, (ISBN 0-201-10179-3)].
2. [publication] Informal name for one of the three standard references on Smalltalk. This book also has green and red siblings.
["Smalltalk-80: The Language and its Implementation", David Robson, Addison-Wesley 1983, (ISBN 0-201-11371-63)].
3. [publication] Any of the 1988 standards issued by the {ITU-T}'s ninth plenary assembly. These include, among other things, the {X.400} {electronic mail} specification and the Group 1 through 4 fax standards.
See also {book titles}.
[{Jargon File}]
(1995-10-12)

blue box
Blue Box
[operating system] The complete implementation of the {Mac OS} run-time environment on the more modern {Rhapsody} operating system. {Blue Box} is not an {emulation} layer; at any given time it will be based on the same source code and ROM image as the current version of Mac OS and will thus incorporate future Mac OS improvements.
(1997-10-15)

blue dot syndrome
[graphics, jargon] The inability to display an {image} {file} or {text} embedded in an image file on your monitor.
[Why?]
(2002-05-28)

blue glue
Blue Glue
{Systems Network Architecture}

blue screen of death
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
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
Blue Sky Software
{eHelp Corporation}

blue wire
(IBM) Patch wires added to circuit boards at the factory to correct design or fabrication problems. These may be necessary if there hasn't been time to design and qualify another board version.
Compare {purple wire}, {red wire}, {yellow wire}.
[{Jargon File}]
(1994-11-29)

bluetooth
Bluetooth
[protocol, standard] A specification for short-range radio links between mobile computers, mobile phones, digital cameras, and other portable devices.
{Home (http://www.bluetooth.com)}.
(2001-03-16)

blurgle
/bler'gl/ [Great Britain] Spoken {metasyntactic variable}, to indicate some text that is obvious from context, or which is already known. If several words are to be replaced, blurgle may well be doubled or trebled. "To look for something in several files use "{grep} string blurgle blurgle"." In each case, "blurgle blurgle" would be understood to be replaced by the file you wished to search. Compare {mumble}.
[{Jargon File}]

bm
[networking] The {country code} for Bermuda.
(1999-01-27)

bman
BMAN
{Broadband Metropolitan Area Network}

bmasf
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
BMDP
[language] BioMeDical Package.
A statistical language developed at {UCB} in 1961, first implemented in {Fortran} for the {IBM 7090}.
(1995-03-13)

bmethod
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
BMF
{Bird-Meertens Formalism}

bmp
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
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
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
BNF
{Backus-Naur Form}. Originally Backus Normal Form.
[{Jargon File}]

bnr pascal
BNR Pascal
["Remote Rendezvous", N. Gammage et al, Soft Prac & Exp 17(10):741-755 (Oct 1987)].
(1994-12-21)

bnr prolog
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".
[{Jargon File}]

board
1. In-context synonym for {bboard}; sometimes used even for {Usenet} newsgroups.
2. An electronic circuit board.

boat anchor
1. Like {doorstop} but more severe; implies that the offending hardware is irreversibly dead or useless. "That was a working motherboard once. One lightning strike later, instant boat anchor!"
2. A person who just takes up space.
3. Obsolete but still working hardware, especially when used of an old S100-bus hobbyist system; originally a term of annoyance, but became more and more affectionate as the hardware became more and more obsolete.
[{Jargon File}]

bob
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
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
BOCS
Berard Object and Class Specifier, an Object-oriented CASE tool from Berard Software Engineering.

boehm b
Boehm B.
Proposed the COCOMO technique for evaluating the cost of a software project.

boeing
BOEING
Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959).

bof
BOF
/B-O-F/ or /bof/ 1. {Birds Of a Feather}.
2. Boring Old Fart.
[{Jargon File}]

bofh
BOFH
{Bastard Operator From Hell}

bogometer
[humour] /boh-gom'-*t-er/ A notional instrument for measuring {bogosity}.
Compare the "wankometer" described in the {wank} entry.
[{Jargon File}]
(1999-06-10)

bogomips
BogoMips
[unit] (From "bogus", "{MIPS}") The timing unit of the {Linux} {kernel}.
A BogoMips is an unscientific measurement of {processor} speed made by the {Linux} {kernel} when it {boots}, to calibrate an internal {busy-loop}.
{BogoMips MiniHowto (http://metalab.unc.edu/LDP/HOWTO/mini/BogoMips.html)}.
(1999-05-06)

bogon
/boh'gon/ [by analogy with proton/electron/neutron, but doubtless reinforced after 1980 by the similarity to Douglas Adams's "Vogons"] 1. The elementary particle of bogosity (see {quantum bogodynamics}). For instance, "the Ethernet is emitting bogons again" means that it is broken or acting in an erratic or bogus fashion.
2. A query {packet} sent from a {TCP/IP} {domain resolver} to a root server, having the reply bit set instead of the query bit.
3. Any bogus or incorrectly formed packet sent on a network.
4. A person who is bogus or who says bogus things. This was historically the original usage, but has been overtaken by its derivative senses. See also {bogosity}; compare {psyton}, {fat electrons}, {magic smoke}.
The bogon has become the type case for a whole bestiary of nonce particle names, including the "clutron" or "cluon" (indivisible particle of cluefulness, obviously the antiparticle of the bogon) and the futon (elementary particle of {randomness}, or sometimes of lameness). These are not so much live usages in themselves as examples of a live meta-usage: that is, it has become a standard joke or linguistic maneuver to "explain" otherwise mysterious circumstances by inventing nonce particle names. And these imply nonce particle theories, with all their dignity or lack thereof (we might note parenthetically that this is a generalisation from "(bogus particle) theories" to "bogus (particle theories)"!). Perhaps such particles are the modern-day equivalents of trolls and wood-nymphs as standard starting-points around which to construct explanatory myths. Of course, playing on an existing word (as in the "futon") yields additional flavour.
[{Jargon File}]

bogon filter
/boh'gon fil'tr/ Any device, software or hardware, that limits or suppresses the flow and/or emission of bogons. "Engineering hacked a bogon filter between the {Cray} and the {VAXen}, and now we're getting fewer dropped packets." See also {bogosity}.

bogon flux
/boh'gon fluhks/ A measure of a supposed field of {bogosity} emitted by a speaker, measured by a {bogometer}; as a speaker starts to wander into increasing bogosity a listener might say "Warning, warning, bogon flux is rising". See {quantum bogodynamics}.
[{Jargon File}]

bogosity
/boh-go's*-tee/ The degree to which something is "bogus" in the hackish sense of "bad". At CMU, bogosity is measured with a {bogometer}; in a seminar, when a speaker says something bogus, a listener might raise his hand and say "My bogometer just triggered". More extremely, "You just pinned my bogometer" means you just said or did something so outrageously bogus that it is off the scale, pinning the bogometer needle at the highest possible reading (one might also say "You just redlined my bogometer"). The agreed-upon unit of bogosity is the {microLenat}.
Also, the potential field generated by a {bogon flux}; see {quantum bogodynamics}. See also {bogon flux}, {bogon filter}.
(2002-04-14)

bogosort
bogo-sort
[algorithm, humour] /boh"goh-sort"/ (Or "stupid-sort") The archetypical perversely awful {algorithm} (as opposed to {bubble sort}, which is merely the generic *bad* algorithm). Bogo-sort is equivalent to repeatedly throwing a deck of cards in the air, picking them up at random, and then testing whether they are in order. It serves as a sort of canonical example of awfulness. Looking at a program and seeing a dumb algorithm, one might say "Oh, I see, this program uses bogo-sort."
Also known as "monkey sort" after the {Infinite Monkey Theorem}.
Compare {brute force}, {Lasherism}.
{An implementation (http://www.stdout.org/~adam/psort)}.
[{Jargon File}]
(2002-04-07)

bogotify
[jargon] /boh-go't*-fi:/ To make or become bad. A program that has been changed so many times as to become completely disorganised has become bogotified. If you tighten a nut too hard and strip the threads on the bolt, the bolt has become bogotified.
See also {bogosity}.
(2003-01-25)

bogue out
/bohg owt/ To become bogus, suddenly and unexpectedly. "His talk was relatively sane until somebody asked him a trick question; then he bogued out and did nothing but {flame} afterward." See also {bogosity}.
[{Jargon File}]

bohica
BOHICA
[humour] /bo-hee-ka/ {Bend Over, Here It Comes Again}.

bohr bug
Bohr bug
[jargon, programming] /bohr buhg/ (From Quantum physics) A repeatable {bug}; one that manifests reliably under a possibly unknown but well-defined set of conditions.
Compare {heisenbug}. See also {mandelbug}, {schroedinbug}.
[{Jargon File}]
(1995-02-28)

boink
/boynk/ [{Usenet}: variously ascribed to the TV series "Cheers" "Moonlighting", and "Soap"] 1. To have sex with; compare {bounce}. (This is mainstream slang.) In Commonwealth hackish the variant "bonk" is more common.
2. After the original Peter Korn "Boinkon" {Usenet} parties, used for almost any net social gathering, e.g. Miniboink, a small boink held by Nancy Gillett in 1988; Minniboink, a Boinkcon in Minnesota in 1989; Humpdayboinks, Wednesday get-togethers held in the San Francisco Bay Area.
Compare {@-party}.
3. Variant of "bonk"; see {bonk/oif}.
[{Jargon File}]

bolero
BOLERO
[programming] {Software AG}'s {object-oriented} development environment and {application server} for Electronic Business applications.
(1999-03-06)

bolt beranek and newman inc
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.
[{Jargon File}]
(1996-12-08)

bon
[language] (From "Bonnie", {Ken Thompson}'s wife) A language designed by {Ken Thompson} and later revised by him to produce {B}.
[When? Features?]
(1997-02-04)

bondageanddiscipline language
bondage-and-discipline language
A language (such as {Pascal}, {Ada}, APL, or Prolog) that, though ostensibly general-purpose, is designed so as to enforce an author's theory of "right programming" even though said theory is demonstrably inadequate for systems hacking or even vanilla general-purpose programming. Often abbreviated "B&D"; thus, one may speak of things "having the B&D nature".
See {Pascal}. Compare {languages of choice}.
[{Jargon File}]
(1996-01-05)

bonkoif
bonk/oif
/bonk/, /oyf/ In the {MUD} community, it has become traditional to express pique or censure by "bonking" the offending person. Convention holds that one should acknowledge a bonk by saying "oif!" and there is a myth to the effect that failing to do so upsets the cosmic bonk/oif balance, causing much trouble in the universe. Some MUDs have implemented special commands for bonking and oifing.
[{Jargon File}]
(1998-01-18)

booch method
Booch method
[programming] A widely used {object-oriented analysis} and {object-oriented design} method.
{(http://www.hsr.ch/div/Booch/BoochReference/)}.
[Grady Booch, "Object-oriented Analysis and Design with Applications", 2nd edition. Benjamin Cummings, Redwood City, ISBN 0-8053-5340-2, 1993]
(2000-05-23)

book titles
[publication] There is a tradition in hackerdom of informally tagging important textbooks and standards documents with the dominant colour of their covers or with some other conspicuous feature of the cover. Many of these are described in {this dictionary} under their own entries. See {Aluminum Book}, {Blue Book}, {Cinderella Book}, {Devil Book}, {Dragon Book}, {Green Book}, {Orange Book}, {Pink-Shirt Book}, {Purple Book}, {Red Book}, {Silver Book}, {White Book}, {Wizard Book}, {Yellow Book}, {bible}, {rainbow series}.
[{Jargon File}]
(1996-12-03)

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
Bookreader
{DEC}'s {CD-ROM}-based on-line documentation browser.

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

boole george
Boole, George
{George Boole}

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
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
Boolean logic
[mathematics] A {logic} based on {Boolean algebra}.
(1995-03-25)

boolean search
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)

booster
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}.
[{Jargon File}]
(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)

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)

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

border gateway protocol
Border Gateway Protocol
(BGP) An {Exterior Gateway Protocol} defined in {RFC 1267} and {RFC 1268}. Its design is based on experience gained with {Exterior Gateway Protocol} (EGP), as defined in {STD} 18, {RFC 904} and EGP usage in the {NSFNet} {backbone}, as described in RFCs 1092 and 1093.
(1994-11-29)

borf
[jargon] To uncerimoniously disconnect someone from a system without prior warning. {BBS} {Sysops} routinely "borf" pest users by turning off the modem or by hitting the "auto-borf" key sequence.
You can also be "borfed" by software dropping {carrier} due to a {bug}.
The origin of the term is unknown but it has been in use since at least 1982.
(1997-03-21)

borland international inc
Borland International, Inc.
{Borland Software Corporation}

borland software corporation
Borland Software Corporation
[company] A company 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}, {JBuilder}, and {InterBase}.
Borland has approximately 1000 employees worldwide and has operations in Australia, Canada, France, Germany, Japan, Netherlands, and the United Kingdom.
Borland sold {Quattro} Pro to {Novell} in 1994 for $100M. Novell later sold the product to {Corel Corporation}, who also bought {Paradox}. dBASE also was sold in 1999.
In Febuary 1998 Borland bought {Visigenic Software, Inc.}.
The company changed its name to Inprise Corporation on 1998-04-29 and then on 2000-11-14 they announced they were changing it back to Borland from the first quarter of 2001.
Quarterly sales $69M, profits $61M (Aug 1994). $56M, $6.4M (July 2001)
{Home (http://www.borland.com/)}.
Headquarters: 100 Borland Way, Scotts Valley, CA, 95066, USA. Telephone: +1 (408) 431 1000.
(2002-03-16)

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

bosechaudhurihocquenghem code
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
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.
[{Jargon File}]

bottomunique
bottom-unique
In {domain theory}, a function f is bottom-unique if
f x = bottom [=] x = bottom
A bottom-unique function is also {strict}.

bottomup implementation
bottom-up implementation
[programming] The opposite of {top-down design}. It is now received wisdom in most programming cultures that it is best to design from higher levels of abstraction down to lower, specifying sequences of action in increasing detail until you get to actual code. Hackers often find (especially in exploratory designs that cannot be closely specified in advance) that it works best to *build* things in the opposite order, by writing and testing a clean set of primitive operations and then knitting them together.
[{Jargon File}]
(1996-05-10)

bottomup model
bottom-up model
[programming] A method for estimating the cost of a complete software project by combining estimates for each component.
(1996-05-28)

bottomup testing
bottom-up testing
[programming] An integration testing technique that tests the low-level components first using test drivers for those components that have not yet been developed to call the low-level components for test.
Compare {bottom-up implementation}.
(1996-05-10)

botwar
[chat] The epic struggle of {bots} vying for dominance.
Botwars are generally (and quite inappropriately) carried out on {talk} systems, typically {IRC}, where botwar crossfire (such as {pingflood}ing) absorbs scarce server resources and obstructs human conversation.
The wisdom of experience indicates that {Core Wars}, not {talk} systems, are the appropriate venue for aggressive bots and their {botmasters}.
Compare {penis war}.
(1997-04-08)

bounce
1. (Perhaps by analogy to a bouncing check) An {electronic mail} message that is undeliverable and returns an error notification (a "{bounce message}") to the sender is said to "bounce".
2. To play volleyball. The now-demolished {D. C. Power Lab} building used by the {Stanford AI Lab} in the 1970s had a volleyball court on the front lawn. From 5 PM to 7 PM was the scheduled maintenance time for the computer, so every afternoon at 5 would come over the intercom the cry: "Now hear this: bounce, bounce!", followed by Brian McCune loudly bouncing a volleyball on the floor outside the offices of known volleyballers.
3. To engage in sexual intercourse; probably from the expression "bouncing the mattress", but influenced by Roo's psychosexually loaded "Try bouncing me, Tigger!" from the "Winnie-the-Pooh" books.
Compare {boink}.
4. To casually reboot a system in order to clear up a transient problem. Reported primarily among {VMS} users.
5. (VM/CMS programmers) Automatic warm-start of a computer after an error. "I logged on this morning and found it had bounced 7 times during the night"
6. (IBM) To {power cycle} a peripheral in order to reset it.
[{Jargon File}]
(1994-11-29)

bounce message
A notification message returned to the sender by a site unable to relay {e-mail} to the intended recipient or the next link in a {bang path}. Reasons might include a nonexistent or misspelled user name or a {down} relay site. Bounce messages can themselves fail, with occasionally ugly results; see {sorcerer's apprentice mode} and {software laser}. The terms "bounce mail" and "barfmail" are also common.
[{Jargon File}]
(1994-11-29)

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

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.

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

bournebasic
A {BASIC} {interpreter}.
comp.sources.misc archives volume 1.

boustrophedonic
[hardware] (From the Greek "boustrophe-don": turning like oxen in plowing; from "bous": ox, cow; "strephein": to turn) An ancient method of writing using alternate left-to-right and right-to-left lines. It used for an optimisation performed by some computer typesetting software and moving-head printers to reduce physical movement of the print head. The adverbial form "boustrophedonically" is also found.
(1994-11-29)

box
[computer] 1. A computer; especially in the construction "foo box" where foo is some functional qualifier, like "graphics", or the name of an {operating system} (thus, "{Unix} box", "{MS-DOS} box", etc.) "We preprocess the data on Unix boxes before handing it up to the {mainframe}." The plural "{boxen}" is sometimes seen.
2. Without qualification in an {IBM} {SNA} site, "box" refers specifically to an {IBM} {front-end processor}.
[{Jargon File}]
(1994-11-29)

boxed comments
[programming] {Comments} that occupy several lines by themselves; so called because in {assembler} and {C} code they are often surrounded by a box in a style similar to this:
/************************************************* * * This is a boxed comment in C style * *************************************************/
Common variants of this style omit the asterisks in column 2 or add a matching row of asterisks closing the right side of the box. The sparest variant omits all but the comment {delimiters} themselves; the "box" is implied.
Opposite of {winged comments}.
[{Jargon File}]
(1997-07-21)

boxen
/bok'sn/ (By analogy with {VAXen}) A fanciful plural of {box} often encountered in the phrase "Unix boxen", used to describe commodity {Unix} hardware. The connotation is that any two Unix boxen are interchangeable.
[{Jargon File}]
(1994-11-29)

boxer
Boxer
1. [language] A {visual language} by Hal Abelson and Andy diSessa of Berkeley which claims to be the successor to {Logo}. Boxes are used to represent {scope}.
2. [tool] A {text editor} for {MS-DOS} and {Microsoft Windows}.
{Home (http://www.boxersoftware.com/users/dhamel)}.
(2001-04-30)

boxology
[graphics] /bok-sol'*-jee/ {ASCII art}.
This term implies a more restricted domain, that of box-and-arrow drawings. "His report has a lot of boxology in it."
Compare {macrology}.
[{Jargon File}]
(1994-12-02)

boycott apple
Boycott Apple
Some time before 1989, {Apple Computer, Inc.} started a lawsuit against {Hewlett-Packard} and {Microsoft}, claiming they had breeched Apple's {copyright} on the {look and feel} of the {Macintosh user interface}. In December 1989, {Xerox} failed to sue {Apple Computer}, claiming that the software for Apple's {Lisa} computer and {Macintosh} {Finder}, both copyrighted in 1987, were derived from two {Xerox} programs: {Smalltalk}, developed in the mid-1970s and {Star}, copyrighted in 1981.
Apple wanted to stop people from writing any program that worked even vaguely like a {Macintosh}. If such {look and feel} lawsuits succeed they could put an end to {free software} that could substitute for commercial software.
In the weeks after the suit was filed, {Usenet} reverberated with condemnation for Apple. {GNU} supporters {Richard Stallman}, John Gilmore, and Paul Rubin decided to take action against Apple. Apple's reputation as a force for progress came from having made better computers; but The {League for Programming Freedom} believed that Apple wanted to make all non-Apple computers worse. They therefore campaigned to discourage people from using Apple products or working for Apple or any other company threatening similar obstructionist tactics (e.g. {Lotus} and {Xerox}).
Because of this boycott the {Free Software Foundation} for a long time didn't support {Macintosh} {Unix} in their software. In 1995, the LPF and the FSF decided to end the boycott.
[Dates? Other events? Why did Xerox's case against Apple fail?]
(1995-04-18)

bozotic
[abuse] (From Bozo the Clown, a famous circus personality, via "bozo" - a clod, idiot or generally silly person) any form of clown-like or ludicrous behaviour. The word also has echoes of "robotic", so bozotic behaviour is mindless, automaton-like stupidity.
[{Jargon File}]
(1996-01-05)

bpi
BPI
{bits per inch}

bpmake
{Aspirin}

bpp
{bits per pixel}

bpr
BPR
{Business Process Re-engineering}

bps
BPS
{Basic Programming Support}

bps
{bits per second}

bqs
BQS
{Berkeley Quality Software}

br
[networking] The {country code} for Brazil.
(1999-01-27)

brace
[character] {left brace} or {right brace}.

bracket
[character] (Or square bracket) A {left bracket} or {right bracket}.
Often used loosely for {parentheses}, {square brackets}, {braces}, {angle brackets}, or any other kind of unequal paired {delimiters}.
(1996-09-08)

bracket abstraction
[compiler] An {algorithm} which turns a term into a function of some variable. The result of using bracket abstraction on T with respect to variable v, written as [v]T, is a term containing no occurrences of v and denoting a function f such that f v = T. This defines the function f = (\ v . T). Using bracket abstraction and {currying} we can define a language without {bound 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 embosser
{Braille printer}

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
Brain Aid Prolog
[language] (BAP) A parallel {Prolog} environment for {transputer} systems by Frank Bergmann [fraber@fraber.de], Martin Ostermann [ost@xan.dfv.rwth-aachen.de], and Guido von Walter [guido@parsytec.de] of {Brain Aid Systems} GbR. BAP is based on a model of communicating sequential Prolog processes. The {run-time system} consists of a multi-process {operating system} with support for several applications running concurrently.
{Home (http://www.fraber.de/bap/)}.
(2002-11-12)

brain dump
(The act of telling someone) everything one knows about a particular topic. Typically used when someone is going to let a new party maintain a piece of code. Conceptually analogous to an operating system {core dump} in that it saves a lot of useful {state} before an exit. "You'll have to give me a brain dump on FOOBAR before you start your new job at HackerCorp." At Sun, this is also known as "TOI" (transfer of information).
[{Jargon File}]

brain fart
[jargon, humour] 1. The actual result of a {braino}, as opposed to the mental {glitch} that is the braino itself. E.g. typing "dir" on a {Unix box} after a session with {MS-DOS}.
2. A biproduct of a bloated mind producing information effortlessly. A burst of useful information. "I know you're busy on the Microsoft story, but can you give us a brain fart on the Mitnik bust?"
(1997-04-29)

braindamaged
brain-damaged
1. [generalisation of "Honeywell Brain Damage" (HBD), a theoretical disease invented to explain certain utter cretinisms in Honeywell {Multics}] Obviously wrong; cretinous; {demented}. There is an implication that the person responsible must have suffered brain damage, because he should have known better. Calling something brain-damaged is really bad; it also implies it is unusable, and that its failure to work is due to poor design rather than some accident. "Only six monocase characters per file name? Now *that's* brain-damaged!"
2. [especially in the Mac world] May refer to free demonstration software that has been deliberately crippled in some way so as not to compete with the commercial product it is intended to sell. Synonym {crippleware}.
[{Jargon File}]

braindead
brain-dead
Brain-damaged in the extreme. It tends to imply terminal design failure rather than malfunction or simple stupidity.

braino
{thinko}

branch
1. [mathematics] An {edge} in a {tree}.
2. [programming] A {jump}.
(1998-11-14)

branch and hang
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
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
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
branch to Fishkill
(IBM: from the location of one of the corporation's facilities) Any unexpected jump in a program that produces catastrophic or just plain weird results.
See {jump off into never-never land}, {hyperspace}.
[{Jargon File}]

brazil
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
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.
[{Jargon File}]

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 {EIA-232} break (two character widths of line high) over a {serial line}.
4. [Unix] To strike whatever key currently causes the tty driver to send SIGINT to the current process. Normally, break, delete or {control-C} does this.
5. "break break" may be said to interrupt a conversation (this is an example of verb doubling). This usage comes from radio communications, which in turn probably came from landline telegraph/teleprinter usage, as badly abused in the Citizen's Band craze a few years ago.
6. {pipeline break}.
[{Jargon File}]

breakeven point
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)

breathoflife packet
breath-of-life packet
({XEROX PARC}) An {Ethernet} {packet} that contains {bootstrap} code, periodically sent out from a working computer to infuse the "breath of life" into any computer on the network that has crashed. Computers depending on such packets have sufficient hardware or firmware code to wait for (or request) such a packet during the reboot process.
See also {dickless workstation}.
The notional "kiss-of-death packet", with a function complementary to that of a breath-of-life packet, is recommended for dealing with hosts that consume too many network resources. Though "kiss-of-death packet" is usually used in jest, there is at least one documented instance of an {Internet} subnet with limited address-table slots in a gateway computer in which such packets were routinely used to compete for slots, rather like Christmas shoppers competing for scarce parking spaces.
[{Jargon File}]
(1995-01-26)

breedle
{feep}

brh
BRH
{Branch and Hang}

bri
BRI
{Basic Rate Interface}

brian reid
Brian Reid
[person] The person who cofounded {Usenet}'s anarchic alt.* {newsgroup} {hierarchy} with {John Gilmore}.
(1997-04-12)

bridge
BRIDGE
A component of {ICES} for civil engineers.
[Sammet 1969, p. 616].

bridge
[networking, hardware] A device which forwards traffic between {network segments} based on {data link layer} information. These segments would have a common {network layer} address.
Every network should only have one {root bridge}.
See also {gateway}, {router}.
(2001-03-04)

bridgetalk
Bridgetalk
[language] A {visual language}.
(2001-03-04)

briefcase
[tool] A {Win95}/{WinNT} utility for keeping files on two computers without permanent connection in sync.
The scenario briefcase was designed for is the combination of an office computer and a {portable} one. You connect the two before leaving your office, create a briefcase on the portable (if you don't already have one on it), then copy the files you want to work on while away into the briefcase. You can at this point disconnect the two computers, take the portable with you and work on the files in the briefcase at home or on the road. When you get back to your office the briefcase utility can automatically update the files you changed on the office computer.
(1998-05-18)

brightness
[graphics] (Or "tone", "luminance", "value", "luminosity", "lightness") The coordinate in the {HSB} {colour model} that determines the total amount of light in the colour. Zero brightness is black and 100% is white, intermediate values are "light" or "dark" colours.
The other coordinates are {hue} and {saturation}.
(1999-07-05)

brilliant
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
bring X to its knees
To present a computer, operating system, piece of software, or algorithm with a load so extreme or {pathological} that it grinds to a halt. "To bring a MicroVAX to its knees, try twenty users running {vi} - or four running {Emacs}." Compare {hog}.
[{Jargon File}]

british broadcasting corporation
British Broadcasting Corporation
[company] (BBC) The non-commercial UK organisation that commissions, produces, and broadcasts television and radio programmes.
The BBC commissioned the "{BBC Micro}" from {Acorn Computers} for use in a television series about using computers. They also have one of the world's most respected news web sites (on which I work!).
{BBC Home (http://www.bbc.co.uk/)}.
{BBC News (http://news.bbc.co.uk/)}.
(2003-07-02)

british library method
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
British Standards Institute
[body, standard] (BSI) The British member of {ISO}.
(1996-06-12)

british telecom
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
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}.
[{Jargon File}]
(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}.
[{Jargon File}]
(1995-02-07)

broadway
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
[marketing, jargon] Planned but non-existent product like {vaporware}, but with the added implication that marketing is actively selling and promoting it (they've printed brochures). Brochureware is often deployed to con customers into not committing to an existing product of the competition's.
The term is now especially applicable to new {web sites}, web site revisions, and ancillary services such as customer support and product return.
Owing to the explosion of {database}-driven, {cookie}-using {dot-coms} (of the sort that can now deduce that you are, in fact, a dog), the term is now also used to describe sites made up of {static HTML} pages that contain not much more than contact info and mission statements. The term suggests that the company is small, irrelevant to the web, local in scope, clueless, broke, just starting out, or some combination thereof.
Many new companies without product, funding, or even staff, post brochureware with investor info and press releases to help publicise their ventures. As of December 1999, examples include pop.com and cdradio.com.
Small-timers that really have no business on the web such as lawncare companies and divorce laywers inexplicably have brochureware made that stays unchanged for years.
[{Jargon File}]
(2001-05-10)

broken
Not working properly (of programs).

broken arrow
[communications] The error code displayed on line 25 of a {IBM 3270} {terminal} (or a {terminal emulator} emulating a 3270) for various kinds of {protocol} violations and "unexpected" error conditions (including connection to a {down} computer). On a PC, simulated with "-]/_", with the two centre characters overstruck.
"Broken arrow" is also military jargon for an accident involving nuclear weapons.
[{Jargon File}]
(1995-02-07)

broker
{object request broker}

broket
[character] /broh'k*t/ or /broh'ket/ (From broken bracket) Either of the characters "[" or "]" when used as paired enclosing {delimiters} ({angle brackets}).
[{Jargon File}]
(1997-07-21)

brookss law
Brooks's Law
[programming] "Adding manpower to a late software project makes it later" - a result of the fact that the expected advantage from splitting work among N programmers is O(N) (that is, proportional to N), but the complexity and communications cost associated with coordinating and then merging their work is O(N^2) (that is, proportional to the square of N).
The quote is from Fred Brooks, a manager of {IBM}'s {OS/360} project and author of "{The Mythical Man-Month}".
The myth in question has been most tersely expressed as "Programmer time is fungible" and Brooks established conclusively that it is not. Hackers have never forgotten his advice; too often, {management} still does.
See also {creationism}, {second-system effect}, {optimism}.
[{Jargon File}]
(1996-09-17)

brouter
A device which bridges some {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.

brouwer fixedpoint theorem
Brouwer Fixed-Point Theorem
[topology] A well-known result in {topology} stating that any {continuous transformation} of an n-dimensional disk must have at least one {fixed point}.
[Is this correct?]
(2001-03-29)

brown and sharpe wire gauge
Brown and Sharpe Wire Gauge
{American Wire Gauge}

brown paper bag bug
[programming] A programming {bug} that is so stupid that it makes the programmer want to put a brown paper bag over his head.
(2001-01-16)

browser
[hypertext] A program which allows a person to read {hypertext}. The browser gives some means of viewing the contents of {nodes} (or "pages") and of {navigating} from one node to another.
{Netscape Navigator}, {NCSA} {Mosaic}, {Lynx}, and {W3} are examples for browsers for the {World-Wide Web}. They act as {clients} to remote {web servers}.
(1996-05-31)

brs
BRS
{Big Red Switch}. This abbreviation is fairly common on-line.
[{Jargon File}]

bruin
BRUIN
Brown University Interactive Language.
A simple interactive language with {PL/I}-like {syntax}, for {IBM 360}.
["Meeting the Computational Requirements of the University, Brown University Interactive Language", R.G. Munck, Proc 24th ACM Conf, 1969].
(1995-02-14)

brute force
[programming] A primitive programming style in which the programmer relies on the computer's processing power instead of using his own intelligence to simplify the problem, often ignoring problems of scale and applying naive methods suited to small problems directly to large ones. The term can also be used in reference to programming style: brute-force programs are written in a heavy-handed, tedious way, full of repetition and devoid of any elegance or useful abstraction (see also {brute force and ignorance}).
The {canonical} example of a brute-force algorithm is associated with the "{travelling salesman problem}" (TSP), a classical {NP-hard} problem:
Suppose a person is in, say, Boston, and wishes to drive to N other cities. In what order should the cities be visited in order to minimise the distance travelled?
The brute-force method is to simply generate all possible routes and compare the distances; while guaranteed to work and simple to implement, this algorithm is clearly very stupid in that it considers even obviously absurd routes (like going from Boston to Houston via San Francisco and New York, in that order). For very small N it works well, but it rapidly becomes absurdly inefficient when N increases (for N = 15, there are already 1,307,674,368,000 possible routes to consider, and for N = 1000 - well, see {bignum}). Sometimes, unfortunately, there is no better general solution than brute force. See also {NP-complete}.
A more simple-minded example of brute-force programming is finding the smallest number in a large list by first using an existing program to sort the list in ascending order, and then picking the first number off the front.
Whether brute-force programming should actually be considered stupid or not depends on the context; if the problem is not terribly big, the extra CPU time spent on a brute-force solution may cost less than the programmer time it would take to develop a more "intelligent" algorithm. Additionally, a more intelligent algorithm may imply more long-term complexity cost and bug-chasing than are justified by the speed improvement.
When applied to {cryptography}, it is usually known as {brute force attack}.
{Ken Thompson}, co-inventor of {Unix}, is reported to have uttered the epigram "When in doubt, use brute force". He probably intended this as a {ha ha only serious}, but the original {Unix} {kernel}'s preference for simple, robust and portable {algorithms} over {brittle} "smart" ones does seem to have been a significant factor in the success of that {operating system}. Like so many other tradeoffs in software design, the choice between brute force and complex, finely-tuned cleverness is often a difficult one that requires both engineering savvy and delicate aesthetic judgment.
[{Jargon File}]
(1995-02-14)

brute force and ignorance
[jargon] (BFI) A popular design technique at many software houses - {brute force} coding unrelieved by any knowledge of how problems have been previously solved in elegant ways. Dogmatic adherence to design methods tends to encourage this sort of thing. Characteristic of early {larval stage} programming; unfortunately, many never outgrow it.
Also encountered in the variants BFMI - brute force and massive ignorance, and BFBI - brute force and bloody ignorance.
"Gak, they used a {bubble sort}! That's strictly BFI."
Compare {bogosity}.
[{Jargon File}]
(1996-06-12)

brute force attack
[cryptography] A method of breaking a cipher (that is, to decrypt a specific encrypted text) by trying every possible {key}. The quicker the brute force attack, the weaker the cipher. Feasibility of brute force attack depends on the key length of the cipher, and on the amount of computational power available to the attacker. Brute force attack is impossible against the ciphers with variable-size key, such as a {one-time pad} cipher.
{Breaking ciphers with many workstations (http://www.distributed.net/projects.html.en)}.
(2000-01-16)

bs
BS
[character] Backspace, the {mnemonic} for {ASCII} 8.
(1996-06-24)

bs
[networking] The {country code} for the Bahamas.
(1999-01-27)

bs2000
BS2000
[operating system] An {operating system} from {SNI} for {mainframes}.
{Home (http://www.mch.sni.de.public/bs2000/server.htm)}.
(1997-06-13)

bsa
BSA
1. {Business Software Alliance}.
2. {Bidouilleurs Sans Argent}.
(1998-10-26)

bsd
BSD
{Berkeley Software Distribution}

bsd unix
BSD Unix
{Berkeley Software Distribution}

bsd386
BSD386
{386BSD}

bsdi
BSDI
{Berkeley Software Design, Inc.}

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

bsi
BSI
{British Standards Institute}

bsl
BSL
[language] A variant of {IBM}'s {PL/S} systems language. Versions: BSL1, BSL2.
(1998-06-15)

bsod
BSOD
{Blue Screen of Death}

bsol
BSOL
{Blue Screen of Life}

bsom
BSOM
{Beats the shit outa me}

bsp method
BSP method
[programming] A {CASE} method from {IBM}.
(1998-02-24)

bsram
BSRAM
{Burst Static Random Access Memory}

bss
BSS
{Block Started by Symbol}

bst
BST
[convention] British Summer Time. The name for daylight-saving time in the UK {GMT} time zone.
(2000-03-28)

bt
[networking] The {country code} for Bhutan.
(1999-01-27)

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

btoolkit
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
BTOS
{Convergent Technologies Operating System}

btree
B-tree
[algorithm] A multi-way {balanced tree}.
The "B" in B-tree has never been officially defined. It could stand for "balanced" or "Bayer", after one of the original designers of the algorithms and structure. A B-tree is _not_ (necessarily?) a "{binary tree}".
A B+-tree (as used by {IBM}'s {VSAM}) is a B-tree where the leaves are also linked sequentially, thus allowing both fast {random access} and sequential access to data.
[Knuth's Art of Computer Programming].
[Example algorithm?]
(2000-01-10)

btrieve
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
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
BTRL
[company] {British Telecom Research Laboratories}.

bts
BTS
{Bug Tracking System}

btw
BTW
[chat] By the way.
(2002-06-12)

buaf
BUAF
[alt.fan.warlord] Big Ugly ASCII Font. A special form of {ASCII art}. Various programs exist for rendering text strings into block, {bloob}, and pseudo-script fonts in cells between four and six character cells on a side; this is smaller than the letters generated by older {banner} programs. These are sometimes used to render one's name in a {sig block}, and are critically referred to as "BUAF"s. See {warlording}.
[{Jargon File}]

buag
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.
[{Jargon File}]

bucky bits
/buh'kee bits/ 1. Obsolete. The bits produced by the CONTROL and META shift keys on a SAIL keyboard ({octal} 200 and 400 respectively), resulting in a 9-bit keyboard character set. The MIT AI TV (Knight) keyboards extended this with TOP and separate left and right CONTROL and META keys, resulting in a 12-bit character set; later, LISP Machines added such keys as SUPER, HYPER, and GREEK (see {space-cadet keyboard}).
2. By extension, bits associated with "extra" shift keys on any keyboard, e.g. the ALT on an IBM PC or command and option keys on a Macintosh.
It has long been rumored that "bucky bits" were named after Buckminster Fuller during a period when he was consulting at Stanford. Actually, bucky bits were invented by Niklaus Wirth when *he* was at Stanford in 1964--65; he first suggested the idea of an EDIT key to set the 8th bit of an otherwise 7 bit ASCII character. It seems that, unknown to Wirth, certain Stanford hackers had privately nicknamed him "Bucky" after a prominent portion of his dental anatomy, and this nickname transferred to the bit. Bucky-bit commands were used in a number of editors written at Stanford, including most notably TV-EDIT and NLS.
The term spread to MIT and CMU early and is now in general use. Ironically, Wirth himself remained unaware of its derivation for nearly 30 years, until {GLS} dug up this history in early 1993! See {double bucky}, {quadruple bucky}.
(2001-06-22)

buffer
1. An area of memory used for storing messages. Typically, a buffer will have other attributes such as an input pointer (where new data will be written into the buffer), and output pointer (where the next item will be read from) and/or a count of the space used or free. Buffers are used to decouple processes so that the reader and writer may operate at different speeds or on different sized blocks of data.
There are many different algorithms for using buffers, e.g. first-in first-out (FIFO or shelf), last-in first-out (LIFO or stack), double buffering (allowing one buffer to be read while the other is being written), cyclic buffer (reading or writing past the end wraps around to the beginning).
2. An electronic device to provide compatibility between two signals, e.g. changing voltage levels or current capability.

buffer overflow
[programming] What happens when you try to store more data in a {buffer} than it can handle. This may be due to a mismatch in the processing rates of the producing and consuming processes (see {overrun} and {firehose syndrome}), or because the buffer is simply too small to hold all the data that must accumulate before a piece of it can be processed. For example, in a text-processing tool that {crunch}es a line at a time, a short line buffer can result in {lossage} as input from a long line overflows the buffer and overwrites data beyond it. Good defensive programming would check for overflow on each character and stop accepting data when the buffer is full.
See also {spam}, {overrun screw}.
[{Jargon File}]
(1996-05-13)

buffered writethrough
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)

bug
[programming] An unwanted and unintended property of a program or piece of hardware, especially one that causes it to malfunction. Antonym of {feature}. E.g. "There's a bug in the editor: it writes things out backward." The identification and removal of bugs in a program is called "{debugging}".
Admiral {Grace Hopper} (an early computing pioneer better known for inventing {COBOL}) liked to tell a story in which a technician solved a {glitch} in the {Harvard Mark II machine} by pulling an actual insect out from between the contacts of one of its relays, and she subsequently promulgated {bug} in its hackish sense as a joke about the incident (though, as she was careful to admit, she was not there when it happened). For many years the logbook associated with the incident and the actual bug in question (a moth) sat in a display case at the Naval Surface Warfare Center (NSWC). The entire story, with a picture of the logbook and the moth taped into it, is recorded in the "Annals of the History of Computing", Vol. 3, No. 3 (July 1981), pp. 285--286.
The text of the log entry (from September 9, 1947), reads "1545 Relay #70 Panel F (moth) in relay. First actual case of bug being found". This wording establishes that the term was already in use at the time in its current specific sense - and Hopper herself reports that the term "bug" was regularly applied to problems in radar electronics during WWII.
Indeed, the use of "bug" to mean an industrial defect was already established in Thomas Edison's time, and a more specific and rather modern use can be found in an electrical handbook from 1896 ("Hawkin's New Catechism of Electricity", Theo. Audel & Co.) which says: "The term "bug" is used to a limited extent to designate any fault or trouble in the connections or working of electric apparatus." It further notes that the term is "said to have originated in {quadruplex} telegraphy and have been transferred to all electric apparatus."
The latter observation may explain a common folk etymology of the term; that it came from telephone company usage, in which "bugs in a telephone cable" were blamed for noisy lines. Though this derivation seems to be mistaken, it may well be a distorted memory of a joke first current among *telegraph* operators more than a century ago!
Actually, use of "bug" in the general sense of a disruptive event goes back to Shakespeare! In the first edition of Samuel Johnson's dictionary one meaning of "bug" is "A frightful object; a walking spectre"; this is traced to "bugbear", a Welsh term for a variety of mythological monster which (to complete the circle) has recently been reintroduced into the popular lexicon through fantasy {role-playing games}.
In any case, in jargon the word almost never refers to insects. Here is a plausible conversation that never actually happened:
"There is a bug in this ant farm!"
"What do you mean? I don't see any ants in it."
"That's the bug."
[There has been a widespread myth that the original bug was moved to the Smithsonian, and an earlier version of this entry so asserted. A correspondent who thought to check discovered that the bug was not there. While investigating this in late 1990, your editor discovered that the NSWC still had the bug, but had unsuccessfully tried to get the Smithsonian to accept it - and that the present curator of their History of American Technology Museum didn't know this and agreed that it would make a worthwhile exhibit. It was moved to the Smithsonian in mid-1991, but due to space and money constraints has not yet been exhibited. Thus, the process of investigating the original-computer-bug bug fixed it in an entirely unexpected way, by making the myth true! - ESR]
[{Jargon File}]
(1999-06-29)

bug 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 tracking system
[programming] (BTS) A system for receiving and filing {bugs} reported against a {software} project, and tracking those bugs until they are fixed. Most major software projects have their own BTS, the {source code} of which is often available for use by other projects.
Well known BTSs include {GNATS}, {Bugzilla}, and {Debbugs}.
(2002-06-12)

bugcompatible
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."
[{Jargon File}]

bugforbug compatible
bug-for-bug compatible
Same as {bug-compatible}, with the additional implication that much tedious effort went into ensuring that each (known) bug was replicated.
[{Jargon File}]

buglix
/buhg'liks/ Pejorative term referring to {DEC}'s {ULTRIX} {operating system} in its earlier *severely* buggy versions. Still used to describe ULTRIX, but without nearly so much venom. Compare {AIDX}, {HP-SUX}, {Nominal Semidestructor}, {Telerat}, {sun-stools}.

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

bugzilla
Bugzilla
[programming] The web-based {bug tracking system} used by the {Mozilla} project.
{Bugzilla home (http://bugzilla.mozilla.org/)}.
(2002-06-12)

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

builtin self test
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
{Bull Information Systems}

bull information systems
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)

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}.
[{Jargon File}]

bum
1. To make highly efficient, either in time or space, often at the expense of clarity. "I managed to bum three more instructions out of that code." "I spent half the night bumming the interrupt code." In {elder days}, {John McCarthy} (inventor of {Lisp}) used to compare some efficiency-obsessed hackers among his students to "ski bums"; thus, optimisation became "program bumming", and eventually just "bumming".
2. To squeeze out excess; to remove something in order to improve whatever it was removed from (without changing function; this distinguishes the process from a {featurectomy}).
3. A small change to an algorithm, program, or hardware device to make it more efficient. "This hardware bum makes the jump instruction faster."
Usage: now uncommon, largely superseded by v. {tune} (and {tweak}, {hack}), though none of these exactly capture sense 2. All these uses are rare in Commonwealth hackish, because in the parent dialects of English "bum" is a rude synonym for "buttocks".
[{Jargon File}]

bump
Increment. E.g. {C}'s {++} operator. It is used especially of counter variables, pointers and index dummies in "for", "while", and "do-while" loops.
(1994-11-29)

burble
[Lewis Carroll's "Jabberwocky"] Like {flame}, but connotes that the source is truly clueless and ineffectual (mere flamers can be competent). A term of deep contempt. "There's some guy on the phone burbling about how he got a DISK FULL error and it's all our comm software's fault." This is mainstream slang in some parts of England.
[{Jargon File}]

burges language
Burge's Language
Unnamed functional language based on lambda-calculus. Recursive Programming techniques", W.H. Burge, A-W 1975.

buried treasure
A surprising piece of code found in some program. While usually not wrong, it tends to vary from crufty to bletcherous, and has lain undiscovered only because it was functionally correct, however horrible it is. Used sarcastically, because what is found is anything *but* treasure. Buried treasure almost always needs to be dug up and removed. "I just found that the scheduler sorts its queue using {bubble sort}! Buried treasure!"
[{Jargon File}]

burnin
burn-in
1. [hardware] {screen saver}.
2. [hardware, testing] {burn-in period}.
(1997-11-23)

burnin period
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}.
[{Jargon File}]

burroughs corporation
Burroughs Corporation
[company] A company which merged with {Sperry Univac} to form {Unisys Corporation}.
(1994-11-22)

burst edo
Burst EDO
{Burst Extended Data Out DRAM}

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
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] One of the sets 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 data bus, address bus and control signals, despite their names, really constitute a single bus since each is useless without the others.
The width of the data bus, i.e. the number of parallel connectors, and its {clock rate} determine its data rate (the number of {bytes} per second which it can carry). This is one of the factors limiting a computer's performance. Most current {microprocessors} have 32-bit busses both internally and externally. 100 or 133 {megahertz} bus clock rates are common. The bus clock is typically slower than the processor clock.
Some processors have internal busses which are wider than their external busses (usually twice the width) since the width of the internal bus affects the speed of all operations and has less effect on the overall system cost than the width of the external bus.
Various bus designs have been used in the {PC}, including {ISA}, {EISA}, {Micro Channel}, {VL-bus} and {PCI}. Other peripheral busses are NuBus, TURBOchannel, VMEbus, MULTIBUS and STD bus.
Some {networks} are implemented as a {bus} at the {physical layer}, e.g. {Ethernet} - a one-bit bus operating at 10 (or later 100) {megabits per second}.
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://www.foldoc.org/pub/omnibus.html)}.
(2000-03-20)

bus error
[processor] A fatal failure in the execution of a {machine language} instruction resulting from the {processor} detecting an anomalous condition on its {bus}. Such conditions include invalid address alignment (accessing a multi-byte number at an odd address), accessing a {physical address} that does not correspond to any device, or some other device-specific hardware error. A bus error triggers a processor-level {exception} which {Unix} translates into a "SIGBUS" {signal} which, if not caught, will terminate the current process.
(2000-04-04)

bus master
[architecture] The device in a computer which is driving the {address bus} and bus control signals at some point in time. In a simple architecture only the (single) {CPU} can be bus master but this means that all communications between ("slave") I/O devices must involve the CPU. More sophisticated architectures allow other capable devices (or multiple CPUs) to take turns at controling the bus. This allows, for example, a {network controller} card to access a {disk controller} directly while the CPU performs other tasks which do not require the bus, e.g. fetching code from its {cache}.
Note that any device can drive data onto the {data bus} when the CPU reads from that device, but only the bus master drives the {address bus} and control signals.
{Direct Memory Access} is a simple form of bus mastering where the I/O device is set up by the CPU to read from or write to one or more contiguous blocks of memory and then signal to the CPU when it has done so. Full bus mastering (or "First Party DMA", "bus mastering DMA") implies that the I/O device is capable of performing more complex sequences of operations without CPU intervention (e.g. servicing a complete {NFS} request). This will normally mean that the I/O device contains its own processor or {microcontroller}.
See also {distributed kernel}.
(1996-08-26)

bus mastering
{bus master}

bus network
[networking] A network in which all {nodes} are connected to a single wire (the bus). The two endpoints will have a {terminator}. Bus networks typically use {CSMA/CD} techniques to determine which node transmits data on the wire at any given time.
Examples are {Ethernet} {10Base2} and {10Base5} networks.
See also {star network}, {ring network}.
(1999-11-28)

bush vannevar
Bush, Vannevar
{Vannevar Bush}

business application programming interface
Business Application Programming Interface
[business, application, programming] (BAPI) /bap'ee/ A set of {methods} provided by an {SAP} business {object}.
Release 4.0 of {SAP AG}'s {R/3} system supports {object-oriented programming} via an interface defined in terms of {objects} and {methods} called BAPIs. For example if a material object provides a function to check availability, the corresponding SAP business object type "Material" might provide a BAPI called "Material.CheckAvailability".
The definitions of SAP business objects and their BAPIs are kept in an SAP business object repository. SAP provide {classes} and {libraries} to enable a programming team to build SAP applications that use business objects and BAPIs. Supported environments include {COM} and {Java}.
The {Open BAPI Network (http://www.sap.com/solutions/technology/bapis/index.htm)}. gives background information and lists objects and BAPIs.
(2002-08-30)

business process reengineering
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
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)

business to business
[business] (B2B) {Electronic commerce} between businesses, as opposed to between a consumer and a business (B2C).
While derived from "business to business", "B2B" is narrower in meaning.
(2001-03-26)

busy beaver
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)

busyloop
busy-loop
{tight loop}

busywait
busy-wait
[programming] To wait for an {event} by {spinning} through a {tight loop} or timed-delay loop that {polls} for the event on each pass, as opposed to setting up an {interrupt handler} and continuing execution on another part of the task. This is a wasteful technique, best avoided on {time-sharing} systems where a busy-waiting program may {hog} the processor.
[{Jargon File}]
(1999-06-10)

butterfly common lisp
Butterfly Common LISP
A parallel version of {Common LISP} for the {BBN Butterfly} computer.

butterfly scheme
Butterfly Scheme
A parallel version of {Scheme} for the {BBN Butterfly} computer.

button
1. [electronics] {push-button}.
2. [operating system] A graphical representation of an electrical {push-button} appearing as part of a {graphical user interface}. Moving the {mouse pointer} over the graphical button and pressing one of the physical mouse buttons starts some software action such as closing a window or deleting a file.
See also {radio button}.
(1997-07-07)

buzz
1. Of a program, to run with no indication of progress and perhaps without guarantee of ever finishing; especially said of programs thought to be executing a {tight loop} of code. A program that is buzzing appears to be {catatonic}, but never gets out of catatonia, while a buzzing loop may eventually end of its own accord. "The program buzzes for about 10 seconds trying to sort all the names into order." See {spin}; see also {grovel}.
2. [ETA Systems] To test a wire or printed circuit trace for continuity by applying an AC rather than DC signal. Some wire faults will pass DC tests but fail a buzz test.
3. To process an {array} or list in sequence, doing the same thing to each element. "This loop buzzes through the tz array looking for a terminator type."
[{Jargon File}]

bv
[networking] The {country code} for Bouvet Island.
(1999-01-27)

bw
[networking] The {country code} for Botswana.
(1999-01-27)

bwbasic
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
BWQ
[IBM] Buzz Word Quotient. The percentage of buzzwords in a speech or documents. Usually roughly proportional to {bogosity}. See {TLA}.
[{Jargon File}]

by
[networking] The {country code} for Belarus.
(1999-01-27)

by hand
1. Said of an operation (especially a repetitive, trivial, and/or tedious one) that ought to be performed automatically by the computer, but which a hacker instead has to step tediously through. "My mailer doesn't have a command to include the text of the message I'm replying to, so I have to do it by hand." This does not necessarily mean the speaker has to retype a copy of the message; it might refer to, say, dropping into a subshell from the mailer, making a copy of one's mailbox file, reading that into an editor, locating the top and bottom of the message in question, deleting the rest of the file, inserting "]" characters on each line, writing the file, leaving the editor, returning to the mailer, reading the file in, and later remembering to delete the file. Compare {eyeball search}.
2. By extension, writing code which does something in an explicit or low-level way for which a presupplied library routine ought to have been available. "This cretinous {B-tree} library doesn't supply a decent iterator, so I'm having to walk the trees by hand."
[{Jargon File}]

byacc
{Berkeley Yacc}

byte
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@graceland.edu] adds:
I am sure I read in a mid-1970's brochure by IBM that outlined the history of computers that BYTE was an acronym that stood for "Bit asYnchronous Transmission E__?__" which related to width of the bus between the Stretch CPU and its CRT-memory (prior to Core).
Terry Carr [bear@mich.com] says:
In the early days IBM taught that a series of bits transferred together (like so many yoked oxen) formed a Binary Yoked Transfer Element (BYTE).
[True origin? First 8-bit byte architecture?]
See also {nibble}, {octet}.
[{Jargon File}]
(2003-09-21)

byte compiler
{byte-code compiler}

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

bytecode compiler
byte-code compiler
[programming, tool] A {compiler} which outputs a program in some kind of {byte-code}.
Compare: {byte-code interpreter}.
(1995-11-04)

bytecode interpreter
byte-code interpreter
[software] A program that {executes} a {byte code} program.
An example is the {Java Virtual Machine}.
(1999-11-28)

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}.
[{Jargon File}]

byzantine
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
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.
[{Jargon File}]
(1994-11-11)

c
C#
[language] /see sharp/ An {object-oriented} language devised and promoted by {Microsoft}, intended to replace {Java}, which it strongly resembles.
{(http://csharpindex.com/)}.
(2001-10-04)

c
C
[language] A programming language designed by {Dennis Ritchie} at {AT&T} {Bell Labs} ca. 1972 for systems programming on the {PDP-11} and immediately used to reimplement {Unix}.
It was called "C" because many features derived from an earlier compiler named "{B}". In fact, C was briefly named "NB". B was itself strongly influenced by {BCPL}. Before {Bjarne Stroustrup} settled the question by designing {C++}, there was a humorous debate over whether C's successor should be named "D" or "P" (following B and C in "BCPL").
C is terse, low-level and permissive. It has a {macro preprocessor}, {cpp}.
Partly due to its distribution with {Unix}, C became immensely popular outside {Bell Labs} after about 1980 and is now the dominant language in systems and {microcomputer} applications programming. It has grown popular due to its simplicity, efficiency, and flexibility. C programs are often easily adapted to new environments.
C is often described, with a mixture of fondness and disdain, as "a language that combines all the elegance and power of {assembly language} with all the readability and maintainability of assembly language".
Ritchie's original C, known as {K&R C} after Kernighan and Ritchie's book, has been {standard}ised (and simultaneously modified) as {ANSI C}.
See also {ACCU}, {ae}, {c68}, {c386}, {C-Interp}, {cxref}, {dbx}, {dsp56k-gcc}, {dsp56165-gcc}, {gc}, {GCT}, {GNU C}, {GNU superoptimiser}, {Harvest C}, {malloc}, {mpl}, {Pthreads}, {ups}.
[{Jargon File}]
(1996-06-01)

c
(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).
[{Jargon File}]
(1995-02-03)

c
C*
[language, parallel] An {object-oriented}, {data-parallel} superset of {ANSI C} with synchronous {semantics}, for the {Connection Machine}, designed by {Thinking Machines}, 1987. C* adds a "domain" data type and a selection statement for parallel execution in domains.
An unimplemented language called "{Parallel C}" [which one?] influenced the design of {C*}. {Dataparallel-C} was based on {C*}.
Current version: 6.x, as of 1993-07-27.
["C*: An Extended C Language for Data Parallel Programming", J.R. Rose et al, Proc Second Intl Conf on Supercomputing, L.P. Kartashev et al eds, May 1987, pp 2-16].
["C* Programming Manual", Thinking Machines Corp, 1986].
[{Jargon File}]
(2000-11-14)

c
C+-
[language] (C More or Less) A subject-oriented language (SOL). Each C+- {class} instance, known as a subject, holds hidden {members}, known as prejudices, agendas or undeclared preferences, which are impervious to outside messages; as well as public members, known as boasts or claims.
The following {C} {operators} are overridden as shown:
] better than [ worse than ]] way better than [[ forget it ! not on your life == comparable, other things being equal !== get a life, guy!
C+- is {strongly typed}, based on stereotyping and self-righteous logic. The {Boolean} {variables} TRUE and FALSE (known as constants in other, less realistic languages) are supplemented with CREDIBLE and DUBIOUS, which are fuzzier than Zadeh's traditional fuzzy categories. All Booleans can be declared with the modifiers strong and weak. Weak implication is said to "preserve deniability" and was added at the request of the DoD to ensure compatibility with future versions of {Ada}. Well-formed falsehoods (WFFs) are {assignment}-compatible with all Booleans. What-if and why-not interactions are aided by the special conditional EVENIFNOT X THEN Y.
C+- supports {information hiding} and, among {friend classes} only, rumor sharing. Borrowing from the {Eiffel} lexicon, non-friend classes can be killed by arranging contracts. Note that friendships are {intransitive}, {volatile} and non-{Abelian}.
{Operator precedence} rules can be suspended with the directive #pragma dwim, known as the "{Do what I mean}" {pragma}.
{ANSIfication} will be firmly resisted. C+-'s slogan is "Be Your Own Standard."
[{Jargon File}]
(1999-06-15)

c
C++
[language] One of the most used {object-oriented} languages, a superset of {C} developed primarily by {Bjarne Stroustrup} [bs@alice.att.com] at {AT&T} {Bell Laboratories} in 1986.
In C++ a {class} is a user-defined {type}, syntactically a {struct} with {member functions}. {Constructors} and {destructors} are member functions called to create or destroy {instances}. A {friend} is a nonmember function that is allowed to access the private portion of a class. C++ allows {implicit type conversion}, {function inlining}, {overloading} of operators and function names, and {default function arguments}. It has {streams} for I/O and {references}.
C++ 2.0 (May 1989) introduced {multiple inheritance}, {type-safe linkage}, pointers to members, and {abstract classes}.
C++ 2.1 was introduced in ["Annotated C++ Reference Manual", B. Stroustrup et al, A-W 1990].
{MS-DOS (ftp://grape.ecs.clarkson.edu/pub/msdos/djgpp/djgpp.zip)}, {Unix ANSI C++ (ftp://gnu.org/pub/gnu/g++-1.39.0.tar.Z)} - X3J16 committee. (They're workin' on it).
See also {cfront}, {LEDA}, {uC++}.
{Usenet} newsgroup: {news:comp.lang.c++}.
["The C++ Programming Language", Bjarne Stroustrup, A-W, 1986].
(1996-06-06)

c
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.
{Unir Tech} has the exclusive license from Bell Labs to distribute C+@. Unfortunately Unir is owned and operated by well-known anti-{IETF} ranter, Jim Fleming, which may have had something to do with the language's rapid disappearence from the radar screen.
It runs under {SunOS} and compiles to {Vcode}.
E-mail: Jim Vandendorpe [jimvan@iexist.att.com].
["A Dynamic C-Based Object-Oriented System for Unix", S. Engelstad et al, IEEE Software 8(3):73-85 (May 1991)].
["The C+@ Programming Language", J. Fleming, Dr Dobbs J, Oct 1993, pp.24-32].
[{Jargon File}]
(2002-05-18)

c ansi
C (ANSI)
{ANSI C}

c beautifier
C Beautifier
(cb) A {Unix} tool for reformatting {C} {source} code.
{Unix manual page}: cb(1).

c language integrated production system
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)

c preprocessor
C preprocessor
[tool, programming] (cpp) The standard {Unix} {macro}-expansion utility run as the first phase of the {C} compiler, {cc}. Cpp interprets lines beginning with "#" such as
#define BUFFER_SIZE 256
as a textual {assignment} giving the symbol BUFFER_SIZE a value "256". Symbols defined with cpp are traditionally given upper case names to distinguish them from C identifiers. This symbol can be used later in the input, as in
char input_buffer[BUFFER_SIZE];
This use of cpp to name constants, rather than writing these {magic numbers} inline, makes a program easier to read and maintain, especially if there is more than one occurrence of BUFFER_SIZE all of which must all have the same value.
Cpp macros can have parameters:
#define BIT(n) (1[[(n))
This can be used with any appropriate actual argument:
msb = BIT(nbits-1);
Note the parentheses around the "n" in the definition of BIT. Without these, operator precedence might mean that the expression substituted in place of n might not be interpreted correctly (though the example above would be OK).
Cpp also supports conditional compilation with the use of
#ifdef SYMBOL ... #else ... #endif and #if EXPR ... #else ... #endif
constructs, where SYMBOL is a Cpp symbol which may or may not be defined and EXPR is an arithmetic expression involving only Cpp symbols, constants and C operators which Cpp can evaluate to a constant at {compile time}.
{Decus cpp} is a free implementation for {VMS}.
The most widely used C preprocessor today is the {GNU} CPP, distributed as part of {GCC}.
(2001-12-31)

c programmers disease
C Programmer's Disease
[programming] The tendency of the undisciplined {C} programmer to set arbitrary but supposedly generous static limits on table sizes (defined, if you're lucky, by constants in header files) rather than taking the trouble to do proper dynamic storage allocation. If an application user later needs to put 68 elements into a table of size 50, the afflicted programmer reasons that he or she can easily reset the table size to 68 (or even as much as 70, to allow for future expansion) and recompile. This gives the programmer the comfortable feeling of having made the effort to satisfy the user's (unreasonable) demands, and often affords the user multiple opportunities to explore the marvellous consequences of {fandango on core}. In severe cases of the disease, the programmer cannot comprehend why each fix of this kind seems only to further disgruntle the user.
[{Jargon File}]
(2001-12-31)

c sharp
C sharp
{C#}

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)

c with classes
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)].

c1 security
C1 security
{Orange Book}

c10
C-10
An improved version of {COLINGO}.
[Sammet 1969, p.702].
(1994-10-28)

c2 security
C2 security
{Orange Book}

c2man
[tool] An automatic {documentation} extraction tool by Graham Stoney [gstoney@cochlear.com.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 the programmer to use a typesetting language. Acceptable documentation can often be generated from existing code with no modifications.
c2man supports both {K&R} and {ISO}/{ANSI C} coding styles. Output can be in {nroff} -man, {Texinfo} or {LaTeX} format. It {automagically} documents {enum} parameter and return values, it handles both {C} (/* */) and {C++} (//) style comments, but not C++ grammar (yet). It requires {yacc}, {byacc} or {bison} for syntax analysis; {lex} or {flex} for {lexical analysis} and {nroff}, {groff}, {texinfo} or {LaTeX} to format the output. It runs under {Unix}, {OS/2} and {MS-DOS}.
Version 2.0 patchlevel 25 (1995-10-25).
{Washington FTP (ftp://ftp.wustl.edu/usenet/comp.sources.reviewed/volume03/)}. {Stuttgart FTP
(ftp://ftp.informatik.uni-stuttgart.de/pub/archive/comp.sources/reviewed/)}. {Patches (ftp://lth.se/pub/netnews/sources.bugs/volume93/sep/)}.
Patches posted to {Usenet} newsgroups {news:comp.sources.bugs} and {news:comp.sources.reviewed}.
(2003-05-02)

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
C5
An {OPS5} implementation in {C}.

c64
C64
{Commodore 64}

c68
{c386} also produces {68000} code.

ca
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.
A cable modem can transfer data at 500 {kbps} or higher, compared with 28.8 kbps for common telephone line modems, but the actual transfer rates may be lower depending on the number of other simultaneous users on the same cable.
Industry pundits often point out that the cable system still does not have the {bandwidth} or service level in many areas to make this feasible. For example, it has to be capable of two-way communication.
See also: {DOCSIS}.
(2000-12-19)

cache
[memory management] /kash/ A small fast memory holding recently accessed data, designed to speed up subsequent access to the same data. Most often applied to processor-memory access but also used for a local copy of data accessible over a network etc.
When data is read from, or written to, {main memory} a copy is also saved in the cache, along with the associated main memory address. The cache monitors addresses of subsequent reads to see if the required data is already in the cache. If it is (a {cache hit}) then it is returned immediately and the main memory read is aborted (or not started). If the data is not cached (a {cache miss}) then it is fetched from main memory and also saved in the cache.
The cache is built from faster memory chips than main memory so a cache hit takes much less time to complete than a normal memory access. The cache may be located on the same {integrated circuit} as the {CPU}, in order to further reduce the access time. In this case it is often known as {primary cache} since there may be a larger, slower {secondary cache} outside the CPU chip.
The most important characteristic of a cache is its {hit rate} - the fraction of all memory accesses which are satisfied from the cache. This in turn depends on the cache design but mostly on its size relative to the main memory. The size is limited by the cost of fast memory chips.
The hit rate also depends on the access pattern of the particular program being run (the sequence of addresses being read and written). Caches rely on two properties of the access patterns of most programs: temporal locality - if something is accessed once, it is likely to be accessed again soon, and spatial locality - if one memory location is accessed then nearby memory locations are also likely to be accessed. In order to exploit spatial locality, caches often operate on several words at a time, a "{cache line}" or "cache block". Main memory reads and writes are whole {cache lines}.
When the processor wants to write to main memory, the data is first written to the cache on the assumption that the processor will probably read it again soon. Various different policies are used. In a {write-through} cache, data is written to main memory at the same time as it is cached. In a {write-back} cache it is only written to main memory when it is forced out of the cache.
If all accesses were writes then, with a write-through policy, every write to the cache would necessitate a main memory write, thus slowing the system down to main memory speed. However, statistically, most accesses are reads and most of these will be satisfied from the cache. Write-through is simpler than write-back because an entry that is to be replaced can just be overwritten in the cache as it will already have been copied to main memory whereas write-back requires the cache to initiate a main memory write of the flushed entry followed (for a processor read) by a main memory read. However, write-back is more efficient because an entry may be written many times in the cache without a main memory access.
When the cache is full and it is desired to cache another line of data then a cache entry is selected to be written back to main memory or "flushed". The new line is then put in its place. Which entry is chosen to be flushed is determined by a "{replacement algorithm}".
Some processors have separate instruction and data caches. Both can be active at the same time, allowing an instruction fetch to overlap with a data read or write. This separation also avoids the possibility of bad {cache conflict} between say the instructions in a loop and some data in an array which is accessed by that loop.
See also {direct mapped cache}, {fully associative cache}, {sector mapping}, {set associative cache}.
(1997-06-25)

cache block
{cache line}

cache coherency
[storage] (Or "cache consistency") /kash koh-heer'n-see/ The synchronisation of data in multiple {caches} such that reading a memory location via any cache will return the most recent data written to that location via any (other) cache.
Some {parallel processors} do not cache accesses to {shared memory} to avoid the issue of cache coherency. If caches are used with shared memory then some system is required to detect when data in one processor's cache should be discarded or replaced because another processor has updated that memory location. Several such schemes have been devised.
(1998-11-10)

cache conflict
[storage] A sequence of accesses to memory repeatedly overwriting the same {cache} entry. This can happen if two blocks of data, which are mapped to the same set of cache locations, are needed simultaneously.
For example, in the case of a {direct mapped cache}, if {arrays} A, B, and C map to the same range of cache locations, thrashing will occur when the following loop is executed:
for (i=1; i[n; i++) C[i] = A[i] + B[i];
Cache conflict can also occur between a program loop and the data it is accessing.
See also {ping-pong}.
(1997-01-21)

cache consistency
{cache coherency}

cache hit
[storage] A request to read from memory which can satisfied from the {cache} without using the {main memory}.
Opposite: {cache miss}.
(1997-01-21)

cache line
[storage] (Or cache block) The smallest unit of memory than can be transferred between the {main memory} and the {cache}.
Rather than reading a single word or byte from main memory at a time, each cache entry is usually holds a certain number of words, known as a "cache line" or "cache block" and a whole line is read and cached at once. This takes advantage of the principle of locality of reference: if one location is read then nearby locations (particularly following locations) are likely to be read soon afterward. It can also take advantage of {page-mode} {DRAM} which allows faster access to consecutive locations.
(1997-01-21)

cache memory
{cache}

cache miss
[storage] A request to read from memory which cannot be satisfied from the {cache}, for which the {main memory} has to be consulted.
Opposite: {cache hit}.
(1997-01-21)

cache on a stick
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
CACI
A company developing and marketing {SIMSCRIPT}, {MODSIM} and other {simulation} software products.
Telephone: +1 (619) 457-9681.
(1994-09-22)

cacm
CACM
{Communications of the ACM}

cad
CAD
{Computer Aided Design}

cadcam
CAD/CAM
{Computer Aided Design}/Computer Aided Manufacturing.

cadd
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
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
CADET
Computer Aided Design Experimental Translator.
[Sammet 1969, p. 683].
(1994-11-29)

cadre
CADRE
[company] The US {software engineering} vendor which merged with {Bachman Information Systems} to form {Cayenne Software} in July 1996.
(1998-02-08)

cae
CAE
1. [operating system] {Common Applications Environment}.
2. [application] {Computer Aided Engineering}.
(1999-09-17)

caf
CAF
{constant applicative form}

cafe
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
CAGE
Early system on IBM 704. Listed in CACM 2(5):16 (May 1959).

cai
CAI
{Computer-Aided Instruction}

cairo
Cairo
{Windows NT 4}

cais
CAIS
{Common APSE Interface Specification}

caisa
CAIS-A
Common APSE Interface Set A
DoD-STD-1838A.

caise
CAiSE
Conference on Advanced Information Systems Engineering.

cajole
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
CAL
1. {Computer Assisted Learning}.
2. {Course Author Language}.
(1997-03-21)

calc
Calc
[tool, mathematics] An extensible, advanced desk calculator and mathematical tool written in {Emacs Lisp} by Dave Gillespie [daveg@synaptics.com]. Calc runs as part of {GNU Emacs}. You can use Calc as only a simple four-function calculator, but it also provides additional features including choice of algebraic or {RPN} ({stack}-based) entry, logarithms, trigonometric and financial functions, {arbitrary precision}, complex numbers, vectors, matrices, dates, times, infinities, sets, algebraic simplification, differentiation, and integration.
Latest version: 2.02, as of 1994-11-08.
FTP calc-2.02.tar.z from your nearest {GNU archive site}.
(2000-10-20)

calculator
{bitty box}

calculus of communicating systems
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 API
{Calendar Application Programming Interface}

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
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
Calico
{C+@}

california state university san marcos
California State University San Marcos
(CSUSM)
{Home (http://coyote.csusm.edu/)}.
(1994-12-21)

call unix
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)

callback
1. [programming] A scheme used in {event-driven} programs where the program registers a {subroutine} (a "callback handler") to handle a certain {event}. The program does not call the handler directly but when the event occurs, the {run-time system} calls the handler, usually passing it arguments to describe the event.
2. [communications, security] A {user authentication} scheme used by some computers running {dial-up} services. The user dials in to the computer and gives his {user name} and {password}. The computer then hangs up the connection and uses an {auto-dial} {modem} to call back to the user's registered telephone number. Thus, if an unauthorised person discovers a user's password, the callback will go, not to him, but to the owner of that login who will then know that his account is under attack.
However, some {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.
3. [communications] {cost control callback}.
(2003-07-13)

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

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

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

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

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

callcc
call/cc
{call-with-current-continuation}

callee
[programming] The {function} or {subroutine} being called by the {caller}.
(2001-05-09)

caller id
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)

calllevel interface
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)

callware
Callware
[company] The developers of {Phonetastic}.
(1996-12-08)

callwithcurrentcontinuation
call-with-current-continuation
[Lisp, programming] (call/cc) A {Lisp} control function that takes a function f as its argument and calls f, passing it the current {continuation}, which is itself a function, k. k, which represents the context of the call to call/cc, takes the result of call/cc (which is the result of f) and returns the final result of the whole program. Thus if, for example, the final result is to print the value returned by call/cc then anything passed to k will also be printed.
E.g, in {Scheme}:
(define (f k) (k 1) (k 2) 3)
(display (call-with-current-continuation f))
Will display 1.
(2001-04-27)

cals
CALS
Computer-Aided Acquisition and Logistics Support: a DoD standard for electronic exchange of data with commercial suppliers.

cam
CAM
1. [storage, architecture] {content addressable memory}.
2. [application] {computer aided manufacturing}.
(1999-09-17)

cam6
CAM-6
Software for running {cellular automata}. CAM-6 has been implemented in hardware as {CAM-PC}.
(1995-04-21)

camal
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
Cambridge Lisp
A flavour of Lisp using BCPL. Sources owned by Fitznorman partners.

camelot library
Camelot Library
[library]
["The Camelot Library", J. Bloch, in "Guide to the Camelot Distributed Transaction Facility: Release I", A.Z. Spector et al eds, CMU 1988, pp. 29-62].
[What is it?]
(1995-04-19)

camera ready
[publication] A final edition of a document or graphic (e.g. a newspaper advertisement or a technical paper for a journal) that is of suitable quality for mass reproduction by making printing plates from the negatives by photoengraving.
(1996-11-15)

camil
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
CAML
[language]
1. A language for preparation of animated movies. 1976.
(1994-11-09)
2. {Categorical Abstract Machine Language}.
(2000-07-06)

caml light
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.
The latest version, as of April 2003, is 0.75 and runs on {Unix}, {Macintosh} and {Windows}.
The development of Caml Light has been stopped; current development is on {Objective Caml}.
{(http://caml.inria.fr/distrib-caml-light-eng.html)}. {(ftp://ftp.inria.fr/lang/caml-light/)}.
E-mail: [caml@inria.fr].
Mailing list: [caml-list@inria.fr].
{Usenet} newsgroup: {news:comp.lang.ml}.
(2003-04-12)

campc
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
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
CAN
{Cancel}

canada
Canada
Country with {domain} "ca".
(1995-04-06)

cancel
Cancel
[character] (CAN, Control-X) {ASCII} character 24.
(1996-06-28)

cancelbunny
Cancelbunny
{Cancelpoodle}

cancelm00se
Cancelm00se
{Cancelmoose}

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
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
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}]
[{Jargon File}]
(2001-06-22)

canonical
(Historically, "according to religious law")
1. [mathematics] A standard way of writing a formula. Two formulas such as 9 + x and x + 9 are said to be equivalent because they mean the same thing, but the second one is in "canonical form" because it is written in the usual way, with the highest power of x first. Usually there are fixed rules you can use to decide whether something is in canonical form. Things in canonical form are easier to compare.
2. [jargon] The usual or standard state or manner of something. The term acquired this meaning in computer-science culture largely through its prominence in {Alonzo Church}'s work in computation theory and {mathematical logic} (see {Knights of the Lambda-Calculus}).
Compare {vanilla}.
This word has an interesting history. Non-technical academics do not use the adjective "canonical" in any of the senses defined above with any regularity; they do however use the nouns "canon" and "canonicity" (not "canonicalness"* or "canonicality"*). The "canon" of a given author is the complete body of authentic works by that author (this usage is familiar to Sherlock Holmes fans as well as to literary scholars). "The canon" is the body of works in a given field (e.g. works of literature, or of art, or of music) deemed worthwhile for students to study and for scholars to investigate.
The word "canon" derives ultimately from the Greek "kanon" (akin to the English "cane") referring to a reed. Reeds were used for measurement, and in Latin and later Greek the word "canon" meant a rule or a standard. The establishment of a canon of scriptures within Christianity was meant to define a standard or a rule for the religion. The above non-technical academic usages stem from this instance of a defined and accepted body of work. Alongside this usage was the promulgation of "canons" ("rules") for the government of the Catholic Church. The usages relating to religious law derive from this use of the Latin "canon". It may also be related to arabic "qanun" (law).
Hackers invest this term with a playfulness that makes an ironic contrast with its historical meaning. A true story: One Bob Sjoberg, new at the {MIT AI Lab}, expressed some annoyance at the incessant use of jargon. Over his loud objections, {GLS} and {RMS} made a point of using as much of it as possible in his presence, and eventually it began to sink in. Finally, in one conversation, he used the word "canonical" in jargon-like fashion without thinking. Steele: "Aha! We've finally got you talking jargon too!" Stallman: "What did he say?" Steele: "Bob just used "canonical" in the canonical way."
Of course, canonicality depends on context, but it is implicitly defined as the way *hackers* normally expect things to be. Thus, a hacker may claim with a straight face that "according to religious law" is *not* the canonical meaning of "canonical".
(2002-02-06)

canonical encoding rules
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)

cant happen
can't happen
[programming] The traditional program comment for code executed under a condition that should never be true, for example a file size computed as negative. Often, such a condition being true indicates data corruption or a faulty {algorithm}; it is almost always handled by emitting a fatal error message and terminating or crashing, since there is little else that can be done.
Some case variant of "can't happen" is also often the text emitted if the "impossible" error actually happens. Although "can't happen" events are genuinely infrequent in production code, programmers wise enough to check for them habitually are often surprised at how frequently they are triggered during development and how many headaches checking for them turns out to head off.
See also {firewall code}, {professional programming}.
[{Jargon File}]
(1996-05-10)

cantor
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
CAP
1. [networking] {Columbia AppleTalk Package}.
2. [communications] {Carrierless Amplitude/Phase Modulation}.
3. [networking] {Competitive Access Provider}

capabilities maturity model
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.
The levels - focii - and key process areas are:
Level 1 Initial - Heroes - None.
Level 2 Repeatable - Project Management - Software Project Planning, Software Project Tracking and Oversight, Software Subcontract Management, Software Quality Assurance, Software Configuration Management, Requirements Management.
Level 3 Defined - Engineering Process - Organisation Process Focus, Organisation Process Definition, Peer Reviews, Training Program, Inter-group Coordination, Software Product Engineering, Integrated Software Management.
Level 4 Managed - Product and Process Quality - Software Quality Management, Quantitative Process Management.
Level 5 Optimising - Continuous Improvement - Process Change Management, Technology Change Management, Defect Prevention.
[Reference?]
(2001-04-28)

capability
[operating system, security] An {operating system} security or access control model where specific types of access to a specific object are granted by giving a process this data structure or {token}.
The token may be unforgeable (typically by using {encryption} or hardware "tagged" memory). Capabilities are used in OSes such as {Hydra}, {KeyKOS}, {EROS}, {Chorus}/{Mix}, and the {Stanford V system}. Similar to {Kerberos}, but in an OS context.
Compare {access control list}.
(1998-03-08)

capability maturity model
Capability Maturity Model
{Capabilities Maturity Model}

capacitor
[electronics] An electronic device that can store electrical charge. The charge stored Q in Coulombs is related to the capacitance C in Farads and the voltage V across the capacitor in Volts by Q = CV.
The basis of a {dynamic RAM} cell is a capacitor. They are also used for power-supply smoothing (or "decoupling"). This is especially important in digital circuits where a digital device switching between states causes a sudden demand for current. Without sufficient local power supply decoupling, this current "spike" cannot be supplied directly from the power supply due to the inductance of the connectors and so will cause a sharp drop in the power supply voltage near the switching device. This can cause other devices to malfunction resulting in hard to trace {glitch}es.
(1995-04-12)

capacity
[communications] The maximum possible {data transfer rate} of a communications channel under ideal conditions. The total capacity of a channel may be shared between several independent data streams using some kind of {multiplexing}, in which case, each stream's data rate may be limited to a fixed fraction of the total capacity.
(2001-05-22)

capi
CAPI
1. {Calendar Application Programming Interface}.
2. [cryptography] {Cryptographic Application Programming Interface}.
3. [networking] {Common ISDN Application Programming Interface}.
(1998-09-07)

capn crunch
Cap'n Crunch
{Captain Crunch}

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

card walloper
[jargon] An {EDP} programmer who grinds out {batch programs} that do things like print people's paychecks. Compare {code grinder}.
See also {punched card}, {eighty-column mind}.
[{Jargon File}]
(2003-09-20)

cardbox for windows
Cardbox for Windows
[database] A database handling program, especially useful for scholars and librarians.
[Details? Features? Developer? URL?]
(1997-05-14)

cardbus
Cardbus
[hardware] The 32-bit version of the {PCMCIA} (PC Card) {bus}.
[Spec?]
(1996-08-20)

cardinal number
The {cardinality} of some set.

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)

cards
CARDS
Central Archive for Reusable Defense Software of the DoD.

career limiting move
Career Limiting Move
[jargon] (CLM, Sun) Any action endangering one's future prospects of getting plum projects and raises, and possibly one's job. E.g. "His Halloween costume was a parody of his manager. He won the prize for "best CLM"." A severe bug discovered by a customer might be a "CLM bug".
(2000-08-09)

caret
^
Common: hat; control; uparrow; caret; {ITU-T}: circumflex. Rare: chevron; {INTERCAL}: shark (or shark-fin); to the ("to the power of"); fang; pointer (in Pascal).

careware
/keir'weir/ (Or "{charityware}") {Shareware} for which either the author suggests that some payment be made to a nominated charity or a levy directed to charity is included on top of the distribution charge.
Compare {crippleware}.
[{Jargon File}]
(1994-12-16)

cargo cult programming
[programming, humour] A style of (incompetent) programming dominated by ritual inclusion of code or program structures that serve no real purpose. A cargo cult programmer will usually explain the extra code as a way of working around some bug encountered in the past, but usually neither the bug nor the reason the code apparently avoided the bug was ever fully understood (compare {shotgun debugging}, {voodoo programming}).
The term "cargo cult" is a reference to aboriginal religions that grew up in the South Pacific after World War II. The practices of these cults centre on building elaborate mockups of aeroplanes and military style landing strips in the hope of bringing the return of the god-like aeroplanes that brought such marvelous cargo during the war. Hackish usage probably derives from Richard Feynman's characterisation of certain practices as "cargo cult science" in his book "Surely You're Joking, Mr. Feynman" (W. W. Norton & Co, New York 1985, ISBN 0-393-01921-7).
[{Jargon File}]
(2002-05-28)

caribou codeworks
Caribou CodeWorks
[company] The company which sells {QTRADER}.
Director of Marketing: Norm Larsen [wwcoinc@winternet.com].
(1995-11-05)

carl friedrich gauss
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
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
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)

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)

carrierless amplitudephase modulation
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)

cartesian coordinates
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
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
CAS
{Column Address Strobe}

cas 8051 assembler
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}, {Sun-4}. (July 1993).
Version 1.2. Assembler/linker, disassembler, documentation, examples.
{(ftp://lyman.pppl.gov/pub/8051/assem)}, {(ftp://nic.funet.fi/pub/microprocs/MCS-51/csd4-archive/assem)}. {Other software tools and applications (ftp://nic.funet.fi/pub/compilers/8051/)}.
(1995-01-26)

cascade
1. [compiler] A huge volume of spurious error-messages output by a {compiler} with poor {error recovery}. Too frequently, one trivial {syntax} error (such as a missing ")" or "}") throws the {parser} out of synch so that much of the remaining program text, whether correct or not, is interpreted as garbaged or ill-formed.
2. [messaging] A chain of {Usenet} followups, each adding some trivial variation or riposte to the text of the previous one, all of which is reproduced in the new message; an {include war} in which the object is to create a sort of communal graffito.
3. [networking] A collection of interconneced networking devices, typically {hub}s, that allows those devices to act together as a {logical} {repeater}.
[{Jargon File}]
(1997-07-17)

cascading style sheets
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.
{Home (http://www.w3.org/Style/CSS/)}.
(2000-07-26)

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
CASE
1. {Computer Aided Software Engineering}.
2. {Common Application Service Element}.

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.
[{Jargon File}]
(1996-03-01)

case based reasoning
[artificial intelligence] (CBR) A technique for problem solving which looks for previous examples which are similar to the current problem. This is useful where {heuristic} {knowledge} is not available.
There are many situations where experts are not happy to be questioned about their knowledge by people who want to write the knowledge in rules, for use in {expert systems}. In most of these situations, the natural way for an expert to describe his or her knowledge is through examples, stories or cases (which are all basically the same thing). Such an expert will teach trainees about the expertise by apprenticeship, i.e. by giving examples and by asking the trainees to remember them, copy them and adapt them in solving new problems if they describe situations that are similar to the new problems. CBR aims to exploit such knowledge.
Some key research areas are efficient indexing, how to define "similarity" between cases and how to use temporal information.
(1996-05-28)

case data interchange format
CASE Data Interchange Format
(CDIF) An emerging standard for interchange of data between {CASE} tools.
(1994-11-03)

case framework
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
Case Integration Services
[standard, programming] (CIS) A committee formed to discuss {CASE} tool integration standards related to {ATIS}.
(1994-10-25)

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
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
CASE tools
Software tools to help in the application of CASE methods to a software project.

casemethod
CASE*Method
An analysis and design method from {Oracle} targeted at information management applications.
(1994-10-28)

cashe
[spelling] It's spelled "{cache}".
(1996-12-13)

cast
CAST
{Computer Aided Software Testing}

cast
{explicit type conversion}

castersup mode
casters-up mode
[IBM, probably from slang belly up] Yet another synonym for "broken" or "down". Usually connotes a major failure. A system (hardware or software) which is "down" may be already being restarted before the failure is noticed, whereas one which is "casters up" is usually a good excuse to take the rest of the day off (as long as you're not responsible for fixing it).
[{Jargon File}]

casting the runes
[jargon] What a {guru} does when you ask him or her to run a particular program because it never works for anyone else; especially used when nobody can ever see what the guru is doing different from what J. Random Luser does.
Compare {incantation}, {runes}, {examining the entrails}; also see the {AI koan} about Tom Knight.
(1997-12-26)

cat
CAT
Common Abstract Tree Language. R. Voeller & Uwe Schmidt, U Kiel, Germany 1983. Universal intermediate language, used by Norsk Data in their family of compilers. "A Multi-Language Compiler System with Automatically Generated Codegenerators, U. Schmidt et al, SIGPLAN Notices 19(6):202-2121 (June 1984).
[{Jargon File}]

cat
[tool] (From "catenate") {Unix}'s command which copies one or more entire files to the screen or some other output sink without pause.
See also {dd}, {BLT}.
Among {Unix} fans, cat is considered an excellent example of user-interface design, because it delivers the file contents without such verbosity as spacing or headers between the files (the {pr} command can be used to do this), and because it does not require the files to consist of lines of text, but works with any sort of data.
Among Unix haters, cat is considered the {canonical} example of *bad* user-interface design, because of its woefully unobvious name. It is far more often used to {blast} a file to standard output than to concatenate files. The name "cat" for the former operation is just as unintuitive as, say, LISP's {cdr}.
Of such oppositions are {holy wars} made.
(1994-11-29)

cat 3
Cat 3
{Category 3}

cat 5
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}.
[{Jargon File}]

cate
CATE
Computer Aided Test Engineering: CASE methods applied to electronics testing and linked to CAE

categorical abstract machine language
Categorical Abstract Machine Language
[language] (Originally "CAML" - Categorical Abstract Machine Language) A version of {ML} by G. Huet, G. Cousineau, Ascander Suarez, Pierre Weis, Michel Mauny and others of {INRIA} and {ENS}. CAML is intermediate between {LCF ML} and {SML} [in what sense?]. It has {first-class} functions, {static type inference} with {polymorphic} types, user-defined {variant types} and {product types}, and {pattern matching}. It is built on a proprietary run-time system.
The CAML V3.1 implementation added {lazy} and {mutable} data structures, a "{grammar}" mechanism for interfacing with the {Yacc} {parser generator}, {pretty-printing} tools, high-performance {arbitrary-precision} arithmetic, and a complete library. CAML V3 is often nicknamed "heavy CAML", because of its heavy memory and CPU requirements compared to {Caml Light}.
in 1990 Xavier Leroy and Damien Doligez designed a new implementation called {Caml Light}, freeing the previous implementation from too many experimental high-level features, and more importantly, from the old Le_Lisp back-end.
Following the addition of a {native-code} compiler and a powerful {module} system in 1995 and of the {object} and {class} layer in 1996, the project's name was changed to {Objective Caml}.
["The CAML Reference Manual", P. Weis et al, TR INRIA-ENS, 1989].
(2003-04-12)

category
[theory] A category K is a collection of objects, obj(K), and a collection of {morphisms} (or "{arrows}"), mor(K) such that
1. Each morphism f has a "typing" on a pair of objects A, B written f:A-]B. This is read 'f is a morphism from A to B'. A is the "source" or "{domain}" of f and B is its "target" or "{co-domain}".
2. There is a {partial function} on morphisms called {composition} and denoted by an {infix} ring symbol, o. We may form the "composite" g o f : A -] C if we have g:B-]C and f:A-]B.
3. This composition is associative: h o (g o f) = (h o g) o f.
4. Each object A has an identity morphism id_A:A-]A associated with it. This is the identity under composition, shown by the equations id_B o f = f = f o id_A.
In general, the morphisms between two objects need not form a {set} (to avoid problems with {Russell's paradox}). An example of a category is the collection of sets where the objects are sets and the morphisms are functions.
Sometimes the composition ring is omitted. The use of capitals for objects and lower case letters for morphisms is widespread but not universal. Variables which refer to categories themselves are usually written in a script font.
(1997-10-06)

category 3
Category 3
[hardware] (Cat 3, or "voice grade") An American Standards Institute standard for {UTP} cables. Used, e.g., for {100BaseVG} network cabling.
(1998-06-30)

category 5
Category 5
[hardware] (Cat 5) An American Standards Institute standard for {UTP} cables. Used, e.g., for {100BaseTX} cabling.
(1998-06-30)

catelon
CA-Telon
[application] A {Computer Aided Software Engineering} (CASE) tool for designing, generating and maintaining {COBOL} and {PL/I} {application programs}. Telon was developed by {Pansophic} Systems who were bought by {Computer Associates} in 1991, whereupon it was renamed CA-Telon.
It supports high-level, non-{prodedural} design and prototyping, combined with automatic {code generation}. There are {mainframe} and {PC} versions. The generated COBOL applications can execute in {AIX}, {HP-UX}, {VSE}, {OS/400} for the {AS/400}, {PC-DOS}, or {OS/2}.
(2000-01-19)

cathode ray tube
[hardware] (CRT) An electrical device for displaying images by exciting phosphor dots with a scanned electron beam. CRTs are found in computer {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 toward the flat surface of the tube (the screen) which is covered with phosphor. When an electron strikes the phosphor, light is emitted. The electron beam is deflected by electromagnetic coils around the outside of the tube so that it scans across the screen, usually in horizontal stripes. This scan pattern is known as a {raster}. By controlling the current in the beam, the brightness at any particular point (roughly a "{pixel}") can be varied.
Different phosphors have different "{persistence}" - the length of time for which they glow after being struck by electrons. If the scanning is done fast enough, the eye sees a steady image, due to both the persistence of the phospor and of the eye itself. CRTs also differ in their {dot pitch}, which determines their spatial {resolution}, and in whether they use {interlace} or not.
(1994-11-17)

catia
CATIA
[tool, CAD, product] A {CAD}/CAM system produced by Dassault Systemes and sold by {IBM}. CATIA is used heavily in the car and aerospace industries. It runs on various {Unix} platforms and {Windows NT}.
{Home (http://www.catia.ibm.com/catmain.html)}.
(2002-06-12)

cationic cocktail
[hardware] (Or "Downy cocktail") Diluted fabric softener sprayed on computer room carpets to prevent static electricity from being built up by feet shuffling on carpet.
The {canonical} cationic cocktail is one part unscented liquid fabric softener (in the US, usually "Downy" brand) to five parts water.
"Cationic" is the chemical term for the most common active ingredient in fabric softeners. The use of the term "cocktail" may be influenced by its use in other jargons, especially pharmacological and chemical, to denote a mixture which, like cationic cocktail, typically contains no alcohol and would be unwise to drink.
(1998-04-04)

catlas
C/ATLAS
[language] A DoD test language. It is a variant of {ATLAS}.
(1995-05-01)

catnip
CATNIP
{Common Architecture for Next Generation Internet Protocol}

cato
CATO
Fortran-like CAI language for PLATO system on CDC 1604. "CSL PLATO System Manual", L.A. Fillman, U Illinois, June 1966.

cauchy sequence
Cauchy sequence
[mathematics] A sequence of elements from some {vector space} that converge and stay arbitrarily close to each other (using the {norm} definied for the space).
(2000-03-10)

causeeffect graphing
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
CAV
{Constant Angular Velocity}

cayenne software
Cayenne Software
[company] The company formed when {CADRE} merged with {Bachman Information Systems} in July 1996.
{Home (http://www.cayennesoft.com/)}.
[Details?]
(2001-04-30)

cayley
CAYLEY
[symbolic mathematics, tool] A {symbolic mathematics} system for {group theory} written by John Cannon of the {University of Sydney}, Australia in 1976.
Cayley was used at about 100 sites but has been superseded by a much more general system, {Magma}.
["An Introduction to the Group Theory Language CAYLEY", J. Cannon, Computational Group Theory, M.D. Atkinson ed, Academic Press 1984, pp. 148-183].
Current version: V3.7, for {Sun}, {Apollo}, {VAX}/{VMS}.
(2000-09-03)

cb
{C Beautifier}

cbasic
CBASIC
A {BASIC} compiler by Gordon Eubanks, now at {Symantec}. It evolved from/into {EBASIC}.
(1994-11-29)

cbc
C-BC
[language] A {strongly typed} version of {BC} by Mark Hopkins, with expanded {C}-like {syntax}, more base types and the ability to form {array} and {pointer} types of any dimension and to allocate/free arrays at {run time}.
Most {POSIX-BC} features are supported, except that {functions} must be declared consistently and declared before first use. {String} handling is slightly different. It requires an {ANSI-C} compiler and runs under {MS-DOS} or {Unix}.
Version: 1.1.
Posted to {alt.sources} 1993-04-10.
(1993-08-23)

cbd
CBD
{component based development}

cbir
CBIR
[image] {content-based information retrieval}.
(1995-11-23)

cbn
CBN
{call-by-name}

cbr
CBR
{case based reasoning}

cbt
CBT
{Computer-Based Training}

cbv
CBV
{call-by-value}

cbw
{Crypt Breakers Workbench}

cc
[networking] The {country code} for the Cocos (Keeling) Islands.
(1999-01-27)

cc
CC++
{Compositional C++}

cc
C/C++
1. {Borland C/C++}.
2. {Watcom C/C++}.
3. Either {C} or {C++}.
(1996-04-06)

ccalc
CCalc
A {symbolic mathematics} system for {MS-DOS}, available from {Simtel}.
(1995-04-12)

ccd
CCD
{Charge-Coupled Device}

ccirn
CCIRN
Coordinating Committee for Intercontinental Research Networks.

ccitt
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 highlevel language
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
CCL
1. Coral Common LISP.
2. Computer Control Language. English-like query language based on COLINGO, for IBM 1401 and IBM 1410.

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

ccmail
cc:mail
[tool, product] Commercial {electronic mail} software by {Lotus Corporation} for {Microsoft Windows}.
(1995-03-14)

ccp
CCP
1. [language] {Concurrent Constraint Programming}.
2. {Command Control Processor}.
(2001-11-01)

ccr
CCR
1. {condition code register}.
2. (Database) {concurrency control and recovery}.

ccs
CCS
1. [networking] {Common Communication Services}.
2. [language, parallel] {Calculus of Communicating Systems}.
3. [history] {Computer Conservation Society}.
4. [storage, standard] {Common Command Set}.
5. [communications] {centum call second}.
(1997-10-22)

ccsp
CCSP
{Contextually Communicating Sequential Processes}

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

cd tilde
/C-D til-d*/ To go home. From the {Unix} {C shell} and Korn-shell command "cd ~", which takes one to one's "$HOME" directory. "cd" with no arguments does the same thing.
[{Jargon File}]
(1994-10-28)

cda
CDA
1. [file format] {Compound Document Architecture}.
2. [legal] {Communications Decency Act}.

cdc
CDC
{Control Data Corporation}

cddi
CDDI
{Copper Distributed Data Interface}

cddplus
CDD/Plus
{DEC}'s {CASE} {repository}.

cde
CDE
1. C Development environment from {IDE}.
2. {Common Desktop Environment}.
3. {Co-operative Development Environment}.
(1996-07-11)

cdf
CDF
Common Data Format. A library and toolkit for multi-dimensional data sets.

cdi
CD-i
{Compact Disc interactive}

cdif
CDIF
{CASE Data Interchange Format}

cdl
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
CDM
1. {Content Data Model}
2. {Code Division Multiplexing}

cdma
CDMA
{Code Division Multiple Access}

cdp1802
CDP1802
{RCA 1802}

cdpd
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.
[{Jargon File}]
(2001-06-22)

cdr
CD-R
{Compact Disc Recordable}

cdreadwrite
CD-Read-Write
{Compact Disc Rewritable}

cdrewritable
CD-Rewritable
{Compact Disc Rewritable}

cdrom
CD-ROM
{Compact Disc Read-Only Memory}

cdrom drive
CD-ROM drive
{Compact Disc Read-Only Memory}

cdrw
CD-RW
{Compact Disc Rewritable}

cds
CDS
{Concrete Data Structure}

ce
CE
{IBM Customer Engineer}

cecil
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
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
CEEMAC+
Graphics language for DOS 3.3 on {Apple II}.

ceipact
CEI-PACT
Central European Initiative on Parallel Computation.

celeron
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
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
Cellang
See {Cellular}.

cellas
CELLAS
CELLular ASsemblies.
A {concurrent} {block-structured} language.
[Mentioned in "Attribute Grammars", LNCS 323, p.97].
(1994-12-05)

cello
Cello
{World-Wide Web} {browser} {client} for {IBM PC}s. Runs under {Microsoft Windows}.

cellsim
CELLSIM
[application] A program for modelling populations of biological cells.
["CELLSIM II User's Manual", C.E. Donaghey, U Houston. Sep 1975].
(1994-12-05)

cellular
Cellular
[language, cellular automaton] A system for {cellular automaton} programming by J Dana Eckart [dana@faculty.cs.runet.edu]. Cellular includes a {byte-code compiler}, {run-time system}, and a viewer.
Latest version: 2.0, as of 1993-04-03.
Posted to comp.sources.unix, volume 26.
See also {Cellang}.
(2000-10-07)

cellular automata
{cellular automaton}

cellular automaton
[algorithm, parallel] (CA, plural "- automata") A regular spatial lattice of "cells", each of which can have any one of a finite number of states. The state of all cells in the lattice are updated simultaneously and the state of the entire lattice advances in discrete time steps. The state of each cell in the lattice is updated according to a local rule which may depend on the state of the cell and its neighbors at the previous time step.
Each cell in a cellular automaton could be considered to be a {finite state machine} which takes its neighbours' states as input and outputs its own state.
The best known example is J.H. Conway's game of {Life}.
{FAQ (http://alife.santafe.edu/alife/topics/cas/ca-faq/ca-faq.html)}.
{Usenet} newsgroups: {news:comp.theory.cell-automata}, {news:comp.theory.self-org-sys}.
(1995-03-03)

cellular digital packet data
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
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
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
CEN
Conseil Europeen pour la Normalisation.
A body coordinating {standard}isation activities in the EEC and EFTA countries.
(1994-12-14)

cenelec
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 {Comite Europeen de Normalisation} (CEN) and {European Telecommunications Standards Institute} (ETSI).
(1999-09-28)

centicall second
centi-call second
[spelling] No, it's {centum call second}.
(2002-03-25)

central office
[communications] The place where telephone companies terminate customer lines and locate switching equipment to interconnect those lines with other networks.
(1995-03-20)

central office exchange service
Central office exchange service
[communications] (Centrex) A {PBX} service providing {switching} at the {central office} instead of at the company premises. Typically, the telephone company owns and manages all the communications equipment necessary to implement the PBX and then sells various services to the company.
(1999-10-27)

central processing unit
[architecture, processor] (CPU, processor) The part of a computer which controls all the other parts. Designs vary widely but, 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)

centrex
Centrex
{Central office exchange service}

centronics
Centronics
[company, hardware, printer] A company in Hudson N.H., USA, best known for designing the {parallel interface} for printers with the same name, found on many {microcomputers}.
[Pin-out?]
(1998-03-15)

centrum voor wiskunde en informatica
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/)}.

centum call second
[unit] (CCS) A unit used (in North America) to quantify the total traffic running in a network. 1 CCS is 100 call-seconds. That means 1 CCS could be 2 calls of 50 seconds duration or 20 calls of 5 seconds duration.
(2002-03-25)

century meltdown
{Year 2000}

cepstra
{cepstrum}

cepstrum
[mathematics] (Coined in a 1963 paper by Bogert, Healey, and Tukey) The {Fourier transform} of the log-magnitude spectrum:
fFt(ln( | fFt(window . signal) | ))
This function is used in {speech recognition} and possibly elsewhere. Note that the outer transform is NOT an inverse Fourier transform (as reported in many respectable DSP texts).
[What's it for?]
(1997-01-07)

cept
CEPT
{Comite Europeen des Postes et Telecommunications}

cer
CER
{Canonical Encoding Rules}

ceramic pin grid array
Ceramic Pin Grid Array
[hardware, processor] (CPGA) A form of {Pin Grid Array} package used by {Cyrix III} {processors}.
Compare {PPGA} and {FC-PGA}.
[Other uses?]
(2000-08-26)

ceres workstation oberon system
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
Cerf, Vint
{Vint Cerf}

cern
CERN
The European Laboratory for Particle Physics.

cernlib
CERNLIB
The CERN Program Library.

cert
CERT
{Computer Emergency Response Team}

certificate authority
Certificate Authority
[cryptography, body] (CA or "Trusted Third Party") An entity (typically a company) that issues {digital certificates} to other entities (organisations or individuals) to allow them to prove their identity to others. A Certificate Authority might be an external company such as {VeriSign} that offers digital certificate services or they might be an internal organisation such as a corporate {MIS} department. The Certificate Authority's chief function is to verify the identity of entities and issue digital certificates attesting to that identity.
The process uses {public key cryptography} to create a "network of trust". If I want to prove my identity to you, I ask a CA (who you trust to have verified my identity) to encrypt a {hash} of my signed key with their {private key}. Then you can use the CA's {public key} to decrypt the hash and compare it with a hash you calculate yourself. Hashes are used to decrease the amount of data that needs to be transmitted. The hash function must be {cryptographically strong}, e.g. {MD5}.

{(http://home.netscape.com/comprod/server_central/support/faq/certificate_faq.html#11)}.
(1998-03-30)

cesp
CESP
{Common ESP}

cessl
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
CFD
Computational Fluid Dynamics.
A {Fortran}-based parallel language for the {Illiac IV}.
(1994-11-29)

cfml
CFML
{ColdFusion Markup Language}

cforth
A {Forth} {interpreter}.
Posted to comp.sources.unix volume 1.
(1994-11-29)

cfortranh
cfortran.h
[library] A {transparent}, machine independent interface between {C} and {Fortran} routines and {global data} by Burkhard Burow at CERN in Swizerland. It provides {macros} which allow the {C} {preprocessor} to translate a simple description of a C (Fortran) routine or global data into a Fortran (C) interface.
Version 2.6 runs on {VAX}/{VMS}/{Ultrix}, {DECstation}, {Silicon Graphics}, {IBM} {RS/6000}, {Sun}, {Cray}, {Apollo}, {HP9000}, {LynxOS}, {f2c}, {NAG f90}.
{(ftp://zebra.desy.de/cfortran/)}.
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
CFP
1. {Constraint Functional Programming}.
2. {Communicating Functional Processes}.
3. Call For Papers (for a conference).

cfp92
CFP92
{SPEC CFP92}

cg
[networking] The {country code} for Congo.
(1999-01-27)

cga
CGA
{Color Graphics Adapter}

cggl
CGGL
("seagull") Code-Generator Generator Language. A machine description language based on modelling the computer as a {finite-state machine}.
["A Code Generator Generator Language", M.K. Donegan et al, SIGPLAN Notices 14(8):58-64 (Aug 1979)].
(1994-10-24)

cgi
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 joe
CGI Joe
[job, abuse] (From "GI Joe") A hard-core {CGI} script programmer with all the social skills and charisma of a plastic action figure.
(1997-03-30)

cgi program
CGI program
[World-Wide Web] (Often "CGI script") A program running on a {web server} to produce dynamic content, usually an {HTML} {web page}, in response to a user's request.
The {Common Gateway Interface} specification defines the interface between the web server and such programs. The program can access any data that a normal application program can, however the facilities available to CGI programs are usually limited for security.
Although CGI programs can be compiled programs, they are more often written in a (semi) {interpreted language} such as {Perl}, or as {Unix} {shell scripts}, hence the name "CGI script".
Here is a trivial CGI script written in Perl. (It requires the "CGI" module available from {CPAN}).
#!/usr/bin/perl use CGI qw(:standard);
print header, start_html, h1("CGI Test"), "Your IP address is: ", remote_host(), end_html;
When run it produces an {HTTP} header and then a simple HTML page containing the {IP address} or {hostname} of the machine that generated the initial request. If run from a command prompt it outputs:
Content-Type: text/html
[!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"] [HTML][HEAD][TITLE]Untitled Document[/TITLE] [/HEAD][BODY][H1]CGI Test[/H1]Your IP address is: localhost[/BODY][/HTML]
The CGI program might be saved as the file "test.cgi" (or test.pl) in the appropriate directory on a web server, e.g. "/home/httpd/cgi-bin/".
A user could then type the appropriate {URL}, e.g. http://www.acme.com/cgi-bin/test.cgi, into their {web browser} to get the program to run and a custom page produced for them.
Early web servers required all CGI programs to be installed in one directory called cgi-bin but it is much better to keep them with the HTML files to which they relate unless they are truly global to the site. All modern web servers make this easy to do.
(2000-06-23)

cgi script
CGI script
{CGI program}

cgibin
cgi-bin
{Common Gateway Interface}

cgm
CGM
{Computer Graphics Metafile}

cgol
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
Ch
[language] An {interpreted} programming language sold by {Soft Integration} and marketed for {scripting}, {shell programming}, and graph plotting, it is a superset of {C}/{C++}. Ch is also the name of Soft Integration's {interpreter} for the language. Currently the Ch interpreter is available for {Windows}, {Solaris}, {HP-UX}, {Linux}, and {Mac} platforms.
{Soft Integration (http://www.softintegration.com/)}.
(2003-08-15)

ch
[networking] The {country code} for Switzerland.
(1999-01-27)

chad
[jargon, printer] /chad/ (Or "selvage" /sel'v*j/ (sewing and weaving), "{perf}", "perfory", "snaf"). 1. The perforated edge strips on paper for {sprocket feed} printers, after they have been separated from the printed portion.
The term {perf} may also refer to the perforations themselves, rather than the chad they produce when torn.
[Why "snaf"?]
2. (Or "chaff", "computer confetti", "keypunch droppings") The confetti-like bits punched out of {punched cards} or {paper tape} which collected in the {chad box}.
One of the {Jargon File}'s correspondents believed that "chad" derived from the {chadless keypunch}.
[{Jargon File}]
(1997-07-18)

chad box
[hardware] ({IBM} called this a "chip box") A metal box about the size of a lunchbox (or in some models a large wastebasket), for collecting the {chad} that accumulated in {Iron Age} {card punches}. You had to open the covers of the card punch periodically and empty the chad box.
The {bit bucket} was notionally the equivalent device in the {CPU} enclosure, which was typically across the room in another great grey-and-blue box.
[{Jargon File}]
(1996-11-20)

chadless keypunch
Chadless keypunch
[hardware] A {card punch} which cut little U-shapes in {punched cards}, rather than punching out a circle or rectangle. The U's made a hole when folded back.
One of the {Jargon File}'s correspondents believed that the term "chad" derived from the {Chadless keypunch}. Obviously, if the Chadless keypunch didn't make them, then the stuff that other keypunches made had to be "{chad}". The assertion that the keypunch was named after its inventor is not supported by any record in US or UK patents or surname references.
(2000-11-22)

chain
1. [operating system] (From {BASIC}'s "CHAIN" statement) To pass control to a child or successor without going through the {operating system} {command interpreter} that invoked you. The state of the parent program is lost and there is no returning to it. Though this facility used to be common on memory-limited {microcomputers} and is still widely supported for {backward compatibility}, the jargon usage is semi-obsolescent; in particular, {Unix} calls this {exec}.
Compare with the more modern "{subshell}".
2. [programming] A series of linked data areas within an {operating system} or {application program}. "Chain rattling" is the process of repeatedly running through the linked data areas searching for one which is of interest. The implication is that there are many links in the chain.
3. [theory] A possibly infinite, non-decreasing sequence of elements of some {total ordering}, S
x0 [= x1 [= x2 ...
A chain satisfies:
for all x,y in S, x [= y \/ y [= x.
I.e. any two elements of a chain are related.
("[=" is written in {LaTeX} as {\sqsubseteq}).
[{Jargon File}]
(1995-02-03)

challengehandshake authentication protocol
Challenge-Handshake Authentication Protocol
[networking, security, standard, protocol] (CHAP) An {authentication} scheme used by {PPP} servers to validate the identity of the originator of the connection upon connection or any time later.
CHAP applies a three-way {handshaking} procedure. After the link is established, the server sends a "challenge" message to the originator. The originator responds with a value calculated using a {one-way hash function}. The server checks the response against its own calculation of the expected hash value. If the values match, the authentication is acknowledged; otherwise the connection is usually terminated.
CHAP provides protection against {playback} attack through the use of an incrementally changing identifier and a variable challenge value. The authentication can be repeated any time while the connection is open limiting the time of exposure to any single attack, and the server is in control of the frequency and timing of the challenges. As a result, CHAP provides greater security then {PAP}.
CHAP is defined in {RFC} 1334.
(1996-03-05)

chalmers university of technology
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 Goteborg.
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 Goteborg, SWEDEN.
Telephone: +46 (31) 772 10 00. Fax: +46 (31) 772 38 72.
(1995-02-16)

chan op
{channel op}

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).
[{Jargon File}]
(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".
[{Jargon File}]
(1994-11-29)

channel op
[messaging] /chan'l op/ (Or "{op}", "chan op", "chop") Someone who is endowed with privileges on a particular {IRC} {channel}. These privileges include the right to {kick} users, to change various status bits and to make others into CHOPs.
The full form, "channel operator", is almost never used.
[{Jargon File}]
(1998-01-08)

channel service unit
(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 unitdata service unit
channel service unit/data service unit
[communications, hardware] (CSU/DSU, or "..digital..") A device that performs both the {channel service unit} (CSU) and {data service unit} (DSU) functions. The Channel Service Unit (CSU) is used to terminate a {DS1} or {DS0} (56/64 kb/s) digital circuit. It peforms {line conditioning}, protection, {loop-back} and timing functions. The Data Service Unit (DSU) terminates the data circuit to the {Data Terminal Equipment} (DTE) and converts the customer's data stream into a bi-polar format for transmission.
(2001-10-19)

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/Holt_and_Holt.On_Defining_Chaos)}]
Fixed precision {floating-point} arithmetic, as used by most computers, may actually introduce chaotic dependence on initial conditions due to the accumulation of rounding errors (which constitutes a non-linear system).
(1995-02-07)

chap
CHAP
{Challenge-Handshake Authentication Protocol}

char
[programming] /keir/ or /char/; rarely, /kar/ character. Especially used by {C} programmers, as "char" is {C}'s typename for character data.
[{Jargon File}]
(1994-11-29)

character
[character] An {atom} in a {character repertoire}.
Compare with {glyph}.
(1998-10-18)

character encoding
[character] (Or "character encoding scheme") A mapping of {binary} values to {code positions} and back; generally a 1:1 ({bijective}) mapping.
In the case of {ASCII}, this is generally a f(x)=x mapping: code point 65 maps to the byte value 65, and vice versa. This is possible because ASCII uses only code positions representable as single bytes, i.e., values between 0 and 255, at most. ({US-ASCII} only uses values 0 to 127, in fact.)
{Unicode} and many {CJK} {coded character sets} use many more than 255 positions, requiring more complex mappings: sometimes the characters are mapped onto pairs of bytes (see {DBCS}). In many cases, this breaks programs that assume a one-to-one mapping of bytes to characters, and so, for example, treat any occurrance of the byte value 13 as a {carriage return}. To avoid this problem, character encodings such as {UTF-8} were devised.
(1998-10-18)

character encoding scheme
{character encoding}

character graphics
{ASCII art}

character key
{key}

character repertoire
[character] The set of all {characters} onto which a {coded character set} maps {integers} ({code positions}).
For example, consider these two simple coded character sets:
Coded Character Set One: integer 0 -] the character "A" integer 1 -] the character "B"
Coded Character Set Two: integer 0 -] the character "B" integer 1 -] the character "A"
Both of these coded character sets map to the characters "A" and "B", so they have the same character repertoire. But since the mapping is different (and obviously incompatible), these are different coded character sets.
(1998-12-17)

character set
[character] 1. A particular mapping between {characters} and {byte strings}, i.e. the combination of a particular {character encoding} (which maps between byte strings and {integers}) and a particular {coded character set} (which maps between integers and characters).
For example: {ASCII} (the ASCII coded character set, encoded directly as single-byte values), or {UTF-8} (the Unicode coded character set, encoded with an 8-bit transformation method).
2. Occasionally: a {character repertoire}; or a {coded character set}.
(1998-12-17)

character set identifier
[character] (CSID) (IBM) A number that identifies a {character set}.
(1995-03-21)

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)

chargecoupled device
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
CHARITY
[language] A {functional language} based purely on {category theory} by Cockett, Spencer, and Fukushima, 1990-1991.
A version for {Sun-4} is available from Tom Fukushima [fukushim@ucalgary.ca].
["About Charity", J.R.B. Cockett, U. Calgary, Canada, et al].
(2000-10-30)

charityware
{careware}

charles babbage
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
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
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
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
Charme
[language, logic, Bull, nondeterminism] A language with {discrete combinatorial constraint logic} aimed at industrial problems such as planning and {scheduling}. Implemented in {C} at {Bull} in 1989.
Charme is an outgrowth of ideas from {CHIP}. It is semantically {nondeterministic}, with choice and {backtracking}, similar to {Prolog}.
["Charme Reference Manual", AI Development Centre, Bull, France 1990].
(1994-11-15)

charybdis
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}.
[{Jargon File}]
(1995-05-11)

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

chat room
{channel}

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)

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
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.
[{Jargon File}]
(1995-02-07)

chen
Chen
{Peter Chen}

cheops
CHEOPS
A satellite-based batch data dissemination project between {CERN} and member state institutes.

chernobyl packet
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}.
[{Jargon File}]

chess
[games] A two-player {game} with {perfect information}.
{Usenet} newsgroup: {news:rec.games.chess}.
See also {Internet Chess Server}.
(1995-03-25)

chi
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
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.
[{Jargon File}]

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.
[{Jargon File}]
(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
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
CHILL
{CCITT HIgh-Level Language}

chimera
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.
[{Jargon File}]
(1994-12-02)

chinese army technique
Chinese Army technique
{Mongolian Hordes technique}

chip
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 box
{chad box}

chip jewelry
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
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)

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

chip8
CHIP-8
[language, games] A low-level interpretive language (really a high-level {machine code}) developed at {RCA} in the late 1970s for video games on computers using {RCA}'s {CDP1802} processor. It could also be used on the {DREAM 6800}.
{Amiga interpreter (ftp://ftp.cso.uiuc.edu/pub/amiga/fish/f5/ff537/CHIP8.lzh)}.
(2002-04-09)

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

chm
{Compiled HTML}

chmod
[file system] ("Change mode") The {Unix} command and {system call} to change the access {permissions} of a named file. Each file (directory, device, etc.) has nine kinds of access which can be allowed or denied. Different permissions apply to the owner of the file, the members of the group the file belongs to, and all users. Each of these classes of user (owner, group and other) can have permission to read, write or execute the file. Chmod can also set various other mode bits for a file or directory such as the {sticky bit} and the {set user id} bit.
Unix {man} page: chmod
(1995-01-31)

chocs
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."
[{Jargon File}]

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

chop
CHOP
{channel op}

chorus
Chorus
A distributed {operating system} developed at {INRIA}.

christmas tree
Christmas tree
A kind of EIA-232 line tester or breakout box featuring rows of blinking red and green LEDs suggestive of Christmas lights.
[{Jargon File}]

christmas tree packet
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
Christopher Strachey
[person] Professor of Computation at Oxford, England, born 1916, died May 1975. He invented the term "{currying}".
See also: {General Purpose Macro-generator}.
(1998-06-29)

chromatic number
[mathematics] The smallest number of colours necessary to colour the nodes of a {graph} so that no two adjacent nodes have the same colour.
See also: {four colour map theorem}.
{Graph Theory Lessons (http://www.utc.edu/~cpmawata/petersen/lesson8.htm)}.
{Eric Weisstein's World Of Mathematics (http://mathworld.wolfram.com/ChromaticNumber.html)}.
{The Geometry Center (http://www.geom.umn.edu/~zarembe/grapht1.html)}.
(2000-03-18)

chrome
[jargon] (From automotive slang via wargaming) Showy {features} added to attract users but contributing little or nothing to the power of a system.
"The 3D icons in {Motif} are just chrome, but they certainly are *pretty* chrome!"
Chrome is distinguished from {bells and whistles} by the fact that the latter are usually added to gratify developers' own desires for featurefulness. Often used as a term of contempt and sometimes used in conjunction with 'fluff', "all the fluff and chrome that comes with Motif".
[{Jargon File}]
(1997-09-19)

chroot
[operating system] The {UNIX} command to make the {root directory} (/) become something other than its default for the lifetime of the current process. It can only be run by privileged users and is used to give a process (commonly a network server such as {FTP} or {HTTP}) access to a restricted portion of the {file system}.
The new root contains copies of all the essential files and directories, e.g. /lib, /dev/tty, /tmp.
(1996-12-08)

chrp
CHRP
{PowerPC Platform}

chug
[jargon] To run slowly; to {grind} or {grovel}. "The disk is chugging like crazy."
[{Jargon File}]
(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
Church, Alonzo
{Alonzo Church}

church integer
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
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)

churchrosser theorem
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).
[{Jargon File}]
(1999-01-27)

ci
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.
[{Jargon File}]
(1995-01-25)

cicero
CICERO
Control Information system Concepts based on Encapsulated Real-time Objects.
A {CERN} {DRDC} proposal.
(1995-01-25)

cics
CICS
{Customer Information Control System}

cid
CID
{Caller ID}

cidr
CIDR
{Classless Inter-Domain Routing}

ciel
CIEL
An {object-oriented} {Prolog}-like language.
["CIEL: Classes et Instances En Logique", M. Gandriau, Thesis ENSEEIHT (1988)].
(1995-01-25)

cif
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
CIFS
{Common Internet File System}

cigale
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
CIL
1. [project] {Component Integration Laboratories}.
2. [language] {Common Intermediate Language}.
(1999-01-14)

cim
CIM
1. [application] {Computer Integrated Manufacturing}.
2. [standard] {Common Information Model}.
(2003-06-07)

cims pli
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
Cinderella Book
[publication] "Introduction to Automata Theory, Languages, and Computation", by John Hopcroft and Jeffrey Ullman, (Addison-Wesley, 1979). So called because the cover depicts a girl (putatively Cinderella) sitting in front of a Rube Goldberg device and holding a rope coming out of it. On the back cover, the device is in shambles after she has (inevitably) pulled on the rope.
See also {book titles}.
[{Jargon File}]
(1996-12-03)

cint92
CINT92
{SPEC CINT92}

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

cipl
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
CIR
{Committed Information Rate}

circal
CIRCAL
{CIRcuit CALculus}

circuit
1. [communications] A communications path in a {circuit switching} network.
2. [electronics] A complete path through which an electric current can flow.
The term is used loosely for any device or subsystem using electrical or electronic components. E.g. "That lightning bolt fried the circuits in my GPS receiver". An {integrated circuit} (IC) contains components built on a Silicon {die}.
(2002-07-15)

circuit calculus
CIRcuit CALculus
(CIRCAL) A {process algebra} used to model and verify the design correctness of {concurrent} systems such as {digital logic}.
["CIRCAL and the Representation of Communication, Concurrency and Time", G.J. Milne [milne@cis.unisa.edu.au], ACM TOPLAS 7(2):270-298, 1985].
(2001-03-25)

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

circular buffer
[programming] An area of {memory} used to store a continuous stream of data by starting again at the beginning of the buffer after reaching the end. A circular buffer is usually written by one process and read by another. Separate read and write {pointers} are maintained. These are not allowed to pass each other otherwise either unread data would be overwritten or invalid data would be read.
A circuit may implement a {hardware circular buffer}.
(2000-06-17)

cirrus logic
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
CIS
1. [standard, programming] {Case Integration Services}.
2. [networking] {Cooperative Information System}.
3. [business] {Customer Interaction Software}, {Customer Information Systems}.
(1999-10-04)

cisc
CISC
{Complex Instruction Set Computer}

cisco systems inc
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
CISI
A French software house.

citran
CITRAN
{Caltech}'s answer to {MIT}'s {JOSS}.
[Sammet 1969, p.217].

cityscape
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
CIX
1. [networking] {Commercial Internet Exchange}.
2. [messaging] {Compulink Information eXchange}.
(1997-07-16)

cjk
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.
{CJKV} is CJK plus {Vietnamese}.
{(ftp://ftp.ora.com/pub/examples/nutshell/ujip/doc/cjk.inf)}.
(2001-01-01)

cjkv
CJKV
[character] {CJK} plus {Vietnamese}. Vietnamese, like the other three CJK languages, requires 16-bit {character encodings} but it does not use {Han characters}.
["CJKV Information Processing: Chinese, Japanese, Korean & Vietnamese Computing", Ken Lunde, pub. O'Reilly 1998, {(http://www.oreilly.com/catalog/cjkvinfo/)}].
(2001-03-18)

ck
[networking] The {country code} for the Cook Islands.
(1999-01-27)

cl
CL
[language]
1. {Control Language}.
2. {Clausal Language}.
(2002-05-28)

cl
[networking] The {country code} for Chile.
(1999-01-27)

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

clarify
Clarify
[company] A software vendor, specialising in {Customer Relationship Management} software. {Nortel Networks} sold Clarify to {Amdocs} in 2002.
{Home (http://www.amdocsclarify.com/)}.
(2003-06-20)

clarion
Clarion
[language] A {fourth generation language} for {MS-DOS}.
[Details?]
(1994-11-09)

claris
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
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 {methods} associated with the class.
Classes are related in a {class hierarchy}. One class may be a specialisation (a "{subclass}") of another (one of its "{superclasses}") or it may be composed of other classes or it may use other classes in a {client-server} relationship. A class may be an {abstract class} or a {concrete class}.
See also {signature}.
2. [programming] See {type class}.
3. [networking] One of three types of {Internet addresses} distinguished by their most significant bits.
3. [language] A language developed by the {Andrew Project}. It was one of the first attempts to add {object-oriented} features to {C}.
(1995-05-01)

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

class library
A library of reusable {class}es for use with an {object-oriented programming} system.
(1994-12-05)

class method
[programming] A kind of {method}, available in some {object-oriented programming} languages, that operates on the class as a whole, as opposed to an "object method" that operates on an object that is an instance of the class.
A typical example of a class method would be one that keeps a count of the number of objects of that class that have been created.
(2000-03-22)

class oriented ring associated language
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)

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 c
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}.
[{Jargon File}]

classicada
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-{intuitionistic logic}.
(1995-04-13)

classless interdomain routing
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)

classrelation method
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)

clausal language
Clausal Language
[language] (CL) A programming language and {proof system} developed by Paul Voda and a colleague since 1997, written in {Trilogy} II.
{Paul Voda Home (http://www.fmph.uniba.sk/~voda)}.
(2002-05-28)

clean
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].
[{Jargon File}]
(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."
[{Jargon File}]
(1994-12-12)

cleanroom
Cleanroom
A software development approach aimed at producing software with the minimum number of errors.
(1994-12-12)

clear
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
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
CLHEP
A {C++} {class library} for high energy physics {application}s.
(1994-12-12)

cli
CLI
1. [operating system] {Command Line Interface}.
2. [database, standard] {Call-Level Interface}.
(1997-03-04)

clicc
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
[hardware] To press and release a {button} on a {mouse} or other {pointing device}. This generates an {event}, also specifying the screen position, which is processed by the {window manager} or {application program}. On a mouse with more than one button, the unqualified term usually implies pressing the left-most button (with the right index finger), other buttons would be qualified, e.g. "{right-click}". {Keyboard} modifiers may also be used, e.g. "shift-click", meaning to hold down the shift key on the keyboard while clicking the mouse button.
If the mouse moves while the button is pressed then this is a {drag}.
(1995-03-14)

client
[programming] A computer system or process that requests a service of another computer system or process (a "{server}") using some kind of {protocol} and accepts the server's responses. A client is part of a {client-server} software architecture.
For example, a {workstation} requesting the contents of a file from a {file server} is a client of the file server.
(1997-10-27)

client to client protocol
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)

clientserver
client/server
{client-server}

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

clientserver model
client-server model
{client-server}

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

clinda
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
CLiP
[programming, tool] A documentation extractor by Eric W. van Ammers that recognises a particular style of {comments}. This style can be adjusted to suit virtually any programming language and target documentation language. CLiP was designed to be compatible with {hypertext} systems.
Version 2.1 runs on {MS-DOS}, {VAX}/{VMS} and {Unix}
{(ftp://sun01.info.wau.nl/clip/)}.
(1993-11-18)

clip
CLIP
1. {Compiler Language for Information Processing}.
2. {Common LISP in Parallel}.

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
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
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
CLISP
[language]
1. {Conversational LISP}.
2. A {Common Lisp} implementation by {Bruno Haible (http://www.haible.de/bruno/)} of {Karlsruhe University} and {Michael Stoll (http://www.math.uni-duesseldorf.de/~stoll/)}. of {Munich University}, both in Germany. CLISP includes an {interpreter}, {bytecode compiler}, almost all of the {CLOS} {object system}, a {foreign language interface} and a {socket interface}. An {X11} interface is available through {CLX} and {Garnet}. Command line editing is provided by the {GNU} readline library. CLISP requires only 2 MB of {RAM}. The {user interface} comes in German, English, French, Spanish, Dutch, and Russian and can be changed at {run time}.
CLISP is {Free Software} and distributed under the {GPL}. It runs on {microcomputers} ({OS/2}, {Microsoft Windows}, {Amiga}, {Acorn}) as well as on {Unix} workstations ({Linux}, {BSD}, {SVR4}, {Sun4}, {Alpha}, {HP-UX}, {NeXTstep}, {SGI}, {AIX}, {Sun3}, and others).
{Official web page (http://clisp.cons.org)}. {Mailing list (http://lists.sourceforge.net/lists/listinfo/clisp-list)}.
(2003-08-04)

clive sinclair
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
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
CLM
{Career Limiting Move}

clnp
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}.
[{Jargon File}]
(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
[jargon] 1. An exact copy of a product, made legally or illegally, from {documentation} or by {reverse engineering}, and usually cheaper.
E.g. "PC clone": a PC-BUS/{ISA}, {EISA}, {VESA}, or {PCI} compatible {x86}-based {microcomputer} (this use is sometimes misspelled "klone" or "PClone"). These invariably have much more bang per buck than the {IB PCM} they resemble.
E.g. "Unix clone": An {operating system} designed to deliver a {Unix}-like environment without Unix licence fees or with additional "mission-critical" features such as support for {real-time} programming.
2. [chat] A {clonebot}.
[{Jargon File}]
(2000-06-15)

cloneandhack coding
clone-and-hack coding
A {DEC}ism for {case and paste}.
[{Jargon File}]
(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
CLOS
{Common LISP Object System}

clos network
Clos network
A {network} topology.
[What topology?]
(1994-12-16)

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)

closedbox testing
closed-box testing
{functional testing}

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
Clover
[communications, protocol] A {protocoll} similar to {packet radio} or {AMTOR}.
(1995-03-03)

clover key
{feature key}

clp
CLP
1. {Cornell List Processor}.
2. {Constraint Logic Programming}.

clp
CLP*
A derivative of {Constraint Logic Programming} (CLP).
["CLP* and Constraint Abstraction", T. Hickey, 16th POPL, pp. 125-133, 1989].
(1994-11-01)

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

clpsigma
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
CLR
{Consortium for Lexical Research}

cltl1
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
CLtL2
{Aluminum Book}

clu
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
[tool] A {CLU} to {C} {compiler}.
{(ftp://ftp.is.titech.ac.jp/pub/clu2c/)}.
(2000-08-06)

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
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.
[{Jargon File}]
(1994-12-21)

clustering
{cluster}

clut
CLUT
{colour palette}

clv
CLV
{Constant Linear Velocity}

clx
CLX
[library, graphics] The {Common Lisp} library providing an interface to the {X Window System}, equivalent to {Xlib}. It works with {CMU Common Lisp}.
Latest version: 5.01, as of 1992-08-26.
{(ftp://export.lcs.mit.edu/contrib/)}.
(1992-08-26)

cm
CM
{Configuration Management}

cm
[networking] The {country code} for Cameroon.
(1999-01-27)

cma
CMA
{Concert Multithread Architecture} from {DEC}.

cmay
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
CMC
1. [messaging] {Computer Mediated Communication}.
2. [hardware] {Common Mezzanine Card}.

cmga
CMGA
1. [body] {Computer Management Group of Australia}
2. [body] {Community of Massive Gaming Agency}.
(2003-06-15)

cmip
CMIP
{Common Management Information Protocol}

cmis
CMIS
{Common Management Information Services}

cml
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
CMM
{Capabilities Maturity Model}

cmos
CMOS
{Complementary Metal Oxide Semiconductor}

cmp
CMP
{cellular multiprocessing}

cms
CMS
A {code management} system from {DEC}.
(1994-12-21)

cms2
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
CMU
{Carnegie Mellon University}

cmu cl
CMU CL
{CMU Common Lisp}

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
CMVC
{Configuration Management Version Control} from {IBM}.

cmyk
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
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
CNAME
[networking] The {canonical name} query type for {Domain Name System}. This query asks a DNS {server} for a {host}'s official {hostname}.
(1994-12-22)

cnc
CNC
{Collaborative Networked Communication}

cnet
CNET
Centre national d'Etudes des Telecommunications. The French national telecommunications research centre at Lannion.
(1994-12-22)

cni
CNI
{Coalition for Networked Information}

cnn
CNN
[architecture] {Cellular Neural Network}.

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

coadyourdon
Coad/Yourdon
[programming] An {object-oriented analysis} and design {methodology}, developed by {edward Yourdon} and Peter Coad.
(1995-04-07)

coala
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
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
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
COBOL
{COmmon Business Oriented Language}

cobol fingers
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.
[{Jargon File}]
(1994-12-22)

cobol1961 extended
COBOL-1961 Extended
A short-lived separation of {COBOL} specifications.
[Sammet 1969, p. 339].
(1994-10-28)

cobra
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
Cocktail
{GMD Toolbox for Compiler Construction}

cocktail shaker sort
[algorithm] A bi-directional {bubble sort}. Passes alternate between ascending through array indexes, pushing the largest item to the bottom; and descending through array indexes, pushing the smallest item to the top.
[Performace vs plain bubble?]
(2001-03-26)

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

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
Cocol
{Coco Language}

cocolr
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
COCOMO
{Constructive Cost Model}

cocor
Coco/R
[tool] A program by Hanspeter Moessenboeck [moessenboeck@ssw.uni-linz.ac.at] which generates {recursive descent parsers} and their associated {scanners} from {attributed grammars} (LL1). Coco/R can {bootstrap} itself to generate its own driver, {parser}, scanner and {semantic evaluator} from an attributed grammar included in the distribution.
Versions exist for generating {Oberon}, {Modula-2}, {Pascal}, {C}, and {C++} source for {MS-DOS} and {Unix}. A {Java} implementation was planned.
Latest version: 1.34, as gf 1994-10-13.
Coco/R was ported to {Modula-2} by Marc Brandis, Christof Brass, and Pat Terry.
{Home (ftp://ftp.ssw.uni-linz.ac.at/pub/Coco)}.
Mail server: [server@ftp.psg.com] (Subject: send pub/modula-2/coco/).
E-mail: Pat Terry [p.terry@ru.ac.za] (Modula/Pascal versions), Hanspeter Moessenboeck [moessenboeck@ssw.uni-linz.ac.at] (Oberon, Java versions), Frankie Arzu [farzu@uvg.edu.gt] (C, C++ versions).
["A compiler generator for microcomputers", by Rechenberg and Mossenbock, Prentice Hall, 1989, 0-13-155136-1].
[Moessenboeck, H., "A Generator for Fast Compiler Front-Ends", Report 127, Dept. Informatik, ETH Zurich, 1990].
[Terry, P.D., "Compilers and Compiler Generators: An Introduction with C++", ITCP: ISBN 1-85032-298-8].
(1997-12-09)

codasyl
CODASYL
{Conference On DAta SYstems Languages}

codds first normal form
Codd's First Normal Form
{database normalisation}

codds reduction algorithm
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] Instructions for a computer in some programming language, often {machine language}. The word "code" is often used to distinguish instructions from {data} (e.g. "The code is marked 'read-only'") whereas "{software}" is used in contrast with "{hardware}" and may consist of more than just code.
(2000-04-08)

code 20
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)

code division multiple access
Code Division Multiple Access
[communications] (CDMA) (Or "spread spectrum") A form of {multiplexing} where the transmitter encodes the signal using a {pseudo-random} sequence which the receiver also knows and can use to decode the received signal. Each different random sequence corresponds to a different communication channel.
{Motorola} uses CDMA for digital cellular phones. Qualcomm pioneered the introduction of CDMA into wireless telephone services.
(2001-03-28)

code division multiplexing
{Code Division Multiple Access}

code grinder
[jargon, abuse] A {suit}-wearing minion of the sort hired in legion strength by banks and insurance companies in the {Real World} to implement payroll packages in {RPG} and other such unspeakable horrors. In its native habitat, the code grinder often removes the suit jacket to reveal an underplumage consisting of button-down shirt (starch optional) and a tie. In times of dire stress, the sleeves (if long) may be rolled up and the tie loosened about half an inch. It seldom helps. The {code grinder}'s milieu is about as far from hackerdom as one can get and still touch a computer; the term connotes pity.
Used of or to a {hacker}, this term is a really serious slur on the person's creative ability; it connotes a design style characterised by primitive technique, rule-boundedness, {brute force} and utter lack of imagination.
Compare {card walloper}. Contrast {real programmer}.
[{Jargon File}]
(1994-11-11)

code management
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 {weenies}. "Dike out that {goto} or the code police will get you!" The ironic usage is perhaps more common.
[{Jargon File}]
(1994-12-08)

code position
[character] An {integer} that a {coded character set} maps to a {character}. A code position is normally stored or transmitted by applying a {character encoding} to turn it into a {byte string}.
(2002-03-03)

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)

codebook
{data dictionary}

codec
CODEC
{coder/decoder}

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

coderdecoder
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}.
[{Jargon File}]
(1994-10-28)

codescript
C-odeScript
[language] A {Liana} interpreter, embeddable in {C} and {C++} programs.
(1995-03-09)

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."
[{Jargon File}]
(1994-12-23)

codil
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
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".
[{Jargon File}]
(1994-11-29)

coercion
{implicit type conversion}

coff
COFF
{Common Object File Format}

cogent
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
Cogent Prolog
[language] A full {Edinburgh standard Prolog} with {debugger}, {listener}, {DCG}, many {built-ins}, text windows, support for {modules}, and support for both 16-bit and 32-bit {protected mode}.
Contact: Dennis C. Merritt.
(1999-11-24)

cognitech
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
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
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
COHESION
{DEC}'s {CASE} environment.
[Details?].
(1995-01-04)

coif
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 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}.
[{Jargon File}]
(1995-01-04)

colasl
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
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}.
[{Jargon File}]
(1995-11-27)

coldfusion
ColdFusion
[World-Wide Web, database, tool] {Allaire Corporation}'s commercial {database} application development tool that allows {databases} to have a {World-Wide Web} {interface}, so a database can be queried and updated using a {web browser}.
The ColdFusion Server application runs on the {web server} and has access to a {database}. ColdFusion files on the web server are {HTML} pages with additional ColdFusion commands to {query} or {update} the database, written in {CFML}. When the page is requested by the user, the {web server} passes the page to the Cold Fusion application, which executes the {CFML} commands, places the results of the {CFML} commands in the {HTML} file, and returns the page to the {web server}. The page returned to the {web server} is now an ordinary {HTML} file, and it is sent to the user.
Examples of ColdFusion applications include order entry, event registration, catalogue search, directories, calendars, and interactive training. ColdFusion applications are robust because all database interactions are encapsulated in a single industrial-strength {CGI} script. The formatting and presentation can be modified and revised at any time (as opposed to having to edit and recompile {source code}).
ColdFusion Server can connect with any database that supports {ODBC} or {OLE DB} or one that has a native database driver. Native database drivers are available for {Oracle} and {Sybase} databases.
ColdFusion is available for {Windows}, {Solaris}, and {HP-UX}. A {development environment} for creating ColdFusion files, called ColdFusion Studio, is also available for {Windows}.
Current version: MX(6), as of 2003-07-11.
The {filename extension} for ColdFusion files is .cfm
{Home (http://www.coldfusion.com/)}.
(2003-07-27)

coldfusion markup language
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)

coldk
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
COLINGO
Compile On-LINe and GO.
An english-like query system from {MITRE Corporation}. for the {IBM 1401}.
["The COLINGO System Design Philosophy", Information System Sciences, Proc Second Congress, 1965].
[Sammet 1969, p. 664].
(1995-01-04)

collision
1. [networking] When two {hosts} transmit on a {network} at once causing their {packets} to 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)

collocation
{co-location}

colocation
co-location
[networking] /koh'loh-kay`sh*n/ or /koh`loh-kay'sh*n/ (Or "colocation") Providing network connections such as {Internet} {leased lines} to several {servers} housed together in a {server room}. This is typically provided as a commercial service.
The hyphenated form is correct and the most common on the web, followed by "colocation". "collocation" (/ko`loh-kay'sh*n/, not /koh'-/), is an old word with a similar meaning. It is common in dictionaries and follows the pattern of other Latin-derived words like collect, college, and collate, but is least common on the web.
The verbal form is "to colocate" or "co-locate" (commonly /koh'loh`kayt/, also (US) /koh`loh'kayt/).
(2000-10-03)

colon
[character] ":". {ASCII} character 58. Common names: {ITU-T}: colon. Rare: dots; {INTERCAL}: two-spot.
(1995-09-25)

color
[spelling] American spelling of {colour}.
(1996-12-13)

color graphics adapter
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
Colossus
(A huge and ancient statue on the Greek island of Rhodes).
1. [computer] The Colossus and Colossus Mark II computers used by {Alan Turing} at {Bletchley Park}, UK during the Second World War to crack the "Tunny" cipher produced by the Lorenz SZ 40 and SZ 42 machines. Colossus was a semi-fixed-program {vacuum tube} calculator (unlike its near-contemporary, the freely programmable {Z3}).
["Breaking the enemy's code", Glenn Zorpette, IEEE Spectrum, September 1987, pp. 47-51.]
2. The computer in the 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%20Project)}.
[Date?]
(2002-07-28)

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 lookup table
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
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
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
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)

com port
{communications port}

comal
COMAL
{COMmon Algorithmic Language}

combination
1. [mathematics] A {set} containing a certain number of objects selected from another set.
The number of combinations of r objects chosen from a set of n is
n C r = n! / ((n-r)! r!)
where "n C r" is normally with n and r as subscripts or as n above r in parentheses.
See also {permutation}.
2. [reduction] In the theory of {combinators}, a combination denotes an expression in which {function application} is the only operation.
(1995-04-10)

combinator
[theory] A function with no {free variables}. A term is either a constant, a variable or of the form A B denoting the {application} of term A (a function of one argument) to term B. {Juxtaposition} associates to the left in the absence of parentheses. All combinators can be defined from two basic combinators - S and K. These two and a third, I, are defined thus:
S f g x = f x (g x) K x y = x I x = x = S K K x
There is a simple translation between {combinatory logic} and {lambda-calculus}. The size of equivalent expressions in the two languages are of the same order.
Other combinators were added by {David Turner} in 1979 when he used combinators to implement {SASL}:
B f g x = f (g x) C f g x = f x g S' c f g x = c (f x) (g x) B* c f g x = c (f (g x)) C' c f g x = c (f x) g
See {fixed point combinator}, {curried function}, {supercombinator}s.
(2002-11-03)

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
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
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.
[{Jargon File}]
(1998-04-19)

comis
COMIS
A COMpilation and Interpretation System.
A {Fortran} {interpreter} use by the {PAW} system.
(1994-11-30)

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

comit ii
COMIT II
["Computer Programming with COMIT II", Victor H. Yngve, MIT Press, 1963].
(1995-01-11)

comite europeen des postes et telecommunications
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)

comm mode
[chat] /kom mohd/ (Or "com mode") An {ITS} feature supporting interactive on-line {chat}.
[{Jargon File}]
(1998-01-18)

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

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)

command
[operating system] A character string which tells a program to perform a specific action. Most commands take {arguments} which either modify the action performed or supply it with input. Commands may be typed by the user or read from a file by a {command interpreter}. It is also common to refer to menu items as commands.
(1997-06-21)

command control processor
Command Control Processor
[operating system] (CCP) {CP/M}'s {command-line interpreter}.
(2001-11-01)

command interpreter
[operating system] A program which reads textual commands from the user or from a file and executes them. Some commands may be executed directly within the interpreter itself (e.g. setting variables or control constructs), others may cause it to load and execute other files.
{Unix}'s command interpreters are known as {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 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)

commandline interpreter
command-line interpreter
{command interpreter}

commen
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}.
[{Jargon File}]
(1998-04-28)

commercial at
[character] "@". {ASCII} code 64. Common names: at sign, at, strudel. Rare: each, vortex, whorl, {INTERCAL}: whirlpool, cyclone, snail, ape, cat, rose, cabbage, amphora. {ITU-T}: commercial at.
The @ sign is used in an {electronic mail address} to separate the local part from the {hostname}.
It is ironic that @ has become a trendy mark of Internet awareness since it is a very old symbol, derived from the latin preposition "ad" (at).
Giorgio Stabile, a professor of history in Rome, has traced the symbol back to the Italian Renaissance in a Roman mercantile document signed by Francesco Lapi on 1536-05-04.
In Dutch it is called "apestaartje" (little ape-tail), in German "affenschwanz" (ape tail). The French name is "arobase". In Spain and Portugal it denotes a weight of about 25 pounds, the weight and the symbol are called "arroba". Italians call it "chiocciola" (snail).
See {@-party}.
(2003-04-28)

commercial internet exchange
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
Commercial Translator
An English-like pre-{COBOL} language for business {data processing}.
[Sammet 1969, p. 378].
(1994-11-08)

commodore 1010
Commodore 1010
[storage] A 3.5-inch floppy {disk drive} for the {Amiga}.
(1998-12-23)

commodore 128
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
Commodore 1541
[storage] The best know {floppy disk} drive for the {Commodore 64}. The 1541 was a single sided 160 Kb drive but converting to {flippy disks} would give another 160 Kb.
The disk drive used {Group Code Recording} and contained a {6502} processor as a {disk controller}. Some people wrote code for it to vibrate the head at different frequencies to play tunes.
The transfer rate was about 300 bytes per second. The 1541 used a {bit-serial} version of the {IEEE 488} parallel protocol. Some third-party speed-ups could transfer about 4 kilobytes per second over the interface, and some "fast loaders" managed up to 10 kbps.
The {Commodore 1570} was an upgraded 1541 for use with the {Commodore 128}.
(2000-03-07)

commodore 1570
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
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
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
Commodore 64
[computer] (C64) An 8-bit {Commodore Business Machines} {personal computer} released around September 1981. Prototypes were (apparently) made before Christmas 1980 (and shown at some computer fair).
The {CPU} was a {6510} from {MOS Technolgies} (who were a wholly owned subsiduary of Commodore at this time(?)). The C64 had 64 {kilobytes} of {RAM} as standard and a 40-column text, 320x200 {pixel} display generating {composite video}, usually connected to a television.
{DMA}-based memory expanders for the C64 (and C128) allowed 128, 256, and 512 kb of RAM. Several third party manufacturers produce accelerators and RAM expanders for the C64 and C128. (Some, risking a {holy war}, compare this to putting a brick on roller-skates). Such accelerators come in speeds up to 20MHz (20 times the original) and RAM expanders to 16MB.
The C64's {1541} 5.25 {floppy disk} drive had a {6502} processor as a {disk controller}.
See also {Commodore 65}.
["Assembly language programming with the Commodore 64", Marvin L. De Jong].
(1996-06-05)

commodore 64dx
Commodore 64DX
{Commodore 65}

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
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
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
COMmon Algorithmic Language
[language] (COMAL) A language for beginners developed by Benedict Loefstedt and Borge Christensen in 1973 and popular in Europe and Scandinavia. It has a {Pascal}-like structure added to {BASIC}. COMAL-80 has been adopted as an introductory language in Denmark.
There is a version for the {Amiga} and a well-supported version for the {PC}, running under {MS-DOS} and {Microsoft Windows}, called UniCOMAL. Recently, it has been developed as a web-scripting language called WebCOMAL.
{macharsoft (http://www.macharsoft.demon.co.uk/)}.
There is a COMAL User's Group at 5501 Groveland Terr, Madison WI 53716, USA.
["Beginning COMAL", B. Christensen, Ellis Harwood 1982].
(2000-11-14)

common applications environment
Common Applications Environment
(CAE) Part of {X/Open}, based on {POSIX} and {C}.
[Details?]

common applications service element
Common Applications Service Element
{Common Application Service Element}

common architecture for next generation internet protocol
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
COmmon Business Oriented Language
[language, business] /koh'bol/ (COBOL) A programming language for simple computations on large amounts of data, designed by the {CODASYL} Committee in April 1960. COBOL's {natural language} style is intended to be largely self-documenting. It introduced the {record} structure.
COBOL was probably the most widely used programming language during the 1960s and 1970s. Many of the major programs that required repair or replacement due to {Year 2000} {software rot} issues were originally written in COBOL, and this was responsible for a short-lived demand for programmers fluent in this "dead language". Even in 2002 though, new COBOL programs are still being written in some organisations and many old COBOL programs are still running in {dinosaur} shops.
Major revisions in 1968 (ANS X3.23-1968), 1974 (ANS X3.23-1974) and 1985.
Many {hackers} regard COBOL with {fear and loathing} for being an {evil}, 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 deny all knowledge of the language.
{Usenet} newsgroup: {news:comp.lang.cobol}.
["Initial Specifications for a Common Business Oriented Language" DoD, US GPO, Apr 1960].
(2002-02-21)

common carrier
[communications, company] (Or "phone company") A private company that offers telecommunications services to the public.
(1995-03-20)

common command set
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
Common Communication Services
(CCS) The standard program interface to networks in {SAA}.

common desktop environment
Common Desktop Environment
(CDE) A {desktop} manager from {COSE}.
(1994-10-31)

common esp
Common ESP
[language] (CESP) A {Unix}-based version of ESP ({Extended Self-containing Prolog}) from {Mitsubishi}'s {AI Language Institute}.
(2000-07-11)

common gateway interface
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)}.
(2002-06-03)

common hardware reference platform
Common Hardware Reference Platform
{PowerPC Platform}

common information model
Common Information Model
[standard] (CIM) An {open systems} management {standard} driven by the {Distributed Management Task Force} (DMTF).
(2003-06-07)

common intermediate format
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
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
Common Internet File System
[protocol] (CIFS) An {Internet} {file system} {protocol}, based on {Microsoft}'s {SMB}. Microsoft has given CIFS to the {Internet Engineering Task Force} (IETF) as an Internet Draft. CIFS is intended to complement existing protocols such as {HTTP}, {FTP}, and {NFS}.
CIFS runs on top of {TCP/IP} and uses the Internet's {Domain Name Service} (DNS). It is optimised to support the slower speed {dial-up} connections common on the Internet.
CIFS is more flexible than FTP. FTP operations are carried out on entire files whereas CIFS is aimed at routine data access and incorporates high-performance multi-user read and write operations, {locking}, and file-sharing semantics.
CIFS is probably closest in functionality to NFS. NFS gives random access to files and directories, but is {stateless}. With CIFS, once a file is open, state about the current access to that file is stored on both the client and the server. This allows changes on the server side to be notified to the clients that are interested.
{Microsoft Overview
(http://msdn.microsoft.com/library/en-us/fileio/base/cifs_smb_protocol_overview.asp)}.
{SNIA page (http://www.snia.org/tech_activities/CIFS/)}.
{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)}.
(2003-03-12)

common isdn application programming interface
Common ISDN Application Programming Interface
[networking] (CAPI, Common-ISDN-API) A programming interface standard for an application program to communicate with an {ISDN} card.
Work on CAPI began in 1989, focussing on the German ISDN protocol, and was finished in 1990 by a CAPI working group consisting of application providers, ISDN equipment manufacturers, large customers, user groups and DBP Telekom, resulting in COMMON-ISDN-API Version 1.1. Following completion of the international protocol specification, almost every telecommunication provider offers {BRI} and {PRI} with {protocols} based on {Q.931} / ETS 3009 102. Common-ISDN-API Version 2.0 was developed to support all Q.931 protocols.
Latest version: 2.0, as of 1998-09-07.
{Home (http://www.capi.org/)}.
[Why not CIAPI?]
(1998-09-07)

common lisp
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
Common LISP in Parallel
(CLIP) A version of {Common LISP} from {Allegro} for the {Sequent Symmetry}.
(1994-12-12)

common lisp object system
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)

common management information protocol
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
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
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
Common Object Model
{Component Object Model}

common object request broker architecture
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
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
Common Program Interface
[programming] (CPI) the {API} of {SAA}.
(1997-12-01)

common user access
Common User Access
[programming] (CUA) the {user interface} standard of {SAA}.
(1997-12-01)

commonisdnapi
Common-ISDN-API
{Common ISDN Application Programming Interface}

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

commonwealth hackish
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 variables} include {blurgle}, "eek", "ook", "frodo", and "bilbo"; "wibble", "wobble", and in emergencies "wubble"; "banana", "tom", "dick", "harry", "wombat", "frog", {fish}, and so on and on (see {foo}).
Alternatives to verb doubling include suffixes "-o-rama", "frenzy" (as in feeding frenzy), and "city" (examples: "barf city!" "hack-o-rama!" "core dump frenzy!"). Finally, note that the American terms "parens", "brackets", and "braces" for (), [], and {} are uncommon; Commonwealth hackish prefers "brackets", "square brackets", and "curly brackets". Also, the use of "pling" for {bang} is common outside the United States.
See also {attoparsec}, {calculator}, {chemist}, {console jockey}, {fish}, {go-faster stripes}, {grunge}, {hakspek}, {heavy metal}, {leaky heap}, {lord high fixer}, {loose bytes}, {muddie}, {nadger}, {noddy}, {psychedelicware}, {plingnet}, {raster blaster}, {RTBM}, {seggie}, {spod}, {sun lounge}, {terminal junkie}, {tick-list features}, {weeble}, {weasel}, {YABA}, and notes or definitions under {Bad Thing}, {barf}, {bum}, {chase pointers}, {cosmic rays}, {crippleware}, {crunch}, {dodgy}, {gonk}, {hamster}, {hardwarily}, {mess-dos}, {nibble}, {proglet}, {root}, {SEX}, {tweak}, and {xyzzy}.
[{Jargon File}]
(1995-01-18)

communicating functional processes
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
Communicating Sequential Processes
[language, parallel] (CSP) A notation for {concurrency} based on {synchronous message passing} and selective communications designed by {Anthony Hoare} in 1978. It features {cobegin} and coend and was a precursor to {occam}.
See also {Contextually Communicating Sequential Processes}.
["Communicating Sequential Processes", A.R. Hoare, P-H 1985].
(1994-11-01)

communication 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 {networks}, transmission systems, relay stations, tributary stations, and {terminal} equipment capable of interconnection and interoperation so as to form an integrated whole. These individual components must serve a common purpose, be technically compatible, employ common procedures, respond to some form of control, and generally operate in unison.
["Communications Standard Dictionary", 2nd Edition, Martin H. Weik].
(1995-02-06)

communications decency act
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
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
Communications Server
[operating system] {IBM}'s rebranding of {ACF}.
(1999-01-20)

communications software
[communications, software] {Application programs}, {operating system} components, and probably {firmware}, forming part of a {communication system}. These different software components might be classified according to the functions within the {Open Systems Interconnect} model which they provide.
(2001-03-18)

community of massive gaming agency
Community of Massive Gaming Agency
[body] (CMGA) An online {gaming portal} introduced by the German Telekom.
(2003-06-15)

comnet
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}).
[{Jargon File}]
(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 {features} and cruft that don't merge cleanly into the overall design scheme (thus, some fans of {Classic C} maintain that {ANSI C} is no longer compact).
(1995-01-13)

compact cobol
Compact COBOL
A subset of {COBOL} defined, but not published, ca. 1961.
[Sammet 1969, p. 339].
(1995-01-19)

compact disc
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
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 readonly memory
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 readwrite
Compact Disc Read-Write
{Compact Disc Rewritable}

compact disc recordable
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
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
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
Compas Pascal
The predecessor of {Turbo Pascal}, sol by {POLY Data} of Denmark. It was later renamed POLY Pascal, and afterward sold to {Borland}.
(1995-01-19)

compass
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
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
Compel
{COMpute ParallEL}

competitive access provider
Competitive Access Provider
[networking] (CAP, or "Bypass Carrier") A company which provides network links between the customer and the {IntereXchange Carrier} or even directly to the {Internet Service Provider}. CAPs operate private networks independent of {Local Exchange Carriers}.
["Getting Connected The Internet at 56k and Up", Kevin Dowd, First Edition, p. 49, O'Reilly & Associates, Inc., June 1996, ISBN 1-56592-154-2 (US), ISBN 1-56592-203-4 (international)].
(1997-07-23)

compiled html
Compiled HTML
[filename extension] A {Microsoft} file format for distributing a collection of {HTML} files, along with their associated images, sounds, etc., as a single compressed archive file.
Microsoft use this format for {Windows} {HTML Help} files. Most chms include a project (.hhp) file listing the included files and basic settings, a contents (.hhc) file, an index (.hhk) file, html files, and, optionally, image files.
Users view chms with hh.exe, the HTML Help viewer installed with {Internet Explorer}.
Filename extension: .chm.

{(http://msdn.microsoft.com/library/en-us/htmlhelp/html/vsconHH1Start.asp)}.
(2003-05-17)

compiler
[programming, tool] A program that converts another program from some {source language} (or {programming language}) to {machine language} (object code). Some compilers output {assembly language} which is then converted to {machine language} by a separate {assembler}.
A compiler is distinguished from an assembler by the fact that each input statement does not, in general, correspond to a single machine instruction or fixed sequence of instructions. A compiler may support such features as automatic allocation of variables, arbitrary arithmetic expressions, control structures such as FOR and WHILE loops, variable {scope}, input/ouput operations, {higher-order 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 jock
A programmer who specialises in writing {compiler}s.
[{Jargon File}]
(1995-01-19)

compiler language for information processing
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
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)

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

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

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

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)

completeness
{complete}

complex instruction set computer
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)

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)

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)

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

composite
{aggregate}

composition
1. {function composition}.
2. {typesetting}.
(2000-08-16)

compositional c
Compositional C++
[language, parallel] (CC++) Extensions to {C++} for {compositional parallel programming}.
{FTP Caltech (ftp://csvax.cs.caltech.edu/pub/comp)}.
[Did Carl Kesselman at Cal Tech develop it?]
(2000-08-16)

compound document architecture
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
COMPREHENSIVE
An early system on {MIT}'s {Whirlwind}.
[Listed in CACM 2(5):16, May 1959].
(2002-06-03)

comprehensive perl archive network
Comprehensive Perl Archive Network
[tool] (CPAN) A collection of {Internet} {archives} containing material related to the {Perl} programming language.
{Home (http://www.perl.com/CPAN)}.
(1999-12-04)

comprehensive tex archive network
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
1. To feed data through any {compression} {algorithm}.
2. [tool] The {Unix} program "compress", now largely supplanted by {gzip}.
Unix compress was written in {C} by Joseph M. Orost, James A. Woods et al., and was widely circulated via {Usenet}. It uses the {Lempel-Ziv Welch} {algorithm} and normally produces files with the suffix ".Z".
Compress uses variable length codes. Initially, nine-bit codes are output until they are all used. When this occurs, ten-bit codes are used and so on, until an implementation-dependent maximum is reached.
After every 10 {kilobytes} of input the compression ratio is checked. If it is decreasing then the entire string table is discarded and information is collected from scratch.

compressed slip
Compressed SLIP
[networking] (CSLIP) {VanJacobsen TCP header compression}. A version of {SLIP} using {compression}. CSLIP has no effect on the data portion of the {packet} and has nothing to do with compression by {modem}. It does reduce the {TCP} header from 40 bytes to 7 bytes, a noticeable difference when doing {telnet} with lots of little packets. CSLIP has no effect on UDP, only TCP.
(1995-05-28)

compressed video
{video compression}

compression
1. [application] (Or "compaction") The coding of data to save storage space or transmission time. Although data is already coded in digital form for computer processing, it can often be coded more efficiently (using fewer bits). For example, {run-length encoding} replaces strings of repeated characters (or other units of data) with a single character and a count. There are many compression {algorithms} and utilities. Compressed data must be decompressed before it can be used.
The standard {Unix} compression utilty is called {compress} though {GNU}'s superior {gzip} has largely replaced it. Other compression utilties include {pack}, {zip} and {PKZIP}.
When compressing several similar files, it is usually better to join the files together into an {archive} of some kind (using {tar} for example) and then compress them, rather than to join together individually compressed files. This is because some common compression {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}, "{lossy}", "{lossless}".
{Compression FAQ (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.
(2001-01-30)

comprosl
COMPROSL
COMpound PROcedural Scientific Language.
A language for scientists and engineers.
[Sammet 1969, pp. 299-300].

compuerve
Compu$erve
(Or "CompuSpend", "Compu$pend") A pejorative name for {CompuServe Information Service} ({CI$}) drawing attention to perceived high charges.
[{Jargon File}]
(1994-11-08)

compulink information exchange
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
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
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
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
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
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)

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)

computer
Computer
[publication] A journal of the {IEEE Computer Society}.
(1995-03-10)

computer
[computer] A machine that can be programmed to manipulate symbols. Computers can perform complex and repetitive procedures quickly, precisely and reliably and can quickly store and retrieve large amounts of data.
The physical components from which a computer is constructed (electronic circuits and input/output devices) are known as "{hardware}". Most computers have four types of hardware component: CPU, input, output and memory. The CPU ({central processing unit}) executes programs ("{software}") which tell the computer what to do. Input and output (I/O) devices allow the computer to communicate with the user and the outside world. There are several kinds of memory - fast, expensive, short term memory (e.g. {RAM}) to hold intermediate results, and slower, cheaper, long-term memory (e.g. {magnetic disk} and {magnetic tape}) to hold programs and data between jobs.
See also {analogue computer}.
(1995-03-10)

computer science network
Computer + Science NETwork
(CSNET) The networking organisation which combined with {BITNET} to form {CREN}.
(1994-11-30)

computer aided design
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
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 software engineering
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 animation movie language
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 associates international inc
Computer Associates International, Inc.
[company] (CA) A US software development company, founded in 1976. CA have purchased many other software companies, including {Spectrum Software, Inc.}, {Cheyenne Software}, {Platinum Technology, Inc.}, {ASK Corporation}. They produce a number of popular software packages, including {Unicenter TNG} and {Ingres}.
They had an {Initial Public Offering} in 1981 valued at more than US$3.2M, had more than US$6B in revenue in 2000, and employ more than 17,000 people.
{Home (http://www.ca.com/)}.
(20002-04-20)

computer compiler
Computer Compiler
Proposed language for compiler design.
[Sammet 1969, p. 695].

computer confetti
[jargon] (Or "{chad}") A common term for {punched-card} {chad}, which, however, does not make good confetti, as the pieces are stiff and have sharp corners that could injure the eyes.
{GLS} reports that he once attended a wedding at {MIT} during which he and a few other guests enthusiastically threw chad instead of rice. The groom later grumbled that he and his bride had spent most of the evening trying to get the stuff out of their hair.
[{Jargon File}]
(2001-06-22)

computer conservation society
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
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
Computer Emergency Response Team
[security, body] (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] (incident reports).
Telephone +1 (412) 268 7090 (24-hour hotline).
(2000-07-09)

computer ethics
[philosophy] Ethics is the field of study that is concerned with questions of value, that is, judgments about what human behaviour is "good" or "bad". Ethical judgments are no different in the area of computing from those in any other area. Computers raise problems of privacy, ownership, theft, and power, to name but a few.
Computer ethics can be grounded in one of four basic world-views: Idealism, Realism, Pragmatism, or Existentialism. Idealists believe that reality is basically ideas and that ethics therefore involves conforming to ideals. Realists believe that reality is basically nature and that ethics therefore involves acting according to what is natural. Pragmatists believe that reality is not fixed but is in process and that ethics therefore is practical (that is, concerned with what will produce socially-desired results). Existentialists believe reality is self-defined and that ethics therefore is individual (that is, concerned only with one's own conscience). Idealism and Realism can be considered ABSOLUTIST worldviews because they are based on something fixed (that is, ideas or nature, respectively). Pragmatism and Existentialism can be considered RELATIVIST worldviews because they are based or something relational (that is, society or the individual, respectively).
Thus ethical judgments will vary, depending on the judge's world-view. Some examples:
First consider theft. Suppose a university's computer is used for sending an e-mail message to a friend or for conducting a full-blown private business (billing, payroll, inventory, etc.). The absolutist would say that both activities are unethical (while recognising a difference in the amount of wrong being done). A relativist might say that the latter activities were wrong because they tied up too much memory and slowed down the machine, but the e-mail message wasn't wrong because it had no significant effect on operations.
Next consider privacy. An instructor uses her account to acquire the cumulative grade point average of a student who is in a class which she instructs. She obtained the password for this restricted information from someone in the Records Office who erroneously thought that she was the student's advisor. The absolutist would probably say that the instructor acted wrongly, since the only person who is entitled to this information is the student and his or her advisor. The relativist would probably ask why the instructor wanted the information. If she replied that she wanted it to be sure that her grading of the student was consistent with the student's overall academic performance record, the relativist might agree that such use was acceptable.
Finally, consider power. At a particular university, if a professor wants a computer account, all she or he need do is request one but a student must obtain faculty sponsorship in order to receive an account. An absolutist (because of a proclivity for hierarchical thinking) might not have a problem with this divergence in procedure. A relativist, on the other hand, might question what makes the two situations essentially different (e.g. are faculty assumed to have more need for computers than students? Are students more likely to cause problems than faculty? Is this a hold-over from the days of "in loco parentis"?).
{"Philosophical Bases of Computer Ethics", Professor Robert N. Barger (http://www.nd.edu/~rbarger/metaethics.html)}.
{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}.
[{Jargon File}]
(1997-06-26)

computer generation incorporated
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
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 integrated manufacturing
Computer Integrated Manufacturing
[application] (CIM)
{(http://www.dmtf.org/)}.
[Summary?]
(2003-06-07)

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 management group of australia
Computer Management Group of Australia
[body] (CMGA)
[Summary?]
{CMGA Home (http://journal.cmga.org.au)}.
(2003-06-15)

computer mediated communication
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
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).
In 1999 the AIIM renamed COLD to ERM/COLD (Enterprise Report Management), to better reflect the changes and improvements this technology has undergone throughout the years.
An example application is {PearlDoc QuickFile Information Management System (http://www.pearldoc.com/)} (IMS).
(2001-04-30)

computer professionals for social responsibility
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 security
{security}

computer sex
[jargon] Two computers interfaced with each other.
(1996-02-22)

computer software configuration item
Computer Software Configuration Item
[jargon, software] (CSCI) The thing that a {change control} request is requesting to be changed.
(2000-09-06)

computer supported cooperative work
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
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 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)

computeraided instruction
Computer-Aided Instruction
[application, education] (CAI, or "assisted", "learning", CAL) The use of (personal) computers for education and training.
(1995-04-13)

computeraided learning
Computer-Aided Learning
{Computer-Aided Instruction}

computeraided software testing
Computer-Aided Software Testing
[programming] (CAST) Automated software testing in one or more phases of the {software life-cycle}.
(1996-05-10)

computerassisted learning
Computer-Assisted Learning
{Computer-Aided Instruction}

computerassisted software engineering
Computer-Assisted Software Engineering
{Computer-Aided Software Engineering}

computerbased training
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)

computergenerated imagery
computer-generated imagery
[graphics] (CGI) Animatied graphics produced by computer and used in film or television.
(1998-10-13)

computing
{computer}

computing devices canada ltd
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".)
[{Jargon File}]

compuware corporation
Compuware Corporation
[company] A {software} and service company with over 11,000 employees worldwide, including more than 7,000 in its professional services organisation. 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
["COMSL - A Communication System Simulation Language", R.L. Granger, Proc FJCC 37 (1970)].

comtran
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."
[{Jargon File}]

conc
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 device that combines the data streams from many simultaneously active inputs into one shared channel in such a way that the streams can be separated after transmission. The concentrator's output bandwidth must be at least as great as the total bandwidth of all simultaneously active inputs. A concentrator is one kind of {multiplexing} device.
For example, a concentrator may be used to connect 24 2400 bps TTYs to a host via a 57600 bps channel.
(2000-03-01)

conceptualisation
[artificial intelligence] The 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)

concertc
Concert/C
[language, parallel] A {parallel} extension of {ANSI C} with {asynchronous} {message passing} developed at the {IBM} {TJWRC} in July 1993.
{(ftp://software.watson.ibm.com/pub/concert/)}.
(2000-08-13)

concoord
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
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
["CONCUR, A Language for Continuous Concurrent Processes", R.M. Salter et al, Comp Langs 5(3):163-189 (1981)].

concurrency
{multitasking}

concurrent c
Concurrent C++
["Concurrent C++: Concurrent Programming with Class(es)", N. Gehani, Bell labs 1986].

concurrent c
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 clean
Concurrent Clean
[language] An alternative name for {Clean} 1.0.
(1995-11-08)

concurrent clu
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 constraint programming
Concurrent Constraint Programming
[language] (CCP) Not a language, but a general approach.
[Details?]
(2001-11-01)

concurrent euclid
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
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
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
Concurrent ML
[language] (CML) A {concurrent} extension of {SML/NJ} written by J. Reppy at {Cornell University} in 1990. CML supports dynamic {thread} creation and synchronous {message passing} on typed channels. Threads are implemented using first-class {continuations}. First-class synchronous operations allow users to tailor their synchronisation abstractions for their application. CML also supports both {stream I/O} and low-level I/O in an integrated fashion.
Latest version: 0.9.8, as of 1994-12-21, requires SML/NJ 0.75 or later.
{(ftp://ftp.cs.cornell.edu/pub/)}.
E-mail: [sml-bugs@research.att.com] (bugs).
["CML: A Higher-Order Concurrent Language", John H. Reppy, SIGPLAN Notices 26(6):293-305, June 1991].
(2000-08-09)

concurrent oberon
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 objectoriented c
Concurrent Object-Oriented C
[language] (cooC) A language with {concurrent} {object} execution from {Toshiba}. It has {synchronous} and {asynchronous} {message passing}. It has been implemented for {SunOS}.
{(ftp://tsbgw.isl.rdc.toshiba.co.jp/pub/toshiba/cooc-beta.1.1.tar.Z)}.
[SIGPLAN Notices 28(2)].
(2000-08-13)

concurrent objectoriented language
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
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
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
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)

concurrent spk
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)

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

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}.
[{Jargon File}]
(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.
[{Jargon File}]
(1995-03-14)

conference on data systems languages
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
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)

configsys
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 {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
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
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
Conjunctive Normal Form
[logic] (CNF) A {logical formula} consisting of a {conjunction} of {disjunctions} of terms where no disjunction contains a conjunction. Such a formula might also be described as a product of sums. E.g. the CNF of
(A and B) or C is (A or C) and (B or C).
Contrast {Disjunctive Normal Form}.
(1995-12-10)

connect
[library, networking] {Unix} socket library routine to connect a socket that has been created on the local hosts to one at a specified socket address on the remote host.
{Unix manual pages}: connect(2), accept(2).
(1995-03-21)

connected graph
[mathematics] A {graph} such that there is a path between any pair of nodes (via zero or more other nodes).
Thus if we start from any node and visit all nodes connected to it by a single edge, then all nodes connected to any of them, and so on, then we will eventually have visited every node in the connected graph.
(1996-09-22)

connected subgraph
[mathematics] A {connected graph} consisting of a {subset} of the {nodes} and {edges} of some other graph.
(1996-09-22)

connection machine lisp
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)

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

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

connectionoriented network service
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}.
[{Jargon File}]

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

conp
Co-NP
{complementary nondeterministic polynomial}

cons
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.
[{Jargon File}]

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.
[{Jargon File}]

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}.
[{Jargon File}]

console jockey
{terminal junkie}

consortium for lexical research
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)

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

constantineyourdon
Constantine/Yourdon
{Yourdon/Constantine}

constraint
[programming, mathematics] A {Boolean} {relation}, often an equality or {ineqality} relation, between the values of one or more mathematical variables (often two). E.g. x]3 is a constraint on x. {constraint satisfaction} attempts to assign values to variables so that all constraints are true.
{Usenet} newsgroup: {news:comp.constraints}. {FAQ (http://www.cs.unh.edu/ccc/archive/)}.
(2002-06-08)

constraint functional programming
[programming] (CFP) {functional programming} plus {constraints}.
(2002-06-08)

constraint handling in prolog
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)

constraint logic programming
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)

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)

constraintlisp
ConstraintLisp
[language] An {object-oriented} {constraint} language based on {CSP}. An extension of {Common Lisp} and {CLOS}.
["ConstraintLisp: An Object-Oriented Constraint Programming Language", Bing Liu (ex bing@iti.gov.sg) et al, SIGPLAN Notices 27(11):17-26, Nov 1992].
(2000-04-02)

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

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 {intuitionistic logic} for more information on this.
Most mathematicians are perfectly happy with non-constructive proofs; however, the constructive approach is popular in theoretical computer science, both because computer scientists are less given to abstraction than mathematicians and because {intuitionistic logic} turns out to be the right theory for a theoretical treatment of the foundations of computer science.
(1995-04-13)

constructive cost model
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
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 data model
Content Data Model
(CDM) An {SGML}-based {DoD} specification for interactive manuals.
(1995-02-15)

contentbased information retrieval
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)

contentfree
content-free
1. (By analogy with "context-free") Used of a message that adds nothing to the recipient's knowledge. Though this adjective is sometimes applied to {flamage}, it more usually connotes derision for communication styles that exalt form over substance or are centred on concerns irrelevant to the subject ostensibly at hand. Perhaps most used with reference to speeches by company presidents and other professional manipulators.
See also {four-colour glossies}.
2. Within British schools the term refers to general-purpose software such as a {word processor}, a {spreadsheet} or a program that tests spelling of words supplied by the teacher. This is in contrast to software designed to teach a particular topic, e.g. a plant growth simulation, an interactive periodic table or a program that tests spelling of a predetermined list of words. Content-free software can be more cost-effective as it can be reused for many lessons throughout the syllabus.
[{Jargon File}]
(1998-08-26)

contention slot
(Or contention period). Minimum time a {host} must transmit for before it can be sure that no other host's {packet} has collided with its transmission. If the maximum propagation delay from one host to any other is T, then a host that starts to transmit at time t0 may collide with a host that starts just before t0 + T. The first host will not detect the collision until time t0 + 2T.

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

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

contextsensitive menu
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)

contextually communicating sequential processes
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
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
Continuous System Modeling Program
[simulation] (CSMP) A program for {simulation} of dynamics of {continuous systems}. CSMP is similar to {CSSL}.
["A Guide to Using CSMP - The Continuous System Modeling Program", Frank H. Speckhart et al, P-H 1976].
(1995-02-23)

continuous system simulation language
Continuous System Simulation Language
[simulation] (CSSL) Versions include {ACSL}, {HYTRAN}, {SL-I}, {S/360} and {CSMP}.
CSSL(Continuous System Simulation Language) versions I, II, III, IV and V have been commercially available since 1968. CSSL-I was developed for {Jet Propulsion Labs} in 1968. CSSL-III was widely distributed from 1969-1975. CSSL-IV (interactive version) was developed by R. Nilsen and ran on over 30 different computers. Currently CSSL-V is marketed by {Simulation Services International} and available on {PC}s and {workstations}.
["The SCi Continuous System Simulation Language (CSSL)", Simulation, 9(6), Dec 1967].
[URL?]
(2003-04-15)

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
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 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 language
Control Language
[language] (CL) The {batch} language for {IBM RPG}/38, used in conjunction with {RPG III}.
See also {OCL}.
(2000-04-08)

control program
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
Control Program for Microcomputers
[operating system] (CP/M) An early {microcomputer} {operating system} written by Gary Kildall of {Digital Research} for {8080} and {Zilog Z80}-based 8-bit computers. CP/M was very popular in the late 1970s but was virtually wiped out by {MS-DOS} after the release of the {IBM PC} in 1981.
Many of CP/M's features and conventions strongly resemble those of early {DEC} operating systems such as {TOPS-10}, {OS/8}, {RSTS} and {RSX-11}.
CP/M might have been the {OS} for the {IBM PC} instead of {MS-DOS} but Kildall wanted to keep control of his creation and only license it to IBM. Big Blue however wanted to own and control it completely. Kildall spent the day IBM's reps wanted to meet him enjoying the perfect flying weather in his private plane.
[Did CP/M use the same {FAT} file system as MS-DOS?]
(1996-01-07)

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

controlc
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".
[{Jargon File}]
(1995-03-16)

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

controlo
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}.
[{Jargon File}]
(1995-03-16)

controlq
control-Q
[character] (Or XON, DC1, {Device Control} 1) The character with {ASCII} code 17, used in {software handshaking} to resume output after a previous {control-S}.
[{Jargon File}]
(1996-06-28)

controls
control-S
[character] (Or XOFF, DC3, {Device Control} 3) The character with {ASCII} code 19, used in {software handshaking} to temporarily suspend output until a {control-Q} is received.
[{Jargon File}]
(1996-06-28)

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
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
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
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
Conversational Monitor System
{Virtual Machine/Conversational Monitor System}

converse
[logic] The truth of a {proposition} of the form A =] B and its converse B =] A are shown in the following truth table:
A B | A =] B B =] A ------+---------------- f f | t t f t | t f t f | f t t t | t t
(2002-07-12)

conversion to iteration
A transformation applied to functional programs to replace recursion with iteration. A tail-recursive function can be compiled to an iterative loop where the recursive call becomes a jump back to the start and the parameters are held in registers which are updated with new values each time around the loop. See Iteration, Tail recursion optimisation.

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

convertf90
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
Convex Computer Corporation
[company] A mini-super-computer manufacturer.
Address: Richardson, Texas, USA.
(1995-03-01)

convex hull
[mathematics, graphics] For a {set} S in space, the smallest {convex set} containing S. In the plane, the convex hull can be visualized as the shape assumed by a rubber band that has been stretched around the set S and released to conform as closely as possible to S.
(1997-08-03)

conway john horton
Conway, John Horton
{John Horton Conway}

conways law
Conway's Law
[project, humour] The rule that the organisation of the software and the organisation of the software team will be congruent; originally stated as "If you have four groups working on a compiler, you'll get a 4-pass compiler".
Melvin Conway, an early proto-hacker, wrote an {assembler} for the {Burroughs 220} called SAVE. The name "SAVE" didn't stand for anything; it was just that you lost fewer card decks and listings because they all had SAVE written on them.
[{Jargon File}]

conways life
Conway's Life
{Life}

cooc
cooC
{Concurrent Object-Oriented C}.

cooccurrence matrix
[mathematics] Given a position operator P(i,j), let A be a nxn matrix whose element A[i][j] is the number of times that points with grey level (intensity) g[i] occur, in the position specified by P, relative to points with grey level g[j]. Let C be the nxn matrix that is produced by dividing A with the total number of point pairs that satisfy P. C[i][j] is a measure of the joint probability that a pair of points satisfying P will have values g[i], g[j]. C is called a cooccurrence matrix defined by P. Examples for the operator P are: "i above j", "i one position to the right and two below j", etc.
(1995-05-11)

cookbook
[programming] (From amateur electronics and radio) A book of small code segments that the reader can use to do various {magic} things in programs.
One current example is the "{PostScript} Language Tutorial and Cookbook" by Adobe Systems, Inc (Addison-Wesley, ISBN 0-201-10179-3), also known as the {Blue Book} which has recipes for things like wrapping text around arbitrary curves and making 3D fonts.
Cookbooks, slavishly followed, can lead one into {voodoo programming}, but are useful for hackers trying to {monkey up} small programs in unknown languages. This function is analogous to the role of phrasebooks in human languages.
[{Jargon File}]
(1994-11-04)

cooked mode
The normal{Unix} character-input mode, with interrupts enabled and with erase, kill and other special-character interpretations performed directly by the tty driver. Opposite of {raw mode}. See also {rare mode}. Other operating systems often have similar mode distinctions, and the raw/rare/cooked way of describing them has spread widely along with the {C} language and other Unix exports. Most generally, "cooked mode" may refer to any mode of a system that does extensive preprocessing before presenting data to a program.
[{Jargon File}]

cookie
1. [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.
[{Jargon File}]
(1997-01-07)

cookie jar
1. [programming] An area of memory set aside for storing {cookies}. Most commonly heard in the {Atari ST} community; many useful ST programs record their presence by storing a distinctive {magic number} in the jar. Programs can inquire after the presence or otherwise of other programs by searching the contents of the jar.
2. [security] A {cracker} term for the password file of a multi-user computer.
[{Jargon File}]
(1997-02-12)

cookie monster
[recreation] (From the children's TV program "Sesame Street") Any of a family of early (1970s) hacks reported on {TOPS-10}, {ITS}, {Multics} and elsewhere that would lock up either the victim's terminal (on a {time-sharing} machine) or the {console} (on a batch {mainframe}), repeatedly demanding "I WANT A COOKIE". The required responses ranged in complexity from "COOKIE" through "HAVE A COOKIE" and upward.
See also {wabbit}.
[{Jargon File}]
(1997-02-12)

cooky
{cookie}

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

coolgen
COOL:Gen
{Advantage Gen}

cooperative development environment
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
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)

coordinated universal time
Coordinated Universal Time
[time, standard] (UTC, World Time) The standard time common to every place in the world. UTC is derived from {International Atomic Time} (TAI) by the addition of a whole number of "leap seconds" to synchronise it with {Universal Time} 1 (UT1), thus allowing for the eccentricity of the Earth's orbit, the rotational axis tilt (23.5 degrees), but still showing the Earth's irregular rotation, on which UT1 is based.
Coordinated Universal Time is expressed using a 24-hour clock and uses the {Gregorian calendar}. It is used in aeroplane and ship navigation, where it also sometimes known by the military name, "Zulu time". "Zulu" in the phonetic alphabet stands for "Z" which stands for longitude zero.
UTC was defined by the International Radio Consultative Committee ({CCIR}), a predecessor of the {ITU-T}. CCIR Recommendation 460-4, or ITU-T Recommendation X.680 (7/94), contains the full definition.
The language-independent international abbreviation, UTC, is neither English nor French. It means both "Coordinated Universal Time" and "Temps Universel Coordonne".
{BIPM (http://www.bipm.fr/enus/5_Scientific/c_time/time_1.html)}.
{The Royal Observatory Greenwich (http://www.rog.nmm.ac.uk/leaflets/time/time.html)}.
{History of UTC and GMT (http://ecco.bsee.swin.edu.au/chronos/GMT-explained.html)}.
{U.S. National Institute of Standards & Technology (http://www.its.bldrdoc.gov/fs-1037/dir-009/_1277.htm)}.
{UK National Physical Laboratory (http://www.npl.co.uk/npl/ctm/time_scales.html)}.
{US Naval Observatory (http://tycho.usno.navy.mil/systime.html)}.
{International Telecommunications Union (http://www.itu.int/radioclub/rr/arts02.htm)}.
{Earth's irregular rotation (http://www.foldoc.org/pub/earth_rotation)}.
(2001-08-30)

coordinating committee for intercontinental research networks
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."
[{Jargon File}]
(1994-11-30)

copper
Conventional electrical network cable with a core conductor of copper (or aluminium!)
Opposed to {light pipe} or, say, a short-range microwave link.
[{Jargon File}]
(1994-11-30)

copper distributed data interface
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)

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.
[{Jargon File}]

copybook
[programming, library] (Or "copy member", "copy module") A common piece of {source code} designed to be copied into many source programs, used mainly in {IBM} {DOS} {mainframe} programming.
In {mainframe} {DOS} (DOS/VS, DOS/{VSE}, etc.), the copybook was stored as a "book" in a {source} library. A library was comprised of "books", prefixed with a letter designating the language, e.g., A.name for Assembler, C.name for Cobol, etc., because {DOS} didn't support multiple libraries, private libraries, or anything. This term is commonly used by {COBOL} programmers but is supported by most {mainframe} languages. The {IBM} {OS} series did not use the term "copybook", instead it referred to such files as "libraries" implemented as "partitioned data sets" or {PDS}.
Copybooks are functionally equivalent to {C} and {C++} {include} files.
(1997-07-31)

copybroke
[security] /kop'ee-brohk/ (Or "copywronged" - a play on "{copyright}") 1. Used to describe an instance of a {copy-protected} program that has been "broken"; that is, a copy with the copy-protection scheme disabled or removed.
2. Copy-protected software which is unusable because of some {bit-rot} or {bug} that has confused the {copy protection}.
3. Used to describe data damaged because of a side effect of a copy protection system.
[{Jargon File}]
(1997-03-16)

copying garbage collection
A {garbage collection} method where memory is divided into two equal halves, known as the "from space" and "to space". Garbage collection copies active cells from the from space to the to space and leaves behind an invisible pointer (an "indirection") from the old position to the new copy. Once all active cells have been copied in one direction, the spaces are swapped and the process repeated in the opposite direction.

copyleft
[legal] /kop'ee-left/ (A play on "copyright") The {copyright} notice and {General Public License} applying to the works of the {Free Software Foundation}, granting reuse and reproduction rights to everyone.
Typically copyrights take away freedoms; copyleft preserves them. It is a legal instrument that requires those who pass on a program to include the rights to use, modify, and redistribute the code; the code and the freedoms become legally inseparable.
The copyleft used by the GNU Project combines a regular copyright notice and the "GNU General Public License" (GPL). The GPL is a copying license which basically says that you have the aforementioned freedoms. The license is included in each GNU source code distribution and manual.
See also {General Public Virus}.
[{Jargon File}]
(1995-04-18)

copyright
[legal] The exclusive rights of the owner of the copyright on a work to make and distribute copies, prepare derivative works, and perform and display the work in public (these last two mainly apply to plays, films, dances and the like, but could also apply to software).
A work, including a piece of software, is under copyright by default in most coutries, whether of not it displays a copyright notice. However, a copyright notice may make it easier to assert ownership. The copyright owner is the person or company whose name appears in the copyright notice on the box, or the disk or the screen or wherever.
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 of first publication.
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.
Use of copyright to restrict redistribution is actually immoral, unethical, and illegitimate. It is a result of brainwashing by monopolists and corporate interests and it violates everyone's rights. Copyrights and patents hamper technological progress by making a naturally abundant resource scarce. Many, from communists to right wing libertarians, are trying to abolish intellectual property myths.
See also {public domain}, {copyleft}, {software law}.
{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?]
(2000-03-23)

copywronged
{copybroke}

coral
CORAL
1. {Class Oriented Ring Associated Language}.
2. A {deductive database} and {logic programming} system based on {Horn-clause} rules with extensions like {SQL}'s {group-by} and {aggregation} operators. CORAL was developed at the University of Wisconsin-Madison. It is implemented in C++ and has a {Prolog}-like {syntax}.
Many evaluation techniques are supported, including {bottom-up fixpoint evaluation} and top-down {backtracking}. {Modules} are separately compiled; different evaluation methods can be used in different modules within a single program. Disk-resident data is supported via an interface to the {Exodus} storage manager. There is an on-line help facility. It requires {AT&T} {C++} 2.0 (or {G++} soon) and runs on {Decstation} and {Sun-4}.
{(ftp://ftp.cs.wisc.edu/)}.
(1993-01-29)

coral 66
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
CORBA
{Common Object Request Broker Architecture}

corbie
CORBIE
[language] An early system on the {IBM 704}.
[Listed in CACM 2(5):16, May 1959].
(1996-05-10)

corc
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}.
[{Jargon File}]
(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".
[{Jargon File}]
(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).
[{Jargon File}]

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.

core leak
{memory leak}

core protocol stack
Core Protocol Stack
[architecture]
1. A portion of the {Web Services} {architecture} for defining and describing various {Web Services}.
2. The architectural {protocol} layers of a {Bluetooth} {wireless} {communication} system, comprising the {Host Control Interface} (HCI), {Logical Link Control and Adaptation Protocol} (L2CAP), {RS232 Serial Cable Emulation Profile} (RFCOMM), {Service Discovery Protocol} (SDP), and {Object Exchange} (OBEX).
(2002-06-28)

core war
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)

corel corporation
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)

corel ventura
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: Corel VENTURA 8, as of 1999-04-05.
{Home
(http://www.corelnet.com/products/graphicsandpublishing/ventura8/index.htm)}.
(1999-04-05)

corge
/korj/ Yet another {metasyntactic variable}, named after a cat invented by Mike Gallaher and propagated by the {GOSMACS} documentation.
See {grault}.
[{Jargon File}]
(1994-12-08)

cornell list processor
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
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
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
Coroutine Pascal
["Control Separation in Programming languages", Lemon et al, ACM Ann Conf 1977].
(1994-12-08)

corporation for open systems
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
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
CORREGATE
Based on {Internal Translator} (IT).
[Sammet 1969, p. 139].
(1994-11-30)

correlatives and conversions
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
Cortex
An experimental slow controls project at {CERN}.
(1994-11-30)

cortl
CORTL
An intermediate language, a form of {RTL}, by Carl McConnell [mcconnell@cs.uiuc.edu].
(1994-11-30)

cos
COS
1. {Cray Operating System}.
2. {Corporation for Open Systems}.

cose
COSE
Common Open Software Environment. An initiative by Hewlett-Packard, Sun, IBM, Novell, Univel and SCO to move toward consistency and interoperability between Unix suppliers.

cosine
COSINE
Cooperation for Open Systems Interconnection Networking in Europe. A EUREKA project.

cosmic rays
Notionally, the cause of {bit rot}. However, this is a semi-independent usage that may be invoked as a humorous way to {handwave} away any minor {randomness} that doesn't seem worth the bother of investigating. "Hey, Eric - I just got a burst of garbage on my {tube}, where did that come from?" "Cosmic rays, I guess." Compare {sunspots}, {phase of the moon}. The British seem to prefer the usage "cosmic showers"; "alpha particles" is also heard, because stray alpha particles passing through a memory chip can cause single bit errors (this becomes increasingly more likely as memory sizes and densities increase).
Factual note: Alpha particles cause bit rot, cosmic rays do not (except occasionally in spaceborne computers). Intel could not explain random bit drops in their early chips, and one hypothesis was cosmic rays. So they created the World's Largest Lead Safe, using 25 tons of the stuff, and used two identical boards for testing. One was placed in the safe, one outside. The hypothesis was that if cosmic rays were causing the bit drops, they should see a statistically significant difference between the error rates on the two boards. They did not observe such a difference. Further investigation demonstrated conclusively that the bit drops were due to alpha particle emissions from thorium (and to a much lesser degree uranium) in the encapsulation material. Since it is impossible to eliminate these radioactives (they are uniformly distributed through the earth's crust, with the statistically insignificant exception of uranium lodes) it became obvious that one has to design memories to withstand these hits.
[{Jargon File}]

coss
COSS
{Common Object Services Specification} in {CORBA}.

cost control callback
[communications] A system where a computer automatically rejects incoming {dial-up} calls from certain telephone numbers and calls them back, with the result that the caller pays nothing for the connection. This differs from security {callback} in that it applies to certain phone numbers instead of to certain user names.
(2003-07-13)

cost driver attribute
Cost Driver Attribute
[programming] Factors affecting the productivity of software development. These include attributes of the software, computers, personnel, and project.
(1996-05-28)

costschedule control system criteria
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
COTS
commercial off-the-shelf.

cougar
Cougar
[World-Wide Web, standard] A former (development) name for the {W3C}'s {HTML} 4 standard.
(2001-02-06)

cough and die
[jargon] {barf}. Connotes that the program is throwing its hands up by design rather than because of a bug or oversight. "The parser saw a control-A in its input where it was looking for a printable, so it coughed and died."
Compare {die}, {die horribly}, {scream and die}.
[{Jargon File}]
(1995-03-07)

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://ftp.ripe.net/iso3166-countrycodes.txt)}.
(2003-05-02)

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
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
Coursewriter III
[language, education] A simple {CAI} language, developed around 1976.
["Coursewriter III, Version 3 Author's Guide", SH20-1009, IBM].
(1995-03-13)

cowboy
[Sun, from William Gibson's {cyberpunk} SF] Synonym for {hacker}. It is reported that at Sun this word is often said with reverence.
[{Jargon File}]

cowsel
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
CP
A concurrent Prolog.
"The Concurrent Logic Programming Language CP": Definition and Operational Semantics", V. Saraswat, 14th POPL, ACM 1987, pp.49-62.

cpan
CPAN
{Comprehensive Perl Archive Network}

cparaops5
CParaOps5
[language] A {parallel} version of {OPS5} written at CMU, in {C} and compiling to C. CParaOps5 is available for {Unix}, {Mach}, {Encore Multimaxen}, and {Sequent}.
Latest version: 5.4, as of 1999-08-30.
{Home (http://www.cs.ucsb.edu/~acha/software.html)}.
(1999-08-30)

cpe
CPE
{Customer Premises Equipment}

cpga
CPGA
{Ceramic Pin Grid Array}

cpi
CPI
{Common Program Interface}

cpl
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
CPLD
{complex programmable logic device}

cpm
CPM
{Control Program for Microcomputers}

cpm
CP/M
{Control Program for Microcomputers}

cpo
{complete partial ordering}

cpp
{C preprocessor}.

cppp
[tool] A compiler {front-end} for {C++} by Tony Davis [ted@cs.brown.edu] with complete semantic processing. cppp is based on {Yacc} and outputs an {abstract syntax graph}. Version: 1.14.
{(ftp://wilma.cs.brown.edu/pub/cppp.tar.Z)}.
(1993-05-26)

cprolog
C-Prolog
[language, Prolog] An implementation of {Prolog} in {C}, developed by F. Pereira [pereira@research.att.com] et al in July 1982. It had no {garbage collection}.
It is not in the {public domain}.
(1994-10-13)

cproto
[programming, tool] A translator , written by Chin Huang at canrem.com, that generates {ANSI C} {function prototypes} from {K&R} {C} function definitions. It can also translate function definition heads between {K&R} style and {ANSI C} style.
Posted to {comp.sources}.misc, volume 29. Runs under {Unix}, {MS-DOS}.
(1992-07-18)

cps
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
CPSR
{Computer Professionals for Social Responsibility}

cpu
CPU
[architecture] 1. {central processing unit}.
2. Occasionally used (although less and less) to refer to the {system unit}.
(2000-08-10)

cpu info center
CPU Info Center
[processor] A {World-Wide Web} site at the {University of California at Berkeley} describing many different computers and their performance.
{(http://bwrc.eecs.berkeley.edu/CIC/)}.
(2000-01-12)

cpu time
CPU time
{processor time}

cpu wars
CPU Wars
/C-P-U worz/ A 1979 large-format comic by Chas Andres chronicling the attempts of the brainwashed androids of IPM (Impossible to Program Machines) to conquer and destroy the peaceful denizens of HEC (Human Engineered Computers). This rather transparent allegory featured many references to {ADVENT} and the immortal line "Eat flaming death, minicomputer mongrels!" (uttered, of course, by an IPM stormtrooper). It is alleged that the author subsequently received a letter of appreciation on IBM company stationery from the head of IBM's Thomas J. Watson Research Laboratories (then, as now, one of the few islands of true hackerdom in the IBM archipelago). The lower loop of the B in the IBM logo, it is said, had been carefully whited out. See {eat flaming death}.
[{Jargon File}]

cr
CR
{Carriage Return}

cr
[networking] The {country code} for Costa Rica.
(1999-01-27)

crack root
[security, jargon] To defeat the security system of a {Unix} machine and gain {root} privileges thereby.
See {cracker}.
[{Jargon File}]
(1996-08-10)

cracker
[jargon] An individual who attempts to gain unauthorised access to a computer system. These individuals are often malicious and have many means at their disposal for breaking into a system. The term was coined ca. 1985 by hackers in defence against journalistic misuse of "{hacker}". An earlier attempt to establish "worm" in this sense around 1981--82 on {Usenet} was largely a failure.
Use of both these neologisms reflects a strong revulsion against the theft and vandalism perpetrated by cracking rings. The neologism "cracker" in this sense may have been influenced not so much by the term "safe-cracker" as by the non-jargon term "cracker", which in Middle English meant an obnoxious person (e.g., "What cracker is this same that deafs our ears / With this abundance of superfluous breath?" -- Shakespeare's King John, Act II, Scene I) and in modern colloquial American English survives as a barely gentler synonym for "white trash".
While it is expected that any real hacker will have done some playful cracking and knows many of the basic techniques, anyone past {larval stage} is expected to have outgrown the desire to do so except for immediate practical reasons (for example, if it's necessary to get around some security in order to get some work done).
Contrary to widespread myth, cracking does not usually involve some mysterious leap of hackerly brilliance, but rather persistence and the dogged repetition of a handful of fairly well-known tricks that exploit common weaknesses in the security of target systems. Accordingly, most crackers are only mediocre hackers.
Thus, there is far less overlap between hackerdom and crackerdom than the {mundane} reader misled by sensationalistic journalism might expect. Crackers tend to gather in small, tight-knit, very secretive groups that have little overlap with the huge, open hacker poly-culture; though crackers often like to describe *themselves* as hackers, most true hackers consider them a separate and lower form of life, little better than {virus} writers. Ethical considerations aside, hackers figure that anyone who can't imagine a more interesting way to play with their computers than breaking into someone else's has to be pretty {losing}.
See also {Computer Emergency Response Team}, {dark-side hacker}, {hacker ethic}, {phreaking}, {samurai}, {Trojan Horse}.
[{Jargon File}]
(1998-06-29)

cracking
{cracker}

crank
(Automotive slang) Verb used to describe the performance of a machine, especially sustained performance. "This box cranks (or, cranks at) about 6 megaflops, with a burst mode of twice that on vectorised operations."
[{Jargon File}]
(1994-12-01)

crapplet
[World-Wide Web, abuse] A badly written or profoundly useless {Java} {applet}. "I just wasted 30 minutes downloading this stinkin' crapplet!"
(1997-03-30)

craptex
CrApTeX
/krap'tekh/ (University of York, England) Term of abuse used to describe {TeX} and {LaTeX} when they don't work (when used by TeXhackers), or all the time (by everyone else). The non-TeX enthusiasts generally dislike it because it is more verbose than other formatters (e.g. {troff}) and because (particularly if the standard Computer Modern fonts are used) it generates vast output files.
See {religious issues}.
[{Jargon File}]
(1994-12-01)

crash
1. A sudden, usually drastic failure. Most often said of the {system}, especially of magnetic disk drives (the term originally described what happened when the air gap of a hard disk collapses). "Three {lusers} lost their files in last night's disk crash." A disk crash that involves the read/write heads dropping onto the surface of the disks and scraping off the oxide may also be referred to as a "head crash", whereas the term "system crash" usually, though not always, implies that the operating system or other software was at fault.
2. To fail suddenly. "Has the system just crashed?" "Something crashed the OS!" See {down}. Also used transitively to indicate the cause of the crash (usually a person or a program, or both). "Those idiots playing {SPACEWAR} crashed the system."
[{Jargon File}]
(1994-12-01)

crash and burn
[jargon] A spectacular crash, in the mode of the conclusion of the car-chase scene in the movie "Bullitt" and many subsequent imitators (compare {die horribly}). A {Sun-3} {display screen} losing the flyback transformer and lightning strikes on {VAX-11/780} backplanes are notable crash and burn generators.
The construction "crash-and-burn machine" is reported for a computer used exclusively for alpha or {beta} testing, or reproducing bugs (i.e. not for development). The implication is that it wouldn't be such a disaster if that machine crashed, since only the testers would be inconvenienced.
[{Jargon File}]
(1996-02-22)

crawler
{robot}

crawling horror
[jargon] Ancient crufty hardware or software that is kept obstinately alive by forces beyond the control of the hackers at a site. Like {dusty deck} or {gonkulator}, but connotes that the thing described is not just an irritation but an active menace to health and sanity. "Mostly we code new stuff in C, but they pay us to maintain one big Fortran II application from nineteen-sixty-X that's a real crawling horror."
Compare {WOMBAT}.
[{Jargon File}]
(1994-12-01)

cray instability
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}.
[{Jargon File}]
(1994-10-13)

cray research inc
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)

crayola
/kray-oh'l*/ A {super-minicomputer} or {super-microcomputer} that provides some reasonable percentage of {supercomputer} performance for an unreasonably low price. A crayola might also be a {killer micro}.
[{Jargon File}]
(1994-10-13)

crayola books
[publication] A humorous and/or disparaging term for the {rainbow series} of National Computer Security Center (NCSC) computer security standards.
See also {Orange Book}.
[{Jargon File}]
(1996-12-03)

crayon
1. Someone who works on {Cray} {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.
[{Jargon File}]
(1994-10-13)

crc
CRC
{cyclic redundancy check}

creationism
The (false) belief that large, innovative software designs can be completely specified in advance and then painlessly magicked out of the void by the normal efforts of a team of normally talented programmers. In fact, experience has shown repeatedly that good designs arise only from evolutionary, exploratory interaction between one (or at most a small handful of) exceptionally able designer(s) and an active user population - and that the first try at a big new idea is always wrong. Unfortunately, because these truths don't fit the planning models beloved of {management}, they are generally ignored.
[{Jargon File}]

creeping elegance
Describes a tendency for parts of a design to become {elegant} past the point of diminishing return, something which often happens at the expense of the less interesting parts of the design, the schedule, and other things deemed important in the {Real World}. See also {creeping featurism}, {second-system effect}, {tense}.

creeping featurism
[jargon] /kree'ping fee'chr-izm/ (Or "feature creep") A systematic tendency to load more {chrome} and {features} onto systems at the expense of whatever elegance they may have possessed when originally designed. "The main problem with {BSD} Unix has always been creeping featurism."
More generally, creeping featurism is the tendency for anything to become more complicated because people keep saying "Gee, it would be even better if it had this feature too". The result is usually a patchwork because it grew one ad-hoc step at a time, rather than being planned. Planning is a lot of work, but it's easy to add just one extra little feature to help someone, and then another, and another, .... When creeping featurism gets out of hand, it's like a cancer.
Usually this term is used to describe computer programs, but it could also be said of the federal government, the IRS 1040 form, and new cars. A similar phenomenon sometimes afflicts conscious redesigns; see {second-system effect}. See also {creeping elegance}.
[{Jargon File}]
(1997-08-03)

creeping featuritis
[jargon] /kree'ping fee'-chr-i:`t*s/ A variant of {creeping featurism}, with its own spoonerism: "feeping creaturitis". Some people like to reserve this form for the disease as it actually manifests in {software} or {hardware}, as opposed to the lurking general tendency in designers' minds. -ism means "condition" or "pursuit of", whereas -itis usually means "inflammation of".
[{Jargon File}]
(1997-08-03)

crefine
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
CREN
{Corporation for Research and Educational Networking}

crew pram
CREW PRAM
concurrent read, exclusive write {PRAM}.

crippleware
1. Software that has some important functionality deliberately removed, so as to entice potential users to pay for a working version.
2. (Cambridge) {Guiltware} that exhorts you to donate to some charity.
Compare {careware}, {nagware}.
3. Hardware deliberately crippled, which can be upgraded to a more expensive model by a trivial change (e.g. removing a jumper). A correspondant gave the following example:
In 1982-5, a friend had a {Sharp} {scientific calculator} which was on the list of those permitted in exams. No programmable calculators were allowed.
A very similar, more expensive, programmable model had two extra keys for programming where the cheaper version just had blank metal.
My friend took his calculator apart (as you would) and lo and behold, the rubber switches of the program keys were there on the circuit board. So all he had to do was cut a hole in the face. For exams he would pre-load the calculator with any useful routines, put a sticker with his name on it over the hole, and press the buttons through the sticker with a pen.
[{Jargon File}]
(2001-05-12)

criptography
[spelling] It's spelled "{cryptography}".
(1996-12-13)

crisis software
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
(Or "discrete") The opposite of "{fuzzy}".
(1994-12-23)

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

crispy critters
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.
[{Jargon File}]
(1994-12-23)

critical section
A non-{re-entrant} piece of code that can only be executed by one process at a time. It will usually terminate in bounded time and a process will only have to wait a bounded time to enter it. Some synchronisation mechanism is required at the entry and exit of the critical section to ensure exclusive use.

crl
CRL
Carnegie Representation Language.
{Carnegie Group, Inc.} Frame language derived from SRL. Written in Common LISP. Used in the product Knowledge Craft.

crlf
CRLF
[character] /ker'l*f/, sometimes /kru'l*f/ or /C-R-L-F/ A {carriage return} (CR, {ASCII} 13) followed by a {line feed} (LF, {ASCII} 10). Under {Unix} influence this usage has become less common because Unix uses just line feed as its line terminator.
See {newline}, {terpri}.
[{Jargon File}]
(1995-03-27)

crm
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.
[{Jargon File}]

cron
[operating system] The Unix clock {daemon} that executes commands at specified dates and times according to instructions in a "crontab" file.
{Unix manual page}: cron(8).
(1997-04-10)

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

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

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

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

crosspost
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.
[{Jargon File}]

crosstabs
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
CROW PRAM
concurrent read, owner write {PRAM}.

crt
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.
[{Jargon File}]

crumb
Two binary digits; a {quad}. Larger than a {bit}, smaller than a {nibble}. Considered silly. Synonym {tayste}.

crunch
1. [jargon] To process, usually in a time-consuming or complicated way. Connotes an essentially trivial operation that is nonetheless painful to perform. The pain may be due to the triviality's being embedded in a loop from 1 to 1,000,000,000. "Fortran programs do mostly {number crunching}."
2. [compression] To reduce the size of a file without losing information by a 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}. Used at {XEROX} and {CMU}, among other places.
4. To squeeze program source to the minimum size that will still compile or execute. The term came from a {BBC Microcomputer} program that crunched {BBC BASIC} {source} in order to make it run more quickly (apart from storing {keywords} as byte codes, the language was wholly interpreted, so the number of characters mattered). {Obfuscated C Contest} entries are often crunched; see the first example under that entry.
[{Jargon File}]
(2002-03-14)

cruncha cruncha cruncha
[jargon] /kruhn'ch* kruhn'ch* kruhn'ch*/ An encouragement sometimes muttered to a machine bogged down in a serious {grovel}. Also describes a notional sound made by grovelling hardware.
See {grind} (sense 3).
(2003-06-02)

crunchy
{floppy disk}

cryppie
[job, cryptography] /krip'ee/ A cryptographer. One who hacks or implements software or hardware for {cryptography}.
[{Jargon File}]
(1996-08-23)

crypt
{Unix} command to perform {encryption} and {decryption}.

crypt breakers workbench
Crypt Breakers Workbench
(cbw) A freely distributable multi-window integrated workbench of tools for {cryptanalysis} of files encrypted with the {4.2BSD} {Unix} {crypt} command. It was originally written by Robert W. Baldwin at {MIT}.
{(ftp://black.ox.ac.uk/src/security)},
{(ftp://scitsc.wlv.ac.uk/pub/infomagic/usenet.cdrom/sources/unix/volume10)}, {(ftp://ftp.sunet.se/pub/usenet/comp.sources.unix/volume10)}.
(1994-12-06)

cryptanalysis
The branch of {cryptography} concerned with decoding encrypted messages when you're not supposed to be able to.
(1994-12-06)

cryptography
[cryptography] The practise and study of {encryption} and {decryption} - encoding data so that it can only be decoded by specific individuals. A system for encrypting and decrypting data is a cryptosystem. These usually involve an {algorithm} for combining the original data ("{plaintext}") with one or more "keys" - numbers or strings of characters known only to the sender and/or recipient. The resulting output is known as "{ciphertext}".
The security of a cryptosystem usually depends on the secrecy of (some of) the keys rather than with the supposed secrecy of the {algorithm}. A strong cryptosystem has a large range of possible keys so that it is not possible to just try all possible keys (a "{brute force}" approach). A strong cryptosystem will produce ciphertext which appears random to all standard statistical tests. A strong cryptosystem will resist all known previous methods for breaking codes ("{cryptanalysis}").
See also {cryptology}, {public-key encryption}, {RSA}.
{Usenet} newsgroups: {news:sci.crypt}, {news:sci.crypt.research}.
{FAQ} {MIT (ftp://rtfm.mit.edu/pub/usenet/news.answers/cryptography-faq/)}.
{Cryptography glossary (http://www.io.com/~ritter/GLOSSARY.HTM#BruteForceAttack)}.
{RSA cryptography glossary (http://www.rsasecurity.com/rsalabs/faq/glossary.html)}.
{Cryptography, PGP, and Your Privacy (http://draco.centerline.com:8080/~franl/crypto.html)}.
(2000-01-16)

cryptology
The study of {cryptography} and {cryptanalysis}.
(1994-12-06)

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

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

cscheme
C-Scheme
{MIT Scheme}

csci
CSCI
{Computer Software Configuration Item}

cscsc
C/SCSC
{Cost/Schedule Control System Criteria}

cscw
CSCW
{Computer Supported Cooperative Work}

csg
CSG
{constructive solid geometry}

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

cshrc
.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
CSID
{character set identifier}

csim
C++SIM
A {class} library like the {simulation} class libraries of {SIMULA}, by Mark Little [M.C.Little@newcastle.ac.uk]. Version: 1.0.
{(ftp://arjuna.ncl.ac.uk/)}.
(1993-06-04)

csk corporation
CSK Corporation
[company] The japanese company that owns {CSK Software} and {Sega}. CSK Corp. is the largest independent japanese software company.
(2003-05-13)

csk software
CSK Software
[company] An international software company formed by the merger of {Quay Financial Software} and {Micrognosis}, and fully owned by {CSK Corporation}, Japan.
CSK Software is based in Frankfurt/Main (Germany) with offices in London (UK), Zurich (Switzerland), Madrid (Spain), and Singapore. Products segments are RDD: Realtime data delivery, main product is {Slingshot} for delivering real-time data over the Internet (real push technology). ETS: Electronic Trading Systems, price calculation and automatic trading (with connections to {XONTRO} and {XETRA}). EAI: {Enterprise Application Integration}, main product is {XGen}, an universal message converter with {GUI} and connections also to {SWIFT} (SWIFT gold label).
{Home (http://www.csksoftware.com/)}.
E-mail: [info@csksoftware.com].
Address: CSK Software AG, Opernplatz 2, D-60313 Frankfurt, Germany.
Tel: +49 (69) 509 520. Fax: +49 (69) 5095 2333.
(2003-05-13)

csl
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
CSLIP
{Compressed SLIP}

csm
CSM
["CSM - A Distributed Programming Language", S. Zhongxiu et al, IEEE Trans Soft Eng SE-13(4):497-500 (Apr 1987)].

csmacd
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
CSMP
{Continuous System Modeling Program}

csnet
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
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
CSP
1. [language] {Communicating Sequential Processes}.
2. [hardware] {Chip Scale Packaging}.

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

cspcode
CS/PCode
Used at {Microsoft}.

cspk
CSP/k
{Concurrent SP/k}

csprolog
CS-Prolog
Distributed logic language.
"CS-Prolog on Multi-Transputer Systems", I. Futo et al, Microprocessors & Microsystems, March 1989.

csps
CSPS
["Toward Comprehensive Specification of Distributed Systems", G. Roman et al, Proc 7th Intl Conf on Distrib Comp Sys, IEEE 1987, pp. 282-289].

csps
CSP-S
["Implementation of CSP-S for Description of Distributed Algorithms", L. Patniak et al, Comput Lang 9(3):193-202 (1984)].

csqcode
CS/QCode
Used at {Microsoft}.
[More detail?]

csr
CSR
{Control and Status Register}

css
CSS
{Cascading Style Sheets}

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

cssii
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
CSSL
{Continuous System Simulation Language}

cstools
CSTools
{Concurrency} through {message-passing} to named message queues.

csu
CSU
1. {California State University}.
2. {Cleveland State University}.
3. {Channel Service Unit}.

csudsu
CSU/DSU
{channel service unit/digital service unit}

csv
CSV
{comma separated values}

ctc
CTC
{Cornell Theory Center}

ctcp
CTCP
[networking] {Client To Client Protocol}

cti
CTI
1. [communications] {Computer Telephone Integration}.
2. [education] Computers in Teaching Initiative. A UK government scheme.
(1996-12-08)

ctl
CTL
1. {Checkout Test language}.
2. {Compiler Target Language}.
3. {Computational Tree Logic}

ctos
CTOS
1. [operating system] {Computerised Tomography Operating System}.
2. [operating system] {Convergent Technologies Operating System}.
(1997-06-23)

ctrl
{control}

cts
CTS
1. [communications] {clear to send}.
2. [medical] {overuse strain injury}.
(1999-10-03)

ctss
CTSS
{Compatible Timesharing System}

cty
CTY
/sit'ee/ or /C-T-Y/ [MIT] The terminal physically associated with a computer's system {console}. The term is a contraction of "Console {tty}", that is, "Console TeleTYpe". This {ITS}- and {TOPS-10}-associated term has become less common, as most Unix hackers simply refer to the CTY as "the console".
[{Jargon File}]

cu
CU
[chat] "see you".
(1997-12-01)

cu
1. [communications] {Call Unix}.
2. [networking] The {country code} for Cuba.
(1999-01-27)

cua
CUA
{Common User Access}

cube
Cube
Three-dimensional visual language for higher-order logic.
"The Cube Language", M. Najork et al, 1991 IEEE Workshop on Visual Langs, Oct 1991, pp.218-224.
[{Jargon File}]

cube
1. [short for "cubicle"] A module in the open-plan offices used at many programming shops. "I've got the manuals in my cube."
2. A NeXT machine (which resembles a matte-black cube).

cubing
[parallel with "tubing"] 1. Hacking on an IPSC ({Intel Personal SuperComputer}) hypercube. "Louella's gone cubing *again*!!"
[{Jargon File}]

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

cuckoos egg
Cuckoo's Egg
{The Cuckoo's Egg}

cul
CUL
[chat] "See you later".
(1997-12-01)

cullerfried system
Culler-Fried System
A system for interactive mathematics.
[Sammet 1969, p. 253-255].
(1994-11-15)

cupid
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
CUPL
Cornell University Programming Language.
A language for simple mathematics problems, based on {CORC}, with {PL/I}-like {syntax}.
["An Instruction Language for CUPL", R.J. Walker, Cornell U, Jul 1967].
(1994-11-15)

curly bracket
brace

current
[electronics] The quantity of {charge} per unit time, measured in Amperes (Amps, A). By historical convention, the sign of current is positive for currents flowing from positive to negative {potential}, but experience indicates that electrons are negatively charged and flow in the opposite direction.
(1995-10-05)

curried function
[mathematics, programming] A {function} of N {arguments} that is considered as a function of one argument which returns another function of N-1 arguments. E.g. in {Haskell} we can define:
average :: Int -] (Int -] Int)
(The parentheses are optional). A {partial application} of average, to one Int, e.g. (average 4), returns a function of type (Int -] Int) which averages its argument with 4. In uncurried languages a function must always be applied to all its arguments but a {partial application} can be represented using a {lambda abstraction}:
\ x -] average(4,x)
Currying is necessary if {full laziness} is to be applied to functional sub-expressions.
It was named after the logician {Haskell Curry} but the 19th-century logician, {Gottlob Frege} was the first to propose it and it was first referred to in ["Uber die Bausteine der mathematischen Logik", M. Schoenfinkel, Mathematische Annalen. Vol 92 (1924)].
{David Turner} said he got the term from {Christopher Strachey} who invented the term "currying" and used it in his lecture notes on programming languages written circa 1967. Strachey also remarked that it ought really to be called "Schoenfinkeling".
Stefan Kahrs [smk@dcs.ed.ac.uk] reported hearing somebody in Germany trying to introduce "scho"nen" for currying and "finkeln" for "uncurrying". The verb "scho"nen" means "to beautify"; "finkeln" isn't a German word, but it suggests "to fiddle".
["Some philosophical aspects of combinatory logic", H. B. Curry, The Kleene Symposium, Eds. J. Barwise, J. Keisler, K. Kunen, North Holland, 1980, pp. 85-101]
(2002-07-24)

currying
Turning an uncurried function into a {curried function}.

curseperl
A {curses} library for {Perl} by the author of Perl, Larry Wall [lwall@netlabs.com]. It comes with Perl.
(1994-12-06)

curses
A set of subroutines in {Unix} for handling navigation on a terminal screen using the cursor.

cursor
1. [hardware] A visually distinct mark on a display indicating where newly typed text will be inserted. The cursor moves as text is typed and, in most modern editors, can be moved around within a document by the user to change the insertion point.
2. [database] In {SQL}, a named control structure used by an {application program} to point to a row of data. The position of the {row} is within a {table} or {view}, and the cursor is used interactively so select rows from columns.
(1996-12-27)

cursor dipped in x
cursor dipped in X
[jargon] The metaphorical source of the electronic equivalent of a poisoned-pen letter. Derived from English metaphors of the form "pen dipped in X" (where X = e.g. "acid", "bile", "vitriol"). These map over neatly to this hackish usage (the cursor being what moves, leaving letters behind, when one is composing on-line).
"Talk about a {nastygram}! He must've had his cursor dipped in acid when he wrote that one!"
[{Jargon File}]
(1996-12-27)

cuseeme
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
CUSI
A collection of indices to various {World-Wide Web} and other {Internet} documents. It is located at {Nexor} in the UK.
{(http://web.nexor.co.uk/public/cusi/cusi.html)}.
(1994-11-29)

cuspy
/kuhs'pee/ [WPI: from the {DEC} abbreviation CUSP, for "Commonly Used System Program", i.e. a utility program used by many people] 1. (of a program) Well-written.
2. Functionally excellent. A program that performs well and interfaces well to users is cuspy. See {rude}.
[{Jargon File}]

customer information control system
Customer Information Control System
[communications, database] (CICS) An {IBM} communications system that was converted for {database} handling.
[Huh?]
(1994-11-29)

customer information systems
Customer Information Systems
{Customer Relationship Management}

customer interaction software
Customer Interaction Software
{Customer Relationship Management}

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
CUT
{Coordinated Universal Time}

cut a tape
To write a software or document distribution on magnetic tape for shipment. Has nothing to do with physically cutting the medium! "Cutting a disk" has also been reported as live usage. Related slang usages are mainstream business's "cut a check", the recording industry's "cut a record", and the military's "cut an order".
All of these usages reflect physical processes in obsolete recording and duplication technologies. The first stage in manufacturing an old-style vinyl record involved cutting grooves in a stamping die with a precision lathe. More mundanely, the dominant technology for mass duplication of paper documents in pre-photocopying days involved "cutting a stencil", punching away portions of the wax overlay on a silk screen. More directly, paper tape with holes punched in it was an important early storage medium.
[{Jargon File}]

cut and paste
{copy and paste}

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)

cutthrough switching
cut-through switching
[networking] The application of {wormhole routing} to {packets} in a {packet switching} system so that forwarding of a packet starts as soon as its destination is known, before the whole packet had arrived.
(2003-05-15)

cv
[networking] The {country code} for Cape Verde.
(1999-01-27)

cvs
CVS
A {code management} system based on {RCS}.

cw
CW
{continuous wave}

cweb
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
CWI
{Centrum voor Wiskunde en Informatica}

cwic
CWIC
Compiler for Writing and Implementing Compilers. Val Schorre. One of the early metacompilers. Compare {Meta-II}.

cwis
CWIS
{Campus-Wide Information System}

cx
[networking] The {country code} for Christmas Island.
(1999-01-27)

cxref
[tool] A cross-reference generator by Arnold Robbins from {Georgia Institute of Technology}.
(2000-02-29)

cy
[networking] The {country code} for Cyprus.
(1999-01-27)

cy486slc
Cy486SLC
A version of the {Intel 486} made by {Cyrix}. It has a {486SX} {instruction set}, a 1 kilobyte {cache}, and an {Intel 80386SX}-compatible pinout and thus, 16-bit data bus.
(1994-11-30)

cyber
[chat] To have {cybersex}.
(1997-06-21)

cyberbunny
[abuse] Someone who knows absolutely nothing about computers and advises people who know absolutely nothing about computers. The term is used mostly on {AOL}, {Prodigy}, {Compuserve}, etc.
(1996-02-18)

cyberchondriac
[jargon, humour] (After "hypochondriac") 1. A user who always thinks there is something wrong with his computer.
2. Someone who uses the {World-Wide Web} to indulge their hyperchondria.
(2001-03-10)

cybercrud
[jargon] /si:'ber-kruhd/ 1. (Coined by Ted Nelson) Obfuscatory tech-talk. Verbiage with a high {MEGO} factor. The computer equivalent of bureaucratese.
2. Incomprehensible stuff embedded in e-mail. First there were the "Received" headers that show how mail flows through systems, then MIME ({Multi-purpose Internet Mail Extensions}) headers and part boundaries, and now huge blocks of {hex} for PEM ({Privacy Enhanced Mail}) or PGP ({Pretty Good Privacy}) {digital signatures} and certificates of authenticity. This stuff all has a purpose and good user interfaces should hide it, but all too often users are forced to wade through it.
[{Jargon File}]
(1995-04-04)

cyberglove
CyberGlove
[hardware, virtual reality] A {data glove} sold by {Virtual Technologies}. The spandex-like glove houses 18 sensors to track accurately just about every move your hand is capable of making. The accompanying software includes a three-dimensional hand model that can he added to any {virtual reality} application. The glove includes a mount for Polhemus and Ascension sensors.
(2003-06-17)

cybernetics
[robotics] /si:`b*-net'iks/ The study of control and communication in living and man-made systems.
The term was first proposed by {Norbert Wiener} in the book referenced below. Originally, cybernetics drew upon electrical engineering, mathematics, biology, neurophysiology, anthropology, and psychology to study and describe actions, feedback, and response in systems of all kinds. It aims to understand the similarities and differences in internal workings of organic and machine processes and, by formulating abstract concepts common to all systems, to understand their behaviour.
Modern "second-order cybernetics" places emphasis on how the process of constructing models of the systems is influenced by those very systems, hence an elegant definition - "applied epistemology".
Related recent developments (often referred to as {sciences of complexity}) that are distinguished as separate disciplines are {artificial intelligence}, {neural networks}, {systems theory}, and {chaos theory}, but the boundaries between those and cybernetics proper are not precise.
See also {robot}.
{The Cybernetics Society (http://www.cybsoc.org)} of the UK.
{American Society for Cybernetics (http://www.asc-cybernetics.org/)}.
{IEEE Systems, Man and Cybernetics Society (http://www.isye.gatech.edu/ieee-smc/)}.
{International project "Principia Cybernetica" (http://pespmc1.vub.ac.be/DEFAULT.html)}.
{Usenet} newsgroup: {sci.systems (news:sci.systems)}.
["Cybernetics, or control and communication in the animal and the machine", N. Wiener, New York: John Wiley & Sons, Inc., 1948]
(2002-01-01)

cyberpunk
/si:'ber-puhnk/ (Originally coined by SF writer Bruce Bethke and/or editor Gardner Dozois) A subgenre of SF launched in 1982 by William Gibson's epoch-making novel "Neuromancer" (though its roots go back through Vernor Vinge's "True Names" to John Brunner's 1975 novel "The Shockwave Rider"). Gibson's near-total ignorance of computers and the present-day hacker culture enabled him to speculate about the role of computers and hackers in the future in ways hackers have since found both irritatingly na"ive and tremendously stimulating. Gibson's work was widely imitated, in particular by the short-lived but innovative "Max Headroom" TV series. See {cyberspace}, {ice}, {jack in}, {go flatline}.
Since 1990 or so, popular culture has included a movement or fashion trend that calls itself "cyberpunk", associated especially with the rave/techno subculture. Hackers have mixed feelings about this. On the one hand, self-described cyberpunks too often seem to be shallow trendoids in black leather who have substituted enthusiastic blathering about technology for actually learning and *doing* it. Attitude is no substitute for competence. On the other hand, at least cyberpunks are excited about the right things and properly respectful of hacking talent in those who have it. The general consensus is to tolerate them politely in hopes that they'll attract people who grow into being true hackers.
[{Jargon File}]

cyberrhea
[humour, jargon] /si:'ber-eer/ An affliction of some {word processor} users; excessive frequency and looseness of productivity. Particularly virulent among those who have not discovered the fortifying virtues of revision.
["Right Words, Right Places" Scott Rice, Wadsworth, 1993, A5.]
(1997-02-25)

cybersex
[networking] Sex performed in {real time} via a digital medium.
Compare {teledildonics}.
[Details?]
(1998-02-10)

cyberspace
[jargon] /si:'ber-spays/ 1. (Coined by {William Gibson}) Notional "information-space" loaded with visual cues and navigable with brain-computer interfaces called "cyberspace decks"; a characteristic prop of {cyberpunk} SF. In 1991 serious efforts to construct {virtual reality} interfaces modelled explicitly on Gibsonian cyberspace were already under way, using more conventional devices such as glove sensors and binocular TV headsets. Few hackers are prepared to deny outright the possibility of a cyberspace someday evolving out of the network (see {network, the}).
2. Occasionally, the metaphoric location of the mind of a person in {hack mode}. Some hackers report experiencing strong eidetic imagery when in hack mode; interestingly, independent reports from multiple sources suggest that there are common features to the experience. In particular, the dominant colours of this subjective "cyberspace" are often grey and silver, and the imagery often involves constellations of marching dots, elaborate shifting patterns of lines and angles, or moire patterns.
[{Jargon File}]
(1999-02-01)

cyberspastic
[humour] A person suffering from information overload while browsing the {Internet} or {World-Wide Web}.
Compare {webhead}.
(1995-11-09)

cybersquatting
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
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
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
CYBIL
Control Data's system programming language in the 80's. Major parts of CDC systems written in this.

cyc
Cyc
[artificial intelligence] A large {knowledge-based system}.
Cyc is a very large, multi-contextual {knowledge base} and {inference engine}, the development of which started at the {Microelectronics and Computer Technology Corporation} (MCC) in Austin, Texas during the early 1980s.
Over the past eleven years the members of the Cyc team, lead by {Doug Lenat}, have added to the knowledge base a huge amount of fundamental human knowledge: {facts}, rules of thumb, and {heuristics} for reasoning about the objects and events of modern everyday life.
Cyc is an attempt to do symbolic {AI} on a massive scale. It is not based on numerical methods such as statistical probabilities, nor is it based on {neural networks} or {fuzzy logic}. All of the knowledge in Cyc is represented {declaratively} in the form of logical {assertions}. Cyc presently contains approximately 400,000 significant assertions, which include simple statements of fact, rules about what conclusions to draw if certain statements of fact are satisfied, and rules about how to reason with certain types of facts and rules. The {inference engine} derives new conclusions using {deductive reasoning}.
To date, Cyc has made possible ground-breaking pilot applications in the areas of {heterogeneous} database browsing and integration, {captioned image retrieval}, and {natural language processing}.
In January of 1995, a new independent company named Cycorp was created to continue the Cyc project. Cycorp is still in Austin, Texas. The president of Cycorp is {Doug Lenat}.
The development of Cyc has been supported by several organisations, including {Apple}, {Bellcore}, {DEC}, {DoD}, {Interval}, {Kodak}, and {Microsoft}.
{Home (http://www.cyc.com/)}.
{Unofficial FAQ (http://www.robotwisdom.com/ai/cycfaq.html)}.
(1999-09-07)

cycl
CYCL
A {frame language}.
["Building Large Knowledge-Based Systems", Doug B. Lenat et al, A-W 1990].

cycle
[unit] A basic unit of computation, one period of a computer {clock}.
Each {instruction} takes a number of clock cycles. Often the computer can access its memory once on every clock cycle, and so one speaks also of "memory cycles".
Every {hacker} wants more cycles (noted hacker {Bill Gosper} describes himself as a "cycle junkie"). There are only so many cycles per second, and when you are sharing a computer the cycles get divided up among the users. The more cycles the computer spends working on your program rather than someone else's, the faster your program will run. That's why every hacker wants more cycles: so he can spend less time waiting for the computer to respond.
The use of the term "cycle" for a computer clock period can probably be traced back to the rotation of a generator generating alternating current though computers generally use a clock signal which is more like a {square wave}. Interestingly, the earliest mechanical calculators, e.g. Babbage's {Difference Engine}, really did have parts which rotated in true cycles.
[{Jargon File}]
(1997-09-30)

cycle crunch
[jargon] A situation wherein the number of people trying to use a computer simultaneously has reached the point where no one can get enough {cycles} because they are spread too thin and the system has probably begun to {thrash}.
This scenario is an inevitable result of Parkinson's Law applied to {time-sharing}. Usually the only solution is to buy more computer. Happily, this has rapidly become easier since the mid-1980s, so much so that the very term "cycle crunch" now has a faintly archaic flavour; most hackers now use {workstations} or {personal computers} as opposed to traditional {time-sharing} systems.
[{Jargon File}]
(1994-11-29)

cycle drought
A scarcity of {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."
[{Jargon File}]
(1994-11-29)

cycle of reincarnation
A term coined by {Ivan Sutherland} ca. 1970 to refer to a well-known effect whereby function in a computing system family is migrated out to special-purpose {peripheral} hardware for speed, then the peripheral evolves toward more computing power as it does its job, then somebody notices that it is inefficient to support two asymmetrical processors in the architecture and folds the function back into the main {CPU}, at which point the cycle begins again.
Several iterations of this cycle have been observed in {graphics-processor} ({blitter}) design, and at least one or two in communications and {floating-point} processors. Also known as "the Wheel of Life", "the Wheel of Samsara" and other variations of the basic Hindu/Buddhist theological idea.
[{Jargon File}]
(1994-11-16)

cycle server
[jargon] A powerful computer that exists primarily for running large {batch} jobs. The term implies that {interactive} tasks such as editing are done on other machines on the network, such as {workstations}.
[{Jargon File}]
(1998-03-13)

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)

cyclic redundancy check
[algorithm] (CRC or "cyclic redundancy code") A number derived from, and stored or transmitted with, a block of data in order to detect corruption. By recalculating the CRC and comparing it to the value originally transmitted, the receiver can detect some types of transmission errors.
A CRC is more complicated than a {checksum}. It is calculated using division either using {shifts} and {exclusive ORs} or {table lookup} ({modulo} 256 or 65536).
The CRC is "redundant" in that it adds no information. A single corrupted {bit} in the data will result in a one bit change in the calculated CRC but multiple corrupted bits may cancel each other out.
CRCs treat blocks of input bits as coefficient-sets for {polynomials}. E.g., binary 10100000 implies the polynomial: 1*x^7 + 0*x^6 + 1*x^5 + 0*x^4 + 0*x^3 + 0*x^2 + 0*x^1 + 0*x^0. This is the "message polynomial". A second polynomial, with constant coefficients, is called the "generator polynomial". This is divided into the message polynomial, giving a quotient and remainder. The coefficients of the remainder form the bits of the final CRC. So, an order-33 generator polynomial is necessary to generate a 32-bit CRC. The exact bit-set used for the generator polynomial will naturally affect the CRC that is computed.
Most CRC implementations seem to operate 8 bits at a time by building a table of 256 entries, representing all 256 possible 8-bit byte combinations, and determining the effect that each byte will have. CRCs are then computed using an input byte to select a 16- or 32-bit value from the table. This value is then used to update the CRC.
{Ethernet} {packets} have a 32-bit CRC. Many disk formats include a CRC at some level.
(1997-08-02)

cyclic redundancy code
{cyclic redundancy check}

cyclo
Cyclo
[programming, tool] (Cyclomatic complexity tool) A {C} and {C++} code analysis tool by Roger D. Binns. It measures {cyclomatic complexity}, shows function calls, and can draw {flowgraphs} of {ANSI C} and {C++} code. It requires {Lex} and {C++}.
Posted to {alt.sources}, 1993-06-28.
(1993-06-28)

cyclomatic complexity
[programming, testing] A measure of the number of linearly independent paths through a program {module}. Cyclomatic complexity is a measure for the complexity of code related to the number of ways there are to traverse a piece of code. This determines the minimum number of inputs you need to test all ways to execute the program.
(1998-03-17)

cygnus tcl tools
Cygnus Tcl Tools
[Cygnus, Tcl, Tk, tool] A rebundling of {Tcl} and {Tk} into the {Cygnus} {GNU} build framework with "{configure}" by david d 'zoo' zuhn [zoo@cygnus.com].
Latest version: Release-930124, as of 1993-01-24.
{(ftp://cygnus.com/pub/)}.
(2000-09-25)

cylinder
[storage] The set of {tracks} on a multi-headed {disk} that may be accessed without head movement. That is, the collection of disk tracks which are the same distance from the spindle about which the disks rotate. Each such group forms the shape of a cylinder. Placing data that are likely to be accessed together in cylinders reduces the access significantly as head movement ({seeking}) is slow compared to disk rotation and switching between heads.
(1997-07-15)

cyphertext
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
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
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
D
1. "The Data Language." {MS-DOS} 4GL.
2. A {Haskell}-like language, with {type class}es.
E-mail: [polar@cs.syr.edu].

d c power lab
D. C. Power Lab
The former site of {SAIL}. This name was very funny because the obvious connection to electrical engineering was nonexistent - the lab was named after a Donald C. Power. Compare {Marginal Hacks}.
[But did DCP's parents realise the joke?]
[{Jargon File}]

da converter
D/A converter
{Digital to Analog Converter}

daa
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
DAC
{Digital to Analog Converter}

dacapo
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
DACNOS
A prototype network operating system for multi-vendor environments, from IBM European Networking Centre Heidelberg and University of Karlsruhe.
(1995-01-16)

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

dads
DADS
{Dictionary of Algorithms and Data Structures}

daemon
[operating system] /day'mn/ or /dee'mn/ (From the mythological meaning, later rationalised as the acronym "Disk And Execution MONitor") A program that is not invoked explicitly, but lies dormant waiting for some condition(s) to occur. The idea is that the perpetrator of the condition need not be aware that a daemon is lurking (though often a program will commit an action only because it knows that it will implicitly invoke a daemon).
For example, under {ITS} writing a file on the {LPT} spooler's directory would invoke the spooling daemon, which would then print the file. The advantage is that programs wanting files printed need neither compete for access to, nor understand any idiosyncrasies of, the {LPT}. They simply enter their implicit requests and let the daemon decide what to do with them. Daemons are usually spawned automatically by the system, and may either live forever or be regenerated at intervals.
{Unix} systems run many daemons, chiefly to handle requests for services from other {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}.
[{Jargon File}]
(1995-05-11)

dag
DAG
1. [architecture] {Data Address Generator}.
2. [mathematics] {directed acyclic graph}.
(1997-08-30)

daisy
Daisy
A {functional language}.
["Daisy Programming Manual", S.D. Johnson, CS Dept TR, Indiana U, 1988].

daisy 201
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.
[{Jargon File}]

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

dap fortran
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
DAPLEX
["The Functional Data Model and the Data Language DAPLEX", D.W. Shipman, ACM Trans Database Sys, 6(1):140-173 (Mar 1981)].

dare
DARE
Differential Analyzer REplacement. A family of simulation languages for continuous systems.
["Digital Continuous System Simulation", G.A. Korn et al, P-H 1978].

darkside hacker
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}.
[{Jargon File}]
(1997-04-28)

darms
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
DARPA
{Defense Advanced Research Projects Agency}

dartmouth basic
Dartmouth BASIC
[language] The original {BASIC} language, designed by John G. Kemeny and Thomas E. Kurtz at Dartmouth College in 1963. Dartmouth BASIC first ran on a {GE 235} [date?] and on an {IBM 704} on 1964-05-01. It was designed for quick and easy programming by students and beginners using Dartmouth's experimental {time-sharing} system. Unlike most later BASIC dialects, Dartmouth BASIC was compiled.
(2003-07-02)

darwin
Darwin
1. [operating system] An {operating system} based on the {FreeBSD} version of {Unix}, running on top of a {microkernel} ({Mach} 3.0 with darwin 1.02) that offers advanced networking, services such as the {Apache} {web server}, and support for both {Macintosh} and Unix {file systems}. Darwin was originally released in March 1999. It currently runs on {PowerPC} based Macintosh computers, and, in October 2000, was being ported to {Intel} processor-based computers and compatible systems by the Darwin community.
2. [programming, tool] A general purpose structuring tool of use in building complex {distributed systems} from diverse components and diverse component interaction mechanisms. Darwin is being developed by the Distributed Software Engineering Section of the Department of Computing at {Imperial College}. It is in essence a {declarative} binding language which can be used to define hierarchic compositions of interconnected components. Distribution is dealt with orthogonally to system structuring. The language allows the specification of both static structures and dynamic structures which evolve during execution. The central abstractions managed by Darwin are components and services. Bindings are formed by manipulating references to services.
The {operational semantics} of Darwin is described in terms of the {Pi-calculus}, {Milner}'s calculus of mobile processes. The correspondence between the treatment of names in the Pi-calculus and the management of service references in Darwin leads to an elegant and concise Pi-calculus model of Darwin's {operational semantics}. The model has proved useful in arguing the correctness of Darwin implementations and in designing extensions to Darwin and reasoning about their behaviour.
{Distributed Software Engineering Section (http://www-dse.doc.ic.ac.uk/)}. {Darwin publications (http://scorch.doc.ic.ac.uk/dse-papers/darwin/)}.
E-mail: Jeff Magee [jnm@doc.ic.ac.uk], Naranker Dulay [nd@doc.ic.ac.uk].
3. {Core War}.
(2003-08-08)

das
DAS
Digital Analog Simulator.
Represents {analog computer} design.
(1994-11-08)

dasd
DASD
{Direct-Access Storage Device}

dase
DASE
{Distributed Application Support Environment}

dasl
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
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
[data] Any representation of data in which the implementation details are hidden (abstracted). {Abstract data types} and {objects} are the two primary forms of data abstraction.
[Other forms?].
(2003-07-03)

data address generator
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)

data bus
[architecture] The bus (connections between and within the {CPU}, memory, and peripherals) used to carry {data}. Other connections are the {address bus} and control signals.
The width and {clock rate} of the data bus determine its data rate (the number of {bytes} per second it can carry), which is one of the main factors determining the processing power of a computer. Most current processor designs use a 32-bit bus, meaning that 32 bits of data can be transferred at once. Some processors have an internal data bus which is wider than their external bus in order to make external connections cheaper while retaining some of the benefits in processing power of a wider bus.
See also {data path}.
(1995-01-16)

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)

data communication equipment
Data Communication Equipment
[communications, hardware] (DCE) The devices and connections of a communications network that connect the communication circuit between the data source and destination (the {Data Terminal Equipment} or DTE). A {modem} is the most common kind of DCE.
Before data can be transmited over a modem, the DTR (Data Terminal Ready) signal must be active. DTR tells the DCE that the DTE is ready to transmit and receive data.
DCE and DTE are usually connected by an {EIA-232} {serial line}. It is necessary to distinguish these two types of device because their connectors must be wired differently if a "straight-through" cable (pin 1 to pin 1, pin 2 to pin 2 etc.) is to be used. DCE should have a female connector and should transmit on pin two and receive on pin three. It is a curious fact that many {modem}s are "DTE" according to the original standard.
(1995-02-28)

data communications equipment
Data Communications Equipment
{Data Communication Equipment}

data compression
[algorithm] {compression}. Probably to distinguish it from (electronic) {signal compression}.
(1995-04-02)

data definition language
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.
[Does anybody call them "codebooks"?]
(2001-04-24)

data dictionary file
[database] (DDF) A set of files describing the structure of a {database} file. DDFs define {database tables} and include information about file locations, field layouts and indexes. DDFs are the standard method for defining field and index characteristics for {Btrieve} files.
(1997-06-03)

data driven
A data driven architecture/language performs computations in an order dictated by data dependencies. Two kinds of data driven computation are {dataflow} and {demand driven}.
From about 1970 research in parallel {data driven} computation increased. Centres of excellence emerged at {MIT}, {CERT-ONERA} in France, {NTT} and {ETL} in Japan and {Manchester University}.

data driven machine
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
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
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
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
Data Flow Diagram
[programming] A graphical notation used to describe how {data} flows between {processes} in a system. Data flow diagrams are an important tool of most {structured analysis} techniques.
{(http://www.smartdraw.com/resources/centers/software/dfd.htm)}.
(2003-05-17)

data fork
{Macintosh file system}

data frame
{activation record}

data general
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 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)

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

data link connection identifier
Data Link Connection Identifier
[networking] (DLCI) A channel number which is attached to {data frames} to tell a {Frame Relay} network how to route the data. In Frame Relay, multiple logical channels are {multiplexed} over a single physical channel. The DLCI says which of these logical channels a particular data frame belongs to.
{(http://www.etinc.com/frmain.htm#whatsadlci)}.
(2000-02-13)

data link layer
[networking] Layer two, the second lowest layer in the {OSI} seven layer model. The data link layer splits data into {frames} (see {fragmentation}) for sending on the {physical layer} and receives acknowledgement frames. It performs error checking and re-transmits frames not received correctly. It provides an error-free virtual channel to the {network layer}. The data link layer is split into an upper sublayer, {Logical Link Control} (LLC), and a lower sublayer, {Media Access Control} (MAC).
Example {protocols} at this layer are {ABP}, {Go Back N}, {SRP}.
(1995-02-14)

data link level
{data link layer}

data link provider interface
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
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
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)

data mining
[database] Analysis of data in a {database} using tools which look for trends or anomalies without knowledge of the meaning of the data. Data mining was invented by {IBM} who hold some related patents.
Data mining may well be done on a {data warehouse}.
{ShowCase STRATEGY (http://www.showcasecorp.com/)} is an example of a data mining tool.
(2001-02-08)

data model
[database] The product of the {database} design process which aims to identify and organize the required data logically and physically.
A data model says what information is to be contained in a database, how the information will be used, and how the items in the database will be related to each other.
For example, a data model might specify that a customer is represented by a customer name and credit card number and a product as a product code and price, and that there is a one-to-many relation between a customer and a product.
It can be difficult to change a database layout once code has been written and data inserted. A well thought-out data model reduces the need for such changes. Data modelling enhances application maintainability and future systems may re-use parts of existing models, which should lower development costs.
A data modelling language is a mathematical formalism with a notation for describing data structures and a set of operations used to manipulate and validate that data.
One of the most widely used methods for developing data models is the {entity-relationship model}. The {relational model} is the most widely used type of data model. Another example is {NIAM}.
["Principles of Database and Knowledge-Base Systems", J.D. Ullman, Volume I, Computer Science Press, 1988, p. 32].
(2000-06-24)

data modeling
[spelling] US spelling of "{data model}ling".
(2000-06-24)

data modelling
{data model}

data over cable service interface specification
Data Over Cable Service Interface Specification
[communications, networking] (DOCSIS) {ITU}-approved interface requirements for {cable modems} involved in high-speed data distribution over a {cable television} network. DOCSIS compatible equipment uses a 6 MHz {carrier} band for {downstream}, using 64 and 256 {QAM} (ITU Annex B), and {QPSK} and 16 QAM for {upstream}, allowing up to 36 and 10 Mb/s, respectively for downstream and upstream channels.
{CableLabs FAQ (http://www.cablemodem.com/FAQs.html)}.
(2001-07-10)

data over cable systems interface specifications
Data Over Cable Systems Interface Specifications
{Data Over Cable Service Interface Specification}

data packet
{packet}

data parallel haskell
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)

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, unit] (Or "data ransfer rate", "transmission rate") The amount of {data} transferred per second by a communications channel or a computing or storage device.
Data rate is measured in units of {bits per second} (written "b/s" or "bps"), {bytes per second} (Bps), or {baud}.
When applied to data rate, the multiplier {prefixes} "kilo-", "mega-", "giga-", etc. (and their abbreviations, "k", "M", "G", etc.) always denote powers of 1000. For example, 64 kbps is 64,000 bits per second. This contrasts with units of storage where they stand for powers of 1024, e.g. 1 KB = 1024 bytes.
[Relationship with "{bandwidth}"?]
(2002-03-23)

data service unit
[communications] (DSU or "data service unit") A device used in digital transmission for connecting a CSU (Channel Service Unit) to {Data Terminal Equipment} (a terminal or computer), in the same way that a {modem} is used for connection to an analogue medium.
A DSU provides a standard interface to a user's terminal which is compatible with {modems} and handles such functions as signal translation, regeneration, reformatting, and timing. The transmitting portion of the DSU processeses the customers' signal into bipolar pulses suitable for transmission over the digital facility. The receiving portion of the DSU is used both to extract timing information and to regenerate mark and space information from the received {bipolar} signal.
(1995-01-30)

data set
[operating system, storage] An {IBM} term for a {file}.
(1997-04-15)

data set organization
[operating system, storage] An {IBM} term for the way a {file} is structured. Examples are {partitioned}, {sequential} or {VSAM}.
(1997-04-15)

data striping
[storage] Segmentation of logically {sequential} data, such as a single file, so that segments can be written to multiple physical devices (usually {disk drives}) in a {round-robin} fashion. This technique is useful if the processor is capable of reading or writing data faster than a single disk can supply or accept it. While data is being transferred from the first disk, the second disk can locate the next segment.
Data striping is used in some modern {databases}, such as {Sybase}, and in certain {RAID} devices under hardware control, such as {IBM}'s {RAMAC} array subsystem (9304/9395).
Data striping is different from, and may be used in conjunction with, {mirroring}.
(1996-10-17)

data structure
[data, programming] Any method of organising a collection of {data} to allow it to be manipulated effectively. It may include {meta} data to describe the properties of the structure.
Examples data structures are: {array}, {dictionary}, {graph}, {hash}, {heap}, {linked list}, {matrix}, {object}, {queue}, {ring}, {stack}, {tree}, {vector}.
(2003-09-11)

data structures language
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
Data Terminal Equipment
[communications, hardware] (DTE) A device which acts as the source and/or destination of data and which controls the communication channel. DTE includes terminals, computers, {protocol converters}, and {multiplexors}.
DTE is usually connected via an {EIA-232} {serial line} to {Data Communication Equipment} (DCE), typically a {modem}. It is necessary to distinguish these two types of device because their connectors must be wired differently if a "straight-through" cable (pin 1 to pin 1, pin 2 to pin 2 etc.) is to be used. DTE should have a male connector and should transmit on pin three and receive on pin two. It is a curious fact that many {modems} are actually "DTE" according to the original standard.
(1995-02-28)

data terminal ready
Data Terminal Ready
[communications] (DTR) The wire in a full {RS-232} connection that tells the {Data Communication Equipment} (DCE, typically a {modem}) that the {Data Terminal Equipment} (DTE, typically a computer or {terminal}) is ready to transmit and receive data.
(2000-04-05)

data transfer rate
[communications] (Or "throughput") The ammount of {data} transferred in one direction over a link divided by the time taken to transfer it, usually expressed in bits or bytes per second.
Where data transfer is not continuous throughout the given time interval, the data transfer rate is thus an average rate that will be lower than the peak rate. The peak or maximum possible rate may itself be lower than the {capacity} of the communication channel used if the channel is shared, or part of the signal is not considered as data, e.g. {checksum} or {routing} information.
The other important characteristic of a channel is its {latency}.
[Is this correct?]
(2001-05-22)

data type
{type}

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}

database
1. [database] One or more large structured sets of persistent data, usually associated with software to update and {query} the data. A simple database might be a single file containing many {records}, each of which contains the same set of {fields} where each field is a certain fixed width.
A database is one component of a {database management system}.
See also {ANSI/SPARC Architecture}, {atomic}, {blob}, {data definition language}, {deductive database}, {distributed database}, {fourth generation language}, {functional database}, {object-oriented database}, {relational database}.
{Carol E. Brown's tutorial (http://www2.bus.orst.edu/faculty/brownc/lectures/db_tutor/)}.
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.
(2002-02-09)

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.

databasic
Data/BASIC
[language] (Or "Pick BASIC") A {BASIC}-like language with {database} capabilities, the main programming language on the {Pick OS}.
["The Data/BASIC Language - A Data Processing Language for Non-Professional Programmers", P.C. Dressen, Proc SJCC 36, AFIPS, Spring 1970].
(2001-04-30)

databus
DATABUS
DATApoint BUSiness Language.
A language like an interpreted {assembly language}, used for custom applications on {Datapoint} computers.
(1995-01-16)

datacode i
DATACODE I
[language] An early system used on the {Datatron 200} series.
[Listed in CACM 2(5):16, May 1959].
(1994-12-06)

datacom
Datacom
A {DBMS} from {Computer Associates International}.
(1994-12-06)

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

datakit
Datakit
[networking] A {circuit-switched} digital network, similar to {X.25}. Datakit supports {host-to-host} connections and {EIA-232} connections for {terminals}, {printers}, and {hosts}.
Most of {Bell Laboratories} is {trunk}ed together on Datakit. On top of DK transport service, people run {UUCP} for {electronic mail} and {dkcu} for {remote login}.
ISN is the version of Datakit supported by {AT&T} Information Systems. Bell Laboratories in Holmdel, New Jersey, uses ISN for internal data communication.
{(http://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)

datamation
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.
[{Jargon File}]

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

dataphone digital service
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)

datastorm technologies inc
Datastorm Technologies, Inc.
[company] Suppliers of {Procomm}.
Address: Columbia MO, USA.
(1995-04-04)

datatext
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
DATATRIEVE
A query and report system for use with DEC's VMS system (RMS, VAX Rdb/VMS or VAX DBMS).

dataviews
DataViews
{Graphical user interface} development software from {V.I.Corporation}, aimed at constructing {platform}-independent interactive views of dynamic data.
(1994-12-07)

datavis
DataVis
A {dataflow} language for scientific {visualisation}.
["Data Flow Visual Programming Languages", D. Hils, J Vis Langs and Comput, Dec 1991].
(1994-12-06)

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
DAU
/dow/ [German Fidonet] D"ummster Anzunehmender User. A German acronym for stupidest imaginable user. From the engineering-slang GAU for Gr"osster Anzunehmender Unfall (worst foreseeable accident), especially of a LNG tank farm plant or something with similarly disastrous consequences. In popular German, GAU is used only to refer to worst-case nuclear accidents such as a core meltdown.
See {cretin}, {loser} and {weasel}.
[{Jargon File}]
(1994-12-06)

daughter
[mathematics, data] (Or "child", "successor") In a {tree}, a {node} pointed to by a {parent}, i.e. another node closer to the {root node}.
(1998-11-14)

david turner
David Turner
[person] Professor David A Turner. One of the pioneers of {functional languages}. He designed several languages, including, {SASL} (1976), {KRC} (1981), and {Miranda}, many of which were implemented using {combinators} and the {S-K reduction machine} which he defined.
He coined the name "{ZF expression}" for the {list comprehension}.
He worked at UKC and set up a company, {Research Software} Limited to market {Miranda}.
(1994-12-06)

day mode
See {phase} (sense 1). Used of people only.
[{Jargon File}]

dazix
DAZIX
Daisy/Cadnetix Corporation.
A supplier of digital electronic {CAE} systems.
(1994-12-06)

db
DB
{database}

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

db25
DB-25
[hardware] The standard 25-pin {D-shell connector} used for {EIA-232} serial communication.
{DE-9} is a common alternative.
(1996-12-08)

dba
DBA
{database administrator}

dbase
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
DBC
[language, parallel] A {data-parallel} {bit-serial} {C} based on {MPL}. SRC, Bowie MD.
E-mail: [maya@super.org].
(1995-05-01)

dbcs
DBCS
[character] (IBM) double-byte character set.
A {character set} that uses 16 bits to represent a character.
(1995-03-21)

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

dbh
DBH
{Denis Howe}

dbms
DBMS
{database management system}

dbpl
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
DBRI
{Dual Basic Rate Interface}

dbxl
dBXL
A {dBASE}-like {interpreter}/language for {MS-DOS} from {WordTech}, Orinda, CA.
(1994-12-07)

dc
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
DC1
{control-Q}

dc2
DC2
{Device Control 2}

dc3
DC3
{Control-S}

dc4
DC4
{Device Control 4}

dca
DCA
1. Defense Communications Agency. See {DISA}.
2. {Document Content Architecture} from {IBM}.

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

dcc
DCC
1. [audio] {Digital Compact Cassette}.
2. [networking] {Direct Client to Client Protocol}.
(2001-12-02)

dcdl
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
DCE
1. {Data Communication Equipment}.
2. Data Circuit-terminating Equipment.
3. {Distributed Computing Environment} from {OSF}.

dcg
DCG
{Definite Clause Grammar}

dci
DCI
{Display Control Interface}

dcl
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
DCOM
{Distributed Component Object Model}

dcp
DCP
{definitional constraint programming}

dcs
DCS
{Digital Cellular System}

dct
DCT
{Discrete Cosine Transform}

dd
DD
1. [storage] {double density}.
2. {Data Dictionary}.
[{Jargon File}]
(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".
[{Jargon File}]
(1995-02-03)

ddb
DDB
{device independent bitmap}

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

dde
DDE
{Dynamic Data Exchange}

dde manager
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
DDIF
Digital Document Interchange Format. A CDA specification for representing compound documents in revisable format; a DEC standard for document encoding.

ddl
DDL
1. ["A Digital System Design Language (DDL)", J.R. Duley, IEEE Trans on Computers c-17(9), pp. 850-861, Sep 1968].
2. [language, games] An {adventure} language developed by M. Urban, C. Kostanick et al of the {UCLA} Computer Club. DDL was the forerunner of {ADL}.
3. {Data Definition Language}.
4. {Document Description Language}.
5. {Dynamic Data Exchange}. (Originally "Linking").
(1997-06-05)

ddm
DDM
1. [protocol, database] {Distributed Data Management}.
2. [language] {Data Driven Machine}.
(1999-06-07)

ddn
DDN
{Defense Data Network}

ddo
DDO
{Dynamic Drive Overlay}

ddp
DDP
{Distributed Data Processing}

ddrram
DDR-RAM
{Double Data Rate Random Access Memory}

ddrsdram
DDR-SDRAM
{Double Data Rate Random Access Memory}

dds
DDS
1. {Digital Data Service}.
2. {Digital Data System}.
3. {Dataphone Digital Service}.

ddt
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).
[{Jargon File}]

de
[networking] The {country code} for Germany.
(1999-01-27)

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

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)

de9
DE-9
[hardware] The standard 9-pin {D-shell connector} used for {EIA-232} serial communication. DE-9 is a common alternative to {DB-25}, especially on {personal computers}.
(1999-12-08)

dea
DEA
{Data Encryption Algorithm}

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

dead
1. Non-functional; {down}; {crash}ed. Especially used of {hardware}.
2. At {XEROX PARC}, software that is working but not undergoing continued development and support.
[{Jargon File}]

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

dead tree
[publication, jargon] Paper.
Use of this term emphasises the waste of natural resources and limited features available from the printed form of a document compared with an electronic rendition.
E.g. "I read the dead tree edition of the {Guardian (http://www.guardian.co.uk/)} on the train".
See also {tree-killer}.
(1999-11-03)

dead tree edition
{dead tree}

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

deadlock
[parallel, programming] A situation where two or more {processes} are unable to proceed because each is waiting for one of the others to do something.
A common example is a program waiting for output from a server while the server is waiting for more input from the controlling program before outputting anything. It is reported that this particular flavour of deadlock is sometimes called a "starvation deadlock", though the term "starvation" is more properly used for situations where a program can never run simply because it never gets high enough priority.
Another common flavour is "constipation", in which each process is trying to send stuff to the other but all buffers are full because nobody is reading anything). See {deadly embrace}.
Another example, common in {database} programming, is two processes that are sharing some resource (e.g. read access to a {table}) but then both decide to wait for exclusive (e.g. write) access.
The term "deadly embrace" is mostly synonymous, though usually used only when exactly two processes are involved. This is the more popular term in Europe, while {deadlock} predominates in the United States.
Compare: {livelock}. See also {safety property}, {liveness property}.
[{Jargon File}]
(2000-07-26)

deadly embrace
{deadlock}

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).
[{Jargon File}]

death star
Death Star
["Star Wars" film] 1. The AT&T corporate logo, which appears on computers sold by AT&T and bears an uncanny resemblance to the Death Star in the movie. This usage is particularly common among partisans of {BSD} Unix, who tend to regard the AT&T versions as inferior and AT&T as a bad guy. Copies still circulate of a poster printed by Mt. Xinu showing a starscape with a space fighter labelled {4.2BSD} streaking away from a broken AT&T logo wreathed in flames.
2. AT&T's internal magazine, "Focus", uses "death star" to describe an incorrectly done AT&T logo in which the inner circle in the top left is dark instead of light - a frequent result of dark-on-light logo images.

deb
[filename extension, Debian] The {filename extension} for a {Debian} {binary package}.
(2001-01-27)

debbugs
Debbugs
[programming] The {bug tracking system} used by the {Debian} Project. Each bug is given a number, and is kept on file until it is marked as having been dealt with. The system is mainly controlled by {electronic mail}, but the bug reports can be viewed via the {World-Wide Web}.
{Debbugs home (http://www.debian.org/Bugs/)}.
(2002-06-12)

debian
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 gnuhurd
Debian GNU/Hurd
[operating system] A {GNU} distribution based on the {Hurd} {kernel} instead of the more well known {Linux} kernel.
[Reference?]
(2001-12-02)

debian gnulinux
Debian GNU/Linux
{Debian}

debianize
[Debian] To take a {source package} and make the necessary modifications to allow it to be built as a policy compliant {Debian} package.
(2000-05-31)

deboursification
[jargon] Removal of irrelevant {newsgroups} from the Newsgroups header of a {followup}. The term applies particularly to the removal of frivolous groups added by one of the Kooks.
See also: {sneck}.
[Sam Spade anti-{spam} software].
(1999-09-15)

debug
DEBUG
[software, tool] The bundled {compiler}/{assembler} for {DOS}/{Windows} after {CP/M}.
[Did CP/M have "DEBUG"?]
["DOS Power Tools, Techniques, Tricks, and Utilities, PC Magazine, Paul Somerson Executive Editor, Bantam Books, 1988].
(2003-06-17)

debugging
[programming] 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
DEC
{Digital Equipment Corporation}

dec
[programming] /dek/ decrement, decrease by one. Especially used by {assembly language} programmers, as many assembly languages have a "dec" {mnemonic}.
Opposite: {inc}.
[{Jargon File}]

dec alpha
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)

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

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

decdesign
DECdesign
A software analysis and design tool from {DEC} supporting several methodologies. Now replaced by {Teamwork}.
(1994-09-05)

decdns
DECdns
Distributed Naming Service.
Adopted by {OSF} as the naming service for {DCE}.

dechead
DEChead
/dek'hed/ 1. A {DEC} {field servoid}. Not flattering.
2. ["deadhead"] A Grateful Dead fan working at {DEC}.
[{Jargon File}]

dechunker
{chunker}

decidability
[mathematics] A property of sets for which one can determine whether something is a member or not in a {finite} number of computational steps.
Decidability is an important concept in {computability theory}. A set (e.g. "all numbers with a 5 in them") is said to be "decidable" if I can write a program (usually for a {Turing Machine}) to determine whether a number is in the set and the program will always terminate with an answer YES or NO after a finite number of steps.
Most sets you can describe easily are decidable, but there are infinitely many sets so most sets are undecidable, assuming any finite limit on the size (number of instructions or number of states) of our programs. I.e. how ever big you allow your program to be there will always be sets which need a bigger program to decide membership.
One example of an undecidable set comes from the {halting problem}. It turns out that you can encode every program as a number: encode every symbol in the program as a number (001, 002, ...) and then string all the symbol codes together. Then you can create an undecidable set by defining it as the set of all numbers that represent a program that terminates in a finite number of steps.
A set can also be "semi-decidable" - there is an {algorithm} that is guaranteed to return YES if the number is in the set, but if the number is not in the set, it may either return NO or run for ever.
The {halting problem}'s set described above is semi-decidable. You decode the given number and run the resulting program. If it terminates the answer is YES. If it never terminates, then neither will the decision algorithm.
(1995-01-13)

decidable
{decidability}

decimal point
[character] "." {ASCII} character 46. Common names are: point; {dot}; {ITU-T}, USA: period; {ITU-T}: decimal point. Rare: radix point; UK: full stop; {INTERCAL}: spot.
(1995-03-14)

decision problem
[theory] A problem with a yes/no answer. Determining whether some potential solution to a question is actually a solution or not. E.g. "Is 43669" a {prime number}?". This is in contrast to a "{search problem}" which must find a solution from scratch, e.g. "What is the millionth prime number?".
See {decidability}.
(1996-05-03)

decision support
Software used to aid management decision making, typically relying on a {decision support database}.
[Examples?]
(1995-02-14)

decision support database
A {database} from which data is extracted and analysed statistically (but not modified) in order to inform business or other decisions. This is in contrast to an {operational database} which is being continuously updated.
For example, a decision support database might provide data to determine the average salary of different types of workers, whereas an operational database containing the same data would be used to calculate pay check amounts.
Often, decision support data is extracted from operation databases.
(1995-02-14)

decision support systems
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}.
[{Jargon File}]
(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 i
DECmate I
[computer] The first in {DEC}'s series of miniaturised {PDP-8} computers based on the {Intersil 6120} [Harris 6120?] {microprocessor} and dedicated to {wordprocessing}. The DECmate was DEC's original competition for the {IBM PC}.
The DECmate I was introduced in 1980 as the successor to the {WT78}. The processor ran at 10 MHz, and was housed in a {VT100} {CRT} terminal. It was a very limted model, no {EAE} option was available, memory was 32 Kwords. It used the RX02 8" dual floppy drive. Options were the DP278-A and -B communication ports and RL278: 1 to 4 {RL02} {cartridge disk} drives.
{(http://telnet.hu/hamster/dr/decmate.html)}.
[Processor manufacturer?]
(2003-05-29)

decnet
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
Decomposed Petri Net
(DPN) The basis of {concurrency} in {ConC}.

decompress
[compression, data] To reverse the effects of data {compression}.
(2001-01-30)

decryption
[cryptography] Any procedure used in {cryptography} to convert {ciphertext} (encrypted data) into {plaintext}.
(1995-05-10)

decstation
DECstation
[computer] A range of {RISC} based {workstations} manufactured by {DEC}.
[Details?]
(1997-04-29)

dect
DECT
{Digital Enhanced Cordless Telecommunications}

dectape
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
DECUS
{Digital Equipment Computer Users Society}

decus cpp
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)

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

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

ded
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").
[{Jargon File}]

dedicated line
[communications] A telephone line leased expressly for the purpose of connecting two users more-or-less permenantly.. Such lines may be "voice grade" which provides the {bandwidth} and {signal to noise ratio} of ordinary {public switched telephone network} circuits, or specified in ways which allow transport of suitably encoded digital signals at faster rates.
In some cases, lines may be physical wires between the communicating parties. Over longer distances, it is common for the connection to be virtual, which means that although the two users can communicate only with each other, their signals and others are multiplexed, amplified, switched, scrambled, demultiplexed and so on in complex ways between the end points.
This contrasts with a {dial-up} connection which is only opened when one end requires it.
(1996-08-10)

deductive database
[database] A combination of a conventional {database} containing {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
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}.
[{Jargon File}]

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

deep space
1. The notional location of any program that has gone {off the trolley}. Especially used of programs that just sit there silently grinding long after either failure or some output is expected. "Uh oh. I should have had a prompt ten seconds ago. The program's in deep space somewhere." Compare {buzz}, {catatonic}, {hyperspace}.
2. The metaphorical location of a human so dazed and/or confused or caught up in some esoteric form of {bogosity} that he or she no longer responds coherently to normal communication.
[{Jargon File}]

default route
[networking] A {routing table} entry which is used to direct {packets} addressed to {hosts} or {networks} not explicitly listed in the routing table.
(1996-05-13)

defect
{bug}

defect analysis
[programming] Using defects as data for continuous quality improvement. Defect analysis generally seeks to classify defects into categories and identify possible causes in order to direct process improvement efforts.
(1996-05-13)

defect density
[programming] The ratio of the number of {defects} to program length.
(1996-05-13)

defense advanced research project agency
Defense Advanced Research Project Agency
{Defense Advanced Research Projects 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://www.foldoc.org/pub/darpa)}.
(1999-07-17)

defense communications agency
Defense Communications Agency
(DCA) Now called Defense Information Systems Agency (DISA).

defense data network
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
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
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
Defense Trade Regulations
[legal] The U.S. law governening munitions export and defense technology (F-16s, TOW missiles and {cryptology}). According to the U.S. (and Canada) cryptography is a munition and people who export it can be charged as though they were exporting bombs or state secrets. People have been.
See also {EFF}.
(1995-06-19)

deferral
Waiting for quiet on the {Ethernet}.

definite clause
[logic] A {Horn clause} that has exactly one {positive literal}.
(2000-01-24)

definite sentence
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}

deflateinflate compression
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.
[{Jargon File}]

dek
DEK
{Data Encryption Key}

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

delay instruction
{delayed control-transfer}

delay slot
{delayed control-transfer}

delayed controltransfer
delayed control-transfer
[SPARC, programming] A technique used on the {SPARC} to reduce the effect of {pipeline breaks} by executing the instruction after a branch instruction (the "delay instruction" in the "delay slot"). If there is no useful instruction which can be placed in the delay slot then the "annul bit" on the control transfer instruction can be set, preventing execution of the delay instruction (unless the control transfer is conditional and is taken).
Annulled branches are indicated in SPARC assembler language by appending ",A" to the {operation code}. For example,
LOOP: ... CMP %L0,10 BLE,A LOOP ADD %L2, %L3, #L4
If the delay instruction is also a control transfer instruction then it gets more complicated. Both control transfer instructions are executed (but not the following instruction) and, assuming they are both taken, control is transferred briefly to the destination of the first and then immediately to the destination of the second.
(2001-06-26)

delete
1. [operating system] (Or "erase") To make a file inaccessible.
Usually this operation only deletes information from the tables the {file system} uses to locate named files; the file's contents still exist on {disk} and can sometimes be recovered by scanning the whole disk for strings which are known to have been in the file. Files created subsequently on the same disk are quite likely to reuse the same blocks and thus overwrite the deleted file's data permanently.
2. [character] The {control character} with {ASCII} code 127. Usually entering this character from the keyboard deletes the last character typed from the {input buffer}. Sadly there is great confusion between {operating systems} and keyboard manufacturers as to whether this function should be assigned to the delete or {backspace} key/character.
The choice of code 127 (binary 1111111) is not arbitrary but dates back to the use of {paper tape} for input. The delete key rewound the tape by one character and punched out all seven holes, thus obliterating whatever character was there before. The tape reading software ignored any delete characters in the input.
(1996-12-01)

delimiter
[character] A {character} or {string} used to separate, or mark the start and end of, items of data in, e.g., a {database}, {source code}, or {text file}.
See also: {record}.
(2001-03-16)

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

delirium
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
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
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
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
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. A quantitative change, especially a small or incremental one (this use is general in physics and engineering). "I just doubled the speed of my program!" "What was the delta on program size?" "About 30 percent." (He doubled the speed of his program, but increased its size by only 30 percent.)
2. [Unix] A {diff}, especially a {diff} stored under the set of version-control tools called SCCS (Source Code Control System) or RCS (Revision Control System). See {change management}.
3. A small quantity, but not as small as {epsilon}. The jargon usage of {delta} and {epsilon} stems from the traditional use of these letters in mathematics for very small numerical quantities, particularly in "epsilon-delta" proofs in limit theory (as in the differential calculus). The term {delta} is often used, once {epsilon} has been mentioned, to mean a quantity that is slightly bigger than {epsilon} but still very small. "The cost isn't epsilon, but it's delta" means that the cost isn't totally negligible, but it is nevertheless very small. Common constructions include "within delta of ---", "within epsilon of ---": that is, "close to" and "even closer to".
[{Jargon File}]
(2000-08-02)

delta
Delta
[language]
1. An expression-based language developed by J.C. Cleaveland in 1978.
2. A string-processing language with single-character commands from {Tandem Computers}.
3. A language for system specification of simulation execution.
["System Description and the DELTA Language", E. Holback-Hansen et al, DELTA Proj Rep 4, Norweg Comput Ctr, Feb 1977].
4. A {COBOL} generating language produced by {Delta Software Entwicklung GmbH (http://www.delta-software.de/)}.
(2000-08-02)

delta conversion
{delta reduction}

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)

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

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

deltase
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
DeMarco
Tom DeMarco proposed a form of {structured analysis}.
(1995-02-16)

demarcoyourdon
DeMarco/Yourdon
{Yourdon/Demarco}

demented
Yet another term of disgust used to describe a program. The connotation in this case is that the program works as designed, but the design is bad. Said, for example, of a program that generates large numbers of meaningless error messages, implying that it is on the brink of imminent collapse.
[{Jargon File}]
(1994-12-07)

demeter
Demeter
A {CASE} tool developed mainly by Karl Lieberherr.
["Contributions to Teaching Object-Oriented Design and Programming" Aug/Sep 1988 issue of JOOP, OOPSLA '89 Proceedings].
(1994-12-07)

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

demilitarised zone
De-Militarised Zone
[networking] (DMZ) (From the military term for an area between two opponents where fighting is prevented) DMZ {Ethernets} connect networks and computers controlled by different bodies. They may be external or internal. External DMZ Ethernets link regional networks with {routers} to internal networks. Internal DMZ Ethernets link local nodes with routers to the regional networks.
Compare {red zone}.
(1995-02-23)

demo
/de'moh/ 1. A demonstration of a product, often of an early version or prototype. A demo is a far more effective way of inducing bugs to manifest themselves than any number of {test} runs, especially when important people are watching.
2. {demo version}.
3. A program written to demonstrate the programmer's coding ability and/or the power of the computer it runs on. Such demos are nearly always written in {machine code} and traditionally feature scrolling text about the author, his friends, his code and anything else he fancies and animated graphics.
[{Jargon File}]
(1994-11-04)

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}).
[{Jargon File}]
(1995-02-22)

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)

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)

demon
1. [operating system] (Often used equivalently to {daemon}, especially in the {Unix} world, where the latter spelling and pronunciation is considered mildly archaic). A program or part of a program which is not invoked explicitly, but that lies dormant waiting for some condition(s) to occur.
At {MIT} they use "demon" for part of a program and "daemon" for an {operating system} process.
Demons (parts of programs) are particularly common in {AI} programs. For example, a {knowledge}-manipulation program might implement {inference rules} as demons. Whenever a new piece of knowledge was added, various demons would activate (which demons depends on the particular piece of data) and would create additional pieces of knowledge by applying their respective inference rules to the original piece. These new pieces could in turn activate more demons as the inferences filtered down through chains of logic. Meanwhile, the main program could continue with whatever its primary task was. This is similar to the {triggers} used in {relational databases}.
The use of this term may derive from "Maxwell's Demons" - minute beings which can reverse the normal flow of heat from a hot body to a cold body by only allowing fast moving molecules to go from the cold body to the hot one and slow molecules from hot to cold. The solution to this apparent thermodynamic paradox is that the demons would require an external supply of energy to do their work and it is only in the absence of such a supply that heat must necessarily flow from hot to cold.
Walt Bunch believes the term comes from the demons in Oliver Selfridge's paper "Pandemonium", MIT 1958, which was named after the capital of Hell in Milton's "Paradise Lost". Selfridge likened neural cells firing in response to input patterns to the chaos of millions of demons shrieking in Pandemonium.
2. [company] {Demon Internet} Ltd.
3. A {program generator} for {differential equation} problems.
[N.W. Bennett, Australian AEC Research Establishment, AAEC/E142, Aug 1965].
[{Jargon File}]
(1998-09-04)

demon internet ltd
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)

demorgans theorem
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)

denis howe
Denis Howe
[person] Denis B. Howe. Editor of the {Free On-line Dictionary of Computing}.
(2000-05-16)

dennis ritchie
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
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
Department of Defense
[body] (DoD) The US military body responsible for sponsoring many software engineering standards.
(1996-05-29)

department of defense network
Department of Defense Network
[networking] (DDN) A military subset of the {Internet}, which includes {ARPAnet}.
(1994-12-07)

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

dependability
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}.
[{Jargon File}]
(1995-04-19)

depthfirst search
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
DER
{Distinguished Encoding Rules}

dereference
[programming] To access the thing to which a pointer points, i.e. to follow the pointer. E.g. in {C}, the declarations
int i; int *p = &i;
declare i as an integer and p as a pointer to integer. p is initialised to point at i ("&i" is the address of i - the inverse of "*"). The expression *p dereferences p to yield i as an {lvalue}, i.e. something which can appear either on the left of an {assignment} or anywhere an integer expression is valid. Thus
*p = 17;
would set i to 17. *p++ is not the same as i++ however since it is parsed as *(p++), i.e. increment p (which would be an invalid thing to do if it was pointing to a single int, as in this example) then dereference p's old value.
The {C} operator "-]" also dereferences its left hand argument which is assumed to point to a {structure} or {union} of which the right hand argument is a {member}.
At first sight the word "dereference" might be thought to mean "to cause to stop referring" but its meaning is well established in jargon.
(1998-12-15)

derezz
de-rezz
[jargon] /dee-rez'/ (Or "derez") "de-resolve" via the film "Tron". 1. To disappear or dissolve; the image that goes with it is of an object breaking up into raster lines and static and then dissolving. Occasionally used of a person who seems to have suddenly "fuzzed out" mentally rather than physically. Usage: extremely silly, also rare. This verb was actually invented as *fictional* hacker jargon, and adopted in a spirit of irony by real hackers years after the fact.
2. The Macintosh resource decompiler. On a Macintosh, many program structures (including the code itself) are managed in small segments of the program file known as "resources"; "Rez" and "DeRez" are a pair of utilities for compiling and decompiling resource files. Thus, decompiling a resource is "derezzing". Usage: very common.
[{Jargon File}]

derived class
[programming] (Or "subclass") In {object-oriented} programming, a {class} that is derived from a {base class} by {inheritance}. The derived class contains all the features of the base class, but may have new features added or redefine existing features.
The synonym "subclass" is possibly confusing since the derived class has a superset of the base class's features.
Compare {derived type}.
(2001-09-14)

derived type
[programming] A {type} constructed from {primitive types} or other derived types using a {type constructor function}. This term is usually applied to {procedural languages} such as {C} or {Ada}. C's derived types are the {array}, {function}, {pointer}, {structure}, and {union}.
Compare {derived class}.
(2001-09-14)

des
DES
{Data Encryption Standard}

descender
[text] A lowercase letter that extends below the base line, such as "g", "j", or "p". Also used to denote the part of the letter extending below the base line. Compare {ascender}.
(1998-03-27)

descent function
If a {recursive} function is of the form
f x = ... f (d x) ...
then d is known as the descent function.

descriptive intermediate attributed notation for ada
Descriptive Intermediate Attributed Notation for Ada
[language] (DIANA) A formerly {de facto standard} {intermediate language} for {Ada} programs, developed by Goos and Wulf at {CMU} in January 1981. DIANA is an {attributed tree} representation, with an abstract interface defined in {Interface Description Language} (Nestor, Lamb and Wulf, CMU, 1981; Snodgrass(?), 1989(?)). DIANA resulted from a merger of {AIDA} and {TCOL.Ada}. At the present (2001) it is no longer used by the major ADA compilers
["DIANA - An Intermediate Language for Ada", G.T. Goos et al, LNCS 161, Springer 1983].
(2001-09-15)

descriptive toplevel specification
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
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
Design System language
J. Gaffney, Evans & Sutherland 1976. Interpretive FORTH-like language for 3d graphics databases. Earliest forerunner of both Interpress and PostScript. Mentioned in PostScript Language Reference Manual, Adobe Systems, A-W 1985.

desk check
[programming] To {grovel} over hardcopy of {source code}, mentally simulating the {control flow}; a method of catching bugs. No longer common practice in this age of on-screen editing, fast compiles, and sophisticated debuggers - though some maintain stoutly that it ought to be.
Compare {dry run}, {eyeball search}, {vdiff}, {vgrep}.
[{Jargon File}]
(1996-05-13)

desktop database
{Macintosh file system}

desktop management interface
Desktop Management Interface
[standard, operating system] (DMI) A {specification} from the {Desktop Management Task Force} (DMTF) that establishes a standard {framework} for managing networked computers. DMI covers {hardware} and {software}, {desktop} systems and {servers}, and defines a model for filtering events and describing {interfaces}.
DMI provides a common path for technical support, IT managers, and individual users to access information about all aspects of a computer - including {processor} type, installation date, attached {printers} and other {peripherals}, power sources, and maintenance history. It provides a common format for describing products to aid vendors, systems integrators, and end users in enterprise desktop management.
DMI is not tied to any specific hardware, operating system, or management protocols. It is easy for vendors to adopt, mappable to existing management protocols such as {Simple Network Management Protocol} (SNMP), and can be used on non-network computers.
DMI's four components are:
Management Information Format (MIF) - a text file containing information about the hardware and software on a computer. Manufacturers can create their own MIFs specific to a component.
Service layer - an OS add-on that connects the management interface and the component interface and allows management and component software to access MIF files. The service layer also includes a common interface called the local agent, which is used to manage individual components.
Component interface (CI) - an {application program interface} (API) that sends status information to the appropriate MIF file via the service layer. Commands include Get, Set, and Event.
Management interface (MI) - the management software's interface to the service layer. Commands are Get, Set, and List.
CI, MI, and service layer drivers are available on the Internet. {Intel}'s {LANDesk Client Manager} (LDCM) is based on DMI.
Version: 2.0s (as of 2000-01-19).
{Home (http://www.dmtf.org/spec/dmis.html)}.
{Sun overview
(http://www.sun.com/solstice/products/ent.agents/presentations/sld014.html)}.
(2000-01-19)

desktop management task force
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).
{Home (http://www.dmtf.org/)}.
(2000-01-19)

desktop manager
A {user interface} to system services, usually {icon} and {menu} based like the {Macintosh} {Finder}, enabling the user to run {application 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
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
DESY
Deutsches Electronen Synchrotron Laboratory, Hamburg, Germany.

detab
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
DETOL
[language] {Directly Executable Test Oriented Language}.
(1995-09-29)

developer
{programmer}

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

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)

developmental test and evaluation
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)

device
{peripheral}

device control
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
Device Control 1
{Control-Q}

device control 2
Device Control 2
[character] (DC2) The {mnemonic} for {ASCII} character 18, one of the four {Device Control} characters.
(1996-06-28)

device control 3
Device Control 3
{Control-S}

device control 4
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
Devil Book
[publication] "The Design and Implementation of the {4.3BSD} Unix Operating System", by Samuel J. Leffler, Marshall Kirk McKusick, Michael J. Karels, and John S. Quarterman (Addison-Wesley Publishers, 1989, ISBN 0-201-06196-1).
The standard reference book on the internals of {BSD} {Unix}. So called because the cover has a picture depicting a little devil (a visual play on {daemon}) in sneakers, holding a pitchfork (referring to one of the characteristic features of Unix, the "{fork}(2)" {system call}).
[{Jargon File}]
(1996-12-03)

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

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

dex
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
DFA
Deterministic Finite-state Automaton. See {Finite State Machine}.

dfc
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
DFD
{Data Flow Diagram}

dfs
DFS
1. [algorithm] {Depth-First Search}.
2. [file system] {Distributed File System}.

dft
DFT
{discrete Fourier transform}

dgl
DGL
1. Data Generation Language. A tool for generating test data for hardware or software systems.
2. Distributed {GL}.

dgl
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
DHCP
{Dynamic Host Configuration Protocol}

dhrystone
Dhrystone
[benchmark] A short {synthetic benchmark} program by Reinhold Weicker [weicker.muc@sni.de], [weicker.muc@sni-usa.com], intended to be representative of system (integer) programming. It is available in {ADA}, {Pascal} and {C}.
The current version is Dhrystone 2.1. The author says, "Relying on MIPS V1.1 (the result of V1.1) numbers can be hazardous to your professional health."
Due to its small size, the memory system outside the {cache} is not tested. Compilers can too easily optimise for Dhrystone. String operations are somewhat over-represented.
{Sources (ftp://ftp.nosc.mil/pub/aburto/)}.
{Results
(http://performance.netlib.org/performance/html/dhrystone.data.col0.html)}.
(2002-03-26)

dhsd
DHSD
{Duplex High Speed Data}

dhtml
DHTML
{Dynamic HTML}

dialog
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
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
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
DIANA
{Descriptive Intermediate Attributed Notation for Ada}

dib
DIB
{device independent bitmap}

dibol
DIBOL
Digital Interactive Business Oriented Language.
DEC, 1970.
Fortran syntax with BCD arithmetic.
Versions for PDP-8 and RT-11.
ANSI X3.165-1988.

dick size war
Dick Size War
{penis war}

dickless workstation
[abuse] Extremely pejorative hackerism for "{diskless workstation}".
[{Jargon File}]
(1995-03-28)

dicom
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
Dictionary APL
{Sharp APL}

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

dictionary of algorithms and data structures
Dictionary of Algorithms and Data Structures
[algorithm] (DADS) A dictionary by Paul Black.
{Home (http://hissa.nist.gov/dads)}.
(2001-03-26)

dictionary of computing
Dictionary of Computing
{Free On-line Dictionary of Computing}

did
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}.
[{Jargon File}]
(1995-01-31)

didot point
Didot point
[unit, text] A variant of the {point}, equal to 0.3759 mm, or 1/72 of a French Royal inch (27.07 mm), or about 1/68 inch. Didot points are used in Europe. This unit is named after the French printer Francois Ambroise Didot (1730 - 1804) who defined the "point-based" typographical measurement system.
(2002-03-11)

die
1. [jargon] {crash}. Unlike {crash}, which is used primarily of hardware, this verb is used of both hardware and software.
See also {go flatline}, {casters-up mode}.
2. [electronics] Plural: dies. An unpackaged {integrated circuit}.
[{Jargon File}]
(2002-12-09)

die horribly
[jargon] The software equivalent of {crash and burn}, and the preferred emphatic form of {die}. "The converter choked on an FF in its input and died horribly".
[{Jargon File}]
(1996-05-28)

diff
/dif/ 1. A change listing, especially giving differences between (and additions to) different versions of a piece of source code or documentation (the term is often used in the plural "diffs"). "Send me your diffs for the Jargon File!"
Compare {vdiff}.
2. Specifically, such a listing produced by the diff {Unix} command, especially when used as input to the {patch} utility (which actually performs the modifications). This is a common method of distributing patches and source updates.
3. To compare (whether or not by use of automated tools on machine-readable files).
See also {vdiff}, {mod}.
[{Jargon File}]
(1995-02-10)

difference engine
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 receiver subtracts the inverted signal from the normal signal to yield a signal proportional to V. This subtraction is intended to cancel out any noise induced in the wires, on the assmption that the same level of noise will have been induced in both wires. {Twisted pair} wiring is often used to try to ensure that this is the case.
The two wires might be connected at the receiver to separate {analogue to digital converters} and the subtraction performed digitally.
The {RS-422} {serial line} {standard} specifies differential drivers and receivers, whereas the earlier {RS-232} standard does not.
Opposite: {single ended}.
(1995-03-08)

diffiehellman
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
Digex
{Digital Express Group, Inc.}

digicash
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
Digicom
{(ftp://ftp.whnet.com/pub/wolfgang)}, {(ftp://softmodem.whnet.com/pub/wolfgang)}, {(ftp://ftp.netcom.com/pub/wolfgang)}. {(http://ftp.whnet.com/wolfgang/)}.
[Description?]

digirati
{digerati}

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

digital
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
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 camera
[graphics, hardware] A camera that captures and stores still images as {digital} data instead of on photographic film.
The first digital cameras became available in the early 1990s[?].
[Which and when was the first?]
(2000-08-10)

digital carrier
[hardware, communications] A medium which can carry {digital} signals; broadly equivalent to the {physical layer} of the {OSI} seven layer model of networks. Carriers can be described as {baseband} or {broadband}. A baseband carrier can include direct current (DC), whereas broadband carriers are modulated by various methods into frequency bands which do not include DC.
Sometimes a {modem} (modulator/demodulator) or {codec} (coder/decoder) combines several channels on one transmission path. The combining of channels is called {multiplexing}, and their separation is called demultiplexing, independent of whether a modem or codec bank is used. Modems can be associated with {frequency division multiplexing} (FDM) and codecs with {time division multiplexing} (TDM) though this grouping of concepts is somewhat arbitrary.
If the medium of a carrier is copper telephone wire, the circuit may be called {T1}, {T3}, etc. as these designations originally described such.
T1 carriers used a restored polar line coding scheme which allowed a baseband signal to be transported as broadband and restored to baseband at the receiver. T1 is not used in this sense today, and indeed it is often confused with the {DS1} signal carried.
(1996-03-31)

digital computer
[computer] A {computer} that represents numbers and other data using discrete internal states, in contrast to the continuously varying quantities used in an {analog computer}.
Some of the fundamental ideas behind the digital computer were proposed by {Alan Turing} between 1936 and 1938. The first electronic digital computer built was the {Atanasoff-Berry Computer} (ABC, 1937-1942), closely followed by the {ENIAC} (1943-1946).
(2002-04-07)

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
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
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
Digital Equipment Computer Users Society
[body, DEC] (DECUS) A world wide organisation of {Information Technology} professionals interested in the products, services, and technologies of {Digital Equipment Corporation} and related vendors. Membership in the US chapter is free and provides participants with the means to enhance their professional development, forums for technical training, mechanisms for obtaining up-to-date information, advocacy programs, and opportunities for informal disclosure and interaction with professional colleagues of like interest.
Address: 334 South Street, SHR3-1/T25, Shrewsbury, MA 01545-4195, USA.
Telephone: +1 (800) DECUS55.
(1995-02-08)

digital equipment corporation
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.
The first PC from DEC was a {CP/M} computer called {Rainbow}, announced in 1981-82.
DEC was the technological leader of the minicomputer era (roughly 1967 to 1987), but its failure to embrace {microcomputers} and {Unix} early cost it heavily in profits and prestige after {silicon} got cheap. However, the {microprocessor} design tradition owes a heavy debt to the {PDP-11} {instruction set}, and every one of the major general-purpose microcomputer {operating systems} so far (CP/M, {MS-DOS}, {Unix}, {OS/2}) were either genetically descended from a DEC OS, or incubated on DEC {hardware} or both. Accordingly, DEC is still regarded with a certain wry affection even among many hackers too young to have grown up on DEC machines. The contrast with {IBM} is instructive.
Quarterly sales $3923M, profits -$1746M (Aug 1994).
DEC was taken over by {Compaq Computer Corporation} in 1998.
{Home (http://www.digital.com/.html)}.
(1999-06-03)

digital equipment corporation network
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 European Cordless Telecommunications
{Digital Enhanced Cordless Telecommunications}

digital express group inc
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
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
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
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
Digital Multimeter
[electronics] (DMM) A peice of test equipment used for measuring voltage, current, resistance, and possibly other electircal quantities and displaying the value in number form.
(1997-02-12)

digital radio mondiale
Digital Radio Mondiale
[communications] (DRM) A form of {monaural} digital broadcast using {carrier} frequencies below 30 MHz. DRM uses {MPEG-4 AAC Main Profile} and {SBR} at data rates of 16-25 kbps.
{Home (http://www.drm.org/)}.
(2001-12-20)

digital research
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
{data service unit}

digital signal processing
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
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 signature standard
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 signatures
{digital signature}

digital simulation language
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
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
DIGITAL Standard MUMPS
(DSM) {DEC}'s version of {MUMPS}.
(1995-01-10)

digital subscriber line
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 (http://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].
(2001-04-30)

digital subscriber line access module
Digital Subscriber Line Access Module
[networking, hardware] (DSLAM, or Digital Subscriber Line Access Multiplexer) The generic term for the {Central Office} (CO) equipment where x{DSL} lines are terminated. The multiple {DSL} signals may be {multiplexed} onto a {wideband} channel such as {ATM}.
(2000-04-05)

digital subscriber loop
Digital Subscriber Loop
{Digital Subscriber Line}

digital switched network
Digital Switched Network
[communications] (DSN) The completely digital version of the {PSTN}.
(1997-07-18)

digital to analog converter
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
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 Video Disc
{Digital Versatile Disc}

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

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

dil
DIL
{Dual In-Line Package}

dilbert
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
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
{DIM statement}

dim statement
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)

dimate
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
DIMM
{Dual In-Line Memory Module}

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

din8
DIN-8
[hardware] An 8-pin round connector, sometimes used for {EIA-232} serial communication when space is restricted, such as on {laptop computers}.
(1996-12-08)

ding
1. Synonym for {feep}. Usage: rare among hackers, but commoner in the {Real World}.
2. "dinged": What happens when someone in authority gives you a minor bitching about something, especially something trivial. "I was dinged for having a messy desk."
[{Jargon File}]

dining philosophers problem
Dining Philosophers Problem
[parallel] (DPP) A problem introduced by {Dijkstra} concerning resource allocation between processes. The DPP is a model and universal method for testing and comparing theories on resource allocation. Dijkstra hoped to use it to help create a layered {operating system}, by creating a machine which could be consider to be an entirely {deterministic} {automaton}.
The problem consists of a finite set of processes which share a finite set of resources, each of which can be used by only one process at a time, thus leading to potential {deadlock}.
The DPP visualises this as a number of philosophers sitting round a dining table with a fork between each adjacent pair. Each philosopher may arbitrarily decide to use either the fork to his left or the one to his right but each fork may only be used by one philosopher at a time.
Several potential solutions have been considered.
Semaphores - a simple, but unfair solution where each resources is a {binary semaphore} and additional semaphores are used to avoid deadlock and/or {starvation}.
Critical Regions - each processor is protected from interference while it exclusively uses a resource.
Monitors - the process waits until all required resources are available then grabs all of them for use.
The best solution allows the maximum parallelism for any number of processes (philosophers), by using an array to track the process' current state (i.e. hungry, eating, thinking). This solution maintains an array of semaphores, so hungry philosophers trying to acquire resources can block if the needed forks are busy.
(1998-08-09)

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

dinnerbell
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
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}.
[{Jargon File}]

dinosaur pen
A traditional {mainframe} computer room complete with raised flooring, special power, its own ultra-heavy-duty air conditioning, and a side order of Halon fire extinguishers.
See {boa}.
(1995-11-17)

dinosaurs mating
[humour] The activity said to occur when yet another {big iron} merger or buy-out occurs; reflects a perception by hackers that these signal another stage in the long, slow dying of the {mainframe} industry. Also described as "elephants mating": lots of noise and action at a high level, with an eventual outcome in the somewhat distant future.
In its glory days of the 1960s, it was "{IBM} and the Seven Dwarves": {Burroughs}, {Control Data}, {General Electric}, {Honeywell}, {NCR}, {RCA}, and {Univac}. Early on, RCA sold out to Univac and GE also sold out, and it was "IBM and the BUNCH" (an acronym for Burroughs, Univac, NCR, Control Data, and Honeywell) for a while. Honeywell was bought out by Bull.
Univac in turn merged with {Sperry} to form Sperry/Univac, which was later merged (although the employees of Sperry called it a hostile takeover) with Burroughs to form {Unisys} in 1986 (this was when the phrase "dinosaurs mating" was coined). In 1991 {AT&T} absorbed NCR, only to spit it out again in 1996. Unisys bought {Convergent Technologies} in 1988 and later others.
More such earth-shaking unions of doomed giants seem inevitable.
[More dates?]
[{Jargon File}]
(1998-07-10)

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

diophantine equation
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
DIP
1. {Dual In-line Package}.
2. {Document Image Processing}.

diplex
[communications] (From {telegraphy}) Two simultaneous transmissions in one direction.
Compare: {duplex}.
(2000-03-30)

direct client to client protocol
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
Direct Connection
A re-seller of {Internet} connections to the {PIPEX} {backbone}.

direct inward dialing
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)

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

directaccess storage device
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)

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

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

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
Directory Access Protocol
X.500 protocol used for communication between a Directory User Agent and a Directory System Agent.

directory service
[database, networking] A structured repository of information on people and resources within an organisation, facilitating management and communication.
On a {LAN} or {WAN} the directory service identifies all aspects of the {network} including users, software, hardware, and the various rights and policies assigned to each. As a result applications can access information without knowing where a particular resource is physically located, and users interact oblivious to the network {topology} and {protocols}.
To allow {heterogeneous networks} to share directory information the {ITU} proposed a common structure called {X.500}. However, its complexity and lack of seamless {Internet} support led to the development of {Lightweight Directory Access Protocol} (LDAP) which has continued to evolve under the aegis of the {IETF}. Despite its name {LDAP} is too closely linked to {X.500} to be "lightweight".
{LDAP} was adopted by several companies such as {Netscape Communications Corporation} (Netscape Directory Server) and has become a {de facto standard} for directory services. Other LDAP compatible offerings include {Novell, Inc.}'s {Novell Directory Services} (NDS) and {Microsoft Corporation}'s {Active Directory}. The Netscape and Novell products are available for {Windows NT} and {Unix} {platforms}. {Novell Directory Services} also run on Novell platforms. {Microsoft Corporation}'s {Active Directory} is an integral part of {Microsoft's Windows 2000} and although it can interface with directory services running on other systems it is not available for other platforms.
(2001-01-02)

directory system agent
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
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
DirectX
[programming, hardware] A {Microsoft} programming interface {standard}, first included with {Windows 95}. DirectX gives (games) programmers a standard way to gain direct access to enhanced hardware features under Windows 95 instead of going via the Windows 95 {GDI}. Some DirectX code runs faster than the equivalent under {MS DOS}.
DirectX promises performance improvements for graphics, sound, video, 3D, and network capabilites of games, but only where both hardware and software support DirectX.
DirectX 2 introduced the Direct3D interface. Version 5 was current at 1998-02-01. Version 8.1 is included in {Windows XP}.
Current version: 8.1 (as of 2001-12-31).
{Home (http://www.microsoft.com/directx/)}.
(2001-12-31)

dirt
Dirt
{Design In Real Time}

dirtball
({XEROX PARC}) A small, perhaps struggling outsider; not in the major or even the minor leagues. For example, "Xerox is not a dirtball company".
Outsiders often observe in the PARC culture an institutional arrogance which usage of this term exemplifies. The brilliance and scope of PARC's contributions to computer science have been such that this superior attitude is not much resented. - ESR
[{Jargon File}]
(1994-12-07)

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

disa
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.
[{Jargon File}]
(1995-07-30)

disconnect
{SCSI reconnect}

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

discrete 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
discrete Fourier transform
[mathematics] (DFT) A {Fourier transform}, specialized to the case where the {abscissas} are integers.
The DFT is central to many kinds of {signal processing}, including the analysis and {compression} of video and {sound} information.
A common implementation of the DFT is the {Fast Fourier Transform} (FFT).
See also {discrete cosine transform}.
(1997-03-10)

discrete preorder
[mathematics] A {preorder} is said to be discrete if any two of its elements are {incomparable}.
(1995-09-21)

discriminated union
[theory] The discriminated union of two sets A and B is
A + B = {(inA, a) | a in A} U {(inB, b)| b in B}
where inA and inB are arbitrary tags which specify which summand an element originates from.
A {type} (especially an {algebraic data type}) might be described as a discriminated union if it is a {sum type} whose objects consist of a tag to say which part of the union they belong to and a value of the corresponding type.
(1995-04-25)

discussion group
[messaging] Any system that supports group messaging, e.g. a shared {mailbox}, {Usenet}, {bulletin board system}, or possibly a {mailing list}, used to publish messages on some particular topic.
(2000-11-16)

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

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

disjunctive normal form
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)

disk farm
[jargon] (Or "{laundromat}") A large room or rooms filled with {disk drives} (especially {washing machines}).
[{Jargon File}]
(1995-03-27)

disk mirroring
[hardware, storage] Use of one or more {mirrors} of a {hard disk}.
(1996-02-17)

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 operating system
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 striping
{data striping}

diskette
{floppy disk}

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)

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

disman
{Distributed Management}

display
1. [hardware] {monitor}.
2. [language] A vector of pointers to {activation 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}.
[{Jargon File}]
(1995-05-10)

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

display screen equipment
Display Screen Equipment
{Visual Display Unit}

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
Dissociated Press
[Play on "Associated Press"; perhaps inspired by a reference in the 1949 Bugs Bunny cartoon "What's Up, Doc?"] An algorithm for transforming any text into potentially humorous garbage even more efficiently than by passing it through a {marketroid}. The algorithm starts by printing any N consecutive words (or letters) in the text. Then at every step it searches for any random occurrence in the original text of the last N words (or letters) already printed and then prints the next word or letter. {Emacs} has a handy command for this. Here is a short example of word-based Dissociated Press applied to an earlier version of the {Jargon File}:
wart: A small, crocky {feature} that sticks out of an array (C has no checks for this). This is relatively benign and easy to spot if the phrase is bent so as to be not worth paying attention to the medium in question.
Here is a short example of letter-based Dissociated Press applied to the same source:
window sysIWYG: A bit was named aften /bee't*/ prefer to use the other guy's re, especially in every cast a chuckle on neithout getting into useful informash speech makes removing a featuring a move or usage actual abstractionsidered interj. Indeed spectace logic or problem!
A hackish idle pastime is to apply letter-based Dissociated Press to a random body of text and {vgrep} the output in hopes of finding an interesting new word. (In the preceding example, "window sysIWYG" and "informash" show some promise.) Iterated applications of Dissociated Press usually yield better results. Similar techniques called "travesty generators" have been employed with considerable satirical effect to the utterances of {Usenet} flamers; see {pseudo}.
[{Jargon File}]

distfix
[programming] ("distributed {fixity}"?) A description of an {operator} represented by multiple symbols before, between, and/or after the arguments.
The classical example is the {C} conditional operator, "?:" which is written
E1 ? E2 : E3
If E1 is true it returns E2 otherwise it returns E3. Several {functional programming languages}, e.g. {Hope}, {Haskell}, have similar operators ("if E1 then E2 else E3").
{Objective C} {messages} are effectively distfix operator applications:
getRow:row andColumn:col ofCell:cell
is a message with three arguments, row, col, and cell.
(1997-01-21)

distributed component object model
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.
{Home (http://www.microsoft.com/com/tech/DCOM.asp)}.
[Details?]
(2000-08-02)

distributed computing environment
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 data management
Distributed Data Management
[protocol, database] (DDM) An {IBM} {data} {protocol} architecture for data management services across {distributed} systems in an {SNA} environment.
DDM provides a common {data management language} for data interchange among different IBM system platforms.
Products supporting DDM include {AS/400}, {System/36}, {System/38} and {CICS/DDM}.
On the AS/400, DDM controls remote file processing. DDM enables application programs running on one AS/400 system to access data files stored on another system supporting DDM. Similarly, other systems that have DDM can access files in the database of the local AS/400 system. DDM makes it easier to distribute file processing between two or more systems.
{OS/400 Distributed Data Management V3R6 Reference
(http://as400bks.rochester.ibm.com/cgi-bin/bookmgr/bookmgr.cmd/BOOKS/QBJALH00/CCONTENTS)}.
(1999-04-26)

distributed 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 eiffel
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
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
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
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
Distributed Operating Multi Access Interactive Network
(DOMAIN) The proprietary network {protocol} used by {Apollo} {workstation}s.
(1995-02-16)

distributed processes
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
Distributed Queue Dual Bus
[networking, standard] (DQDB) An {IEEE} {standard} for {metropolitan area networks}.
{(http://www.ece.wpi.edu/~vlad/ee535/hw5/page1.html)}.
[Details?]
(2000-08-02)

distributed smalltalk
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.
[{Jargon File}]

distributive lattice
[theory] A {lattice} for which the {least upper bound} (lub) and {greatest lower bound} (glb) operators distribute over one another so that
a lub (b glb c) == (a lub c) glb (a lub b)
and vice versa.
("lub" and "glb" are written in {LateX} as {\sqcup} and {\sqcap}).
(1998-11-09)

disusered
({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.
[{Jargon File}]
(1994-12-08)

dithering
[data, algorithm] A technique used in {quantisation} processes such as {graphics} and {audio} to reduce or remove the correlation between noise and signal.
Dithering is used in {computer graphics} to create additional colors and shades from an existing {palette} by interspersing {pixels} of different colours. On a {monochrome} display, areas of grey are created by varying the proportion of black and white pixels. In colour displays and printers, colours and textures are created by varying the proportions of existing colours. The different colours can either be distributed randomly or regularly. The higher the {resolution} of the display, the smoother the dithered colour will appear to the eye.
Dithering doesn't reduce resolution. There are three types: regular dithering which uses a very regular predefined pattern; random dither where the pattern is a random noise; and pseudo random dither which uses a very large, very regular, predefined pattern.
Dithering is used to create patterns for use as backgrounds, fills and shading, as well as for creating {halftones} for printing. When used for printing is it very sensitive to paper properties. Dithering can be combined with {rasterising}. It is not related to {anti-aliasing}.
(2003-07-20)

ditto drive
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
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
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
[networking] The {country code} for Denmark.
(1999-01-27)

dk
DK
{Datakit}

dl1
DL/1
Query language, linear keyword.

dlc
DLC
{Data Link Control}

dlci
DLCI
{Data Link Connection Identifier}
[Is this correct?]
(1997-03-01)

dle
DLE
[character] Data Link Escape, the {mnemonic} for {ASCII} 16.
(1996-06-24)

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

dli
DL/I
The data manipulation language of IMS.

dll
DLL
1. [networking] {Data Link Layer}.
2. [library] {Dynamically Linked Library}.
3. {Dial Long Line} equipment.
(2000-04-05)

dlm
DLM
Distributed Lock Manager on distributed VMS systems.

dlp
DLP
[language] {Distributed Logic Programming}.
(1996-01-07)

dlpi
DLPI
{Data Link Provider Interface}

dlt
DLT
{Digital Linear Tape}

dlurdlus
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/DLUR7/)}.
(1997-05-08)

dlz1
DLZ1
{Digital Lempel Ziv 1}

dm
[networking] The {country code} for Dominica.
(1999-01-27)

dma
DMA
{Direct Memory Access}

dmad
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
DMALGOL
{ALGOL} with extensions to interface to {DMS II}, the {Burroughs} {database}.
(1995-02-22)

dme
DME
{Distributed Management Environment}

dmi
DMI
{Desktop Management Interface}

dml
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
DMM
{Digital Multimeter}

dmtf
DMTF
{Desktop Management Task Force}

dmz
DMZ
{De-Militarised Zone}

dna computing
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
DNF
{disjunctive normal form}

dnis
DNIS
{Dialled Number Identification Service}

dnix
DNIX
[operating system] A flavor of {Unix} that is proprietary to {Olivetti} and {Wang Global}.
[Details? Reference?]
(2000-12-16)

dnos
DNOS
{Distributed Network Operating System}

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

do loop
{repeat loop}

doa
DOA
[jargon] Dead on arrival. A piece of {hardware} that has never worked.
(2000-12-19)

doc
Doc
{Directed Oc}

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

docking station
[hardware] A {desktop} mains powered unit into which a {laptop} or other portable computer can be connected via fixed connectors at the rear of the computer to provide quick and convenient connection of {peripherals} not normally used with a laptop. These can include power supply, {expansion cards}, additional {storage}, an external {monitor}, {network card}, {CD-ROM}, full-size {keyboard}, {printer}, and {mouse}. The alternative would require each of the above to be connected to the laptop individually.
(2000-04-10)

docmaker
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}.
[{Jargon File}]
(1999-10-08)

docsis
DOCSIS
{Data Over Cable Service Interface Specification}

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.

document examiner
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
Document Image Processing
(DIP) Storage, management and retrieval of {image}s.
(1994-11-11)

document object model
Document Object Model
[hypertext, language, World-Wide Web] A {W3C} specification for {application program interfaces} for accessing the content of {HTML} and {XML} documents.
{Home (http://www.w3.org/DOM/)}.
(1999-12-14)

document style semantics and specification language
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
Document Type Definition
[text, standard] (DTD) The definition of a document type in {SGML} or {XML}, consisting of a set of {mark-up} tags and their interpretation.
{Docbook DTD home (http://www.oasis-open.org/docbook/)}.
{XML DTD Tutorial (http://www.xml101.com/dtd)}.
(2001-04-30)

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}.
[{Jargon File}]

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

dod
DoD
1. [body] {Department of Defense}.
2. {Dial on Demand}.
(2000-03-25)

dod1
DoD-1
Unofficial name of the language that became Ada.

dodgy
Synonym with {flaky}. Preferred outside the US
[{Jargon File}]

dodstd2167a
DOD-STD-2167A
[standard] A {DoD} {standard} specifying the overall process for the development and documentation of mission-critical software systems.
(1996-05-28)

dodstd2168
DoD-STD-2168
[standard] A {DoD} {standard} for software quality assurance procedures.
(1996-05-29)

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

dof
DOF
{degrees of freedom}

dogcow
/dog'kow/ See {Moof}.
[{Jargon File}]

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

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

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

dom
DOM
{Document Object Model}

domain
1. [mathematics] In the theory of functions, the set of argument values for which a {function} is defined.
See {domain theory}.
2. [networking] 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
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
Domain Architecture Model
[systems analysis] A set of software architectures generic to a {domain} that define organising frameworks for constructing new application designs and implementations within the domain, consistent with the domain requirements model.
(1997-12-26)

domain calculus
[database] A form of {relational calculus} in which {scalar} variables take values drawn from a given {domain}.
Examples of the domain calculus are {ILL}, {FQL}, {DEDUCE} and the well known {Query By Example} (QBE). {INGRES} is a {relational DBMS} whose {DML} is based on the relational calculus.

domain engineering
[systems analysis] 1. The development and evolution of {domain} specific knowledge and artifacts to support the development and evolution of systems in the domain. Domain engineering includes engineering of {domain models}, components, methods and tools and may also include {asset management}.
2. The engineering process of analysing and modelling a domain, designing and modelling a generic solution architecture for a product line within that domain, implementing and using reusable components of that architecture and maintaining and evolving the domain, architecture and implementation models.
3. A reuse-based approach to defining the scope ({domain definition}), specifying the structure ({domain architecture}) and building the Assets (requirements, designs, software code, documentation) for a class of systems, subsystems or applications. Domain engineering can include domain definition, domain analysis, developing the domain architecture domain implementation.

domain maturity
[systems analysis] The level of stability and depth of understanding that has been achieved in an area for which {applications} are developed.
(1997-12-26)

domain model
[systems analysis] 1. A definition of the functions, objects, data, requirements, relationships and variations in a particular {domain}.
2. A product of {domain analysis} which provides a representation of the requirements of the domain. The domain model identifies and describes the structure of data, flow of information, functions, constraints and controls within the Domain that are included in software systems in the domain. The Domain Model describes commonalities and variabilities among requirements for software systems in the domain.
(1997-12-26)

domain name
{fully qualified domain name}

domain name server
Domain Name Server
[spelling] {Domain Name System}.
(1997-12-15)

domain name system
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}, {RFC 1035}, {RFC 1591}.
{BIND} is a common DNS server.
{Info from Virtual Office, Inc. (http://virtual.office.com/domains.html)}.
(2001-05-14)

domain selection
[systems analysis] The prioritisation and selection of one or more {domains} for which specific {software reuse} engineering projects are to be initiated.
(1997-12-26)

domain software engineering environment
Domain Software Engineering Environment
[programming] (DSEE) A proprietary {CASE} framework and {configuration management} system from {Apollo}.
(1996-05-29)

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 systems}, {fractals}, {measure theory}, {integration theory}, {probability theory}, and {stochastic processes}.
See also {abstract interpretation}, {bottom}, {pointed domain}.
(1999-12-09)

domainist
[jargon] /doh-mayn'ist/ 1. Said of a domain address (as opposed to a {bang path}) because the part to the right of the "@" specifies a nested series of "domains"; for example, esr@snark.thyrsus.com specifies the machine called snark in the subdomain called thyrsus within the top-level domain called com. See also {big-endian}.
2. Said of a site, mailer or routing program which knows how to handle domainist addresses.
3. Said of a person (especially a site admin) who prefers domain addressing, supports a domainist mailer, or proselytises for domainist addressing and disdains {bang paths}. This term is now (1993) semi-obsolete, as most sites have converted.
[{Jargon File}]
(1995-04-21)

domainspecific language
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)

domf
DOMF
Distributed Object Management Facility.
An {OMG}-compliant object management system; part of {DOE}. Produced by {SunSoft}.
(1994-11-04)

donald knuth
Donald Knuth
[person] Donald E. Knuth, the author of the {TeX} document formatting system, {Metafont} its {font}-design program and the 3 volume computer science "Bible" of {algorithms}, "The Art of Computer Programming".
Knuth suggested the name "{Backus-Naur Form}" and was also involved in the {SOL} simulation language, and developed the {WEB} {literate programming} system.
See also {MIX}, {Turingol}.
(1994-11-04)

dongle
[hardware] /dong'gl/ (From "dangle" - because it dangles off the computer?)
1. [security] A security or {copy protection} device for commercial {microcomputer} programs that must be connected to an {I/O port} of the computer while the program is run. Programs that use a dongle query the port at start-up and at programmed intervals thereafter, and terminate if it does not respond with the expected validation code.
One common form consisted of a serialised {EPROM} and some drivers in a {D-25} connector shell.
Dongles attempt to combat {software theft} by ensuring that, while users can still make copies of the program (e.g. for {backup}), they must buy one dongle for each simultaneous use of the program.
The idea was clever, but initially unpopular with users who disliked tying up a port this way. By 1993 almost all dongles passed data through transparently while monitoring for their particular {magic} codes (and combinations of status lines) with minimal if any interference with devices further down the line. This innovation was necessary to allow {daisy-chained} dongles for multiple pieces of software.
In 1998, dongles and other copy protection systems are fairly uncommon for {Microsoft Windows} software but one engineer in a print and {CADD} bureau reports that their {Macintosh} computers typically run seven dongles: After Effects, Electric Image, two for Media 100, Ultimatte, Elastic Reality and CADD. These dongles are made for the Mac's daisy-chainable {ADB} port.
The term is used, by extension, for any physical electronic key or transferable ID required for a program to function. Common variations on this theme have used the {parallel port} or even the {joystick} port or a {dongle-disk}.
An early 1992 advertisment from Rainbow Technologies (a manufacturer of dongles) claimed that the word derived from "Don Gall", the alleged inventor of the device. The company's receptionist however said that the story was a myth invented for the ad.
[{Jargon File}]
(1998-12-13)
2. A small adaptor cable that connects, e.g. a {PCMCIA} {modem} to a telephone socket or a PCMCIA {network card} to an {RJ45} {network cable}.
(2002-09-29)

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

dont do that then
Don't do that then!
[humour] (From an old doctor's office joke about a patient with a trivial complaint) A stock response to a user complaint. "When I type control-S, the whole system comes to a halt for thirty seconds." "Well don't do that then!"
[{Jargon File}]
(1998-12-13)

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

doom
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: {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
DOORS
{Dynamic Object Oriented Requirements System}

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

dorito syndrome
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
DORUM
{Draft Once ReUse Many}

dos
DOS
[operating system] 1. The common abbreviation for {MS-DOS}.
2. {IBM}'s {Disk Operating System}.
3. Any {disk operating system}.
(2001-03-16)

dos protected mode interface
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
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)

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

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}.
[{Jargon 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 forward to press an ink ribbon against the paper. The print head is repeatedly scanned across the page and different combinations of needles activated at each point.
Dot matrix printers are noisy compared to {non-impact printer}s.
[Other pin arrangements?]
(1995-03-14)

dot notation
[networking] {Berkeley Unix} notation for an {Internet address}, consisting of one to four numbers (a "dotted quad") in {hexadecimal} (leading 0x), {octal} (leading 0), or (usually) decimal. It represents a 32-bit address. Each leading number represents eight bits of the address (high byte first) and the last number represents the rest. E.g. address 0x25.32.0xab represents 0x252000ab. By far the most common form is four decimal numbers, e.g. 146.169.22.42.
Many programs accept an address in dot notation in place of a {hostname}.
(2000-08-10)

dot pitch
[hardware] The distance between a dot and the closest dot of the same colour (red, green or blue) on a color {CRT}. Dot pitch is typically from 0.28 to 0.51 mm but large presentation monitors may go up to 1.0 mm. The smaller the dot pitch, the crisper the image, 0.31 or less provides a sharp image, especially when displaying text.
Dot pitch measurements between conventional tubes and {Sony}'s {Trinitron} tubes are roughly, but not exactly comparable. Sony's {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)

dotted quad
dot notation

double bucky
Using both the CTRL and META keys. "The command to burn all LEDs is double bucky F."
This term originated on the Stanford extended-ASCII keyboard, and was later taken up by users of the {space-cadet keyboard} at MIT. A typical MIT comment was that the Stanford {bucky bits} (control and meta shifting keys) were nice, but there weren't enough of them; you could type only 512 different characters on a Stanford keyboard. An obvious way to address this was simply to add more shifting keys, and this was eventually done; but a keyboard with that many shifting keys is hard on touch-typists, who don't like to move their hands away from the home position on the keyboard. It was half-seriously suggested that the extra shifting keys be implemented as pedals; typing on such a keyboard would be very much like playing a full pipe organ. This idea is mentioned in a parody of a very fine song by Jeffrey Moss called "Rubber Duckie", which was published in "The Sesame Street Songbook" (Simon and Schuster 1971, ISBN 0-671-21036-X). These lyrics were written on May 27, 1978, in celebration of the Stanford keyboard:
Double Bucky
Double bucky, you're the one! You make my keyboard lots of fun. Double bucky, an additional bit or two: (Vo-vo-de-o!) Control and meta, side by side, Augmented ASCII, nine bits wide! Double bucky! Half a thousand glyphs, plus a few! Oh, I sure wish that I Had a couple of Bits more! Perhaps a Set of pedals to Make the number of Bits four: Double double bucky! Double bucky, left and right OR'd together, outta sight! Double bucky, I'd like a whole word of Double bucky, I'm happy I heard of Double bucky, I'd like a whole word of you!
- The Great Quux
(With apologies to Jeffrey Moss. This, by the way, is an excellent example of computer {filk} --- ESR).
See also {meta bit}, {cokebottle}, and {quadruple bucky}.
[{Jargon File}]
(1994-12-07)

double data rate random access memory
Double Data Rate Random Access Memory
[storage] (DDR-RAM, DDR-SDRAM ...Synchronous...) {RAM} that transfers data on both 0-1 and 1-0 {clock} transitions, theoretically yielding twice the data transfer rate of normal RAM or {SDRAM}.
{DDR-RAM Article (http://www.pcreview.co.uk/Article.php?aid=9)}.
{DDR-SDRAM Article (http://www4.tomshardware.com/mainboard/00q4/001030/)}.
(2001-05-24)

double data rate synchronous random access memory
Double Data Rate Synchronous Random Access Memory
{Double Data Rate Random Access Memory}

double deckers
double DECkers
[jargon] Married couples in which both partners work for {Digital Equipment Corporation}.
[{Jargon File}]
(1994-12-07)

double density
{floppy disk}

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)

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

doubled sig
A {sig block} that has been included twice in a {Usenet} article or, less commonly, in an {electronic mail} message. An article or message with a doubled sig can be caused by improperly configured software. More often, however, it reveals the author's lack of experience in electronic communication.
See {BIFF}, {pseudo}.
[{Jargon File}]
(1994-12-07)

doubleduplex
double-duplex
[communications] (From {telegraphy}) A {full-duplex} link with two telegraphers (a sender and a receiver) at each end, to simultaneously transmit in both directions.
Compare: {single-duplex}.
(2000-03-30)

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)

doug lenat
Doug Lenat
[person] One of the world's leading computer scientists specialising in {Artificial Intelligence}. He is currently (1999) head of the {Cyc} Project at {MCC}, and President of Cycorp. He has been a Professor of Computer Science at {Carnegie-Mellon University} and {Stanford University}.
See also {microLenat}.
(1999-08-24)

douglas
DOUGLAS
An early system on the {IBM 701}.
[Listed in CACM 2(5):16 (May 1959)].
(1994-12-07)

douglas engelbart
Douglas Engelbart
[person] Douglas C. Engelbart, the inventor of the {mouse}.
On 1968-12-09, Douglas C. Engelbart and the group of 17 researchers working with him in the {Augmentation Research Center} at {Stanford Research Institute} in Menlo Park, California, USA, presented a 90-minute live public demonstration of the on live system, {NLS}, they had been working on since 1962. The presentation was a session in the of the Fall Joint Computer Conference held at the Convention Center in San Francisco, and it was attended by about 1000 computer professionals. This was the public debut of the computer mouse, hypertext, object addressing, dynamic file linking, and shared-screen collaboration involving two persons at different sites communicating over a network with audio and video interface.
The original 90-minute video: {Hyperlinks (http://vodreal.stanford.edu/engel/08engel200.ram)}, {Mouse (http://vodreal.stanford.edu/engel/12engel200.ram)}, {Web-board (http://vodreal.stanford.edu/engel/23engel200.ram)}.
{Biography (http://www2.bootstrap.org/dce-bio.htm)}.
{Tia O'Brien, "The Mouse", Silicon Valley News (http://www.mercurycenter.com/svtech/news/special/engelbart/)}.
{(http://inventors.about.com/library/weekly/aa081898.htm)}.
(2003-08-06)

dow compiler
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}.
[{Jargon File}]
(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.
[{Jargon File}]
(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}

downtime
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
Downy cocktail
{cationic cocktail}

dp
DP
1. {data processing}.
According to hackers, use of the term marks one immediately as a {suit}.
See {DPer}.
2. {dot pitch}.
3. {Dissociated Press}.
[{Jargon File}]
(1996-07-22)

dpb
DPB
/d*-pib'/ The {PDP-10} instruction "DePosit Byte" that inserts some bits into the middle of some other bits. Hackish usage has been kept alive by the {Common LISP} function of the same name.
[{Jargon File}]
(1994-12-07)

dper
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}.
[{Jargon File}]
(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
DPL
DECmmp Parallel Language.
A {C}-like parallel language for the {DECmpp} machine.
(1994-12-07)

dpl82
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
DPLL
{Digital Phase-Locked Loop}

dpmi
DPMI
{DOS Protected Mode Interface}

dpms
DPMS
[hardware] {Display Power Management Signaling}.
(1995-12-11)

dpn
DPN
{Decomposed Petri Net}

dpp
DPP
{Dining Philosophers Problem}

dprolog
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
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
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
DPSK
[communications] {Differential Phase Shift Keying}.

dqdb
DQDB
{Distributed Queue Dual Bus}

dr james h clark
Dr. James H. Clark
[person] The founder of {Silicon Graphics, Inc.} and co-founder of {Netscape Communications Corporation}.
(1998-05-21)

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

dragndrop
drag-n-drop
[spelling] Stupid spelling of {drag and drop}.
(1996-12-13)

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".
[{Jargon File}]

dragon
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].
[{Jargon File}]
(1994-12-08)

dragon book
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
DRAGOON
[language] A {distributed}, {concurrent}, {object-oriented} {Ada}-based language developed in the {Esprit} {DRAGON} project by Colin Atkinson at {Imperial College} in 1989 (Now at University of Houston, Clear Lake). DRAGOON supports object-oriented programming for {embeddable systems} and is presently implemented as an Ada {preprocessor}.
["Object-Oriented Reuse, Concurrency and Distribution: An Ada-Based Approach", C. Atkinson, A-W 1991, ISBN 0-2015-6-5277].
(1999-11-22)

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

dram
DRAM
{dynamic random access memory}

dram refresh
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
Drawing eXchange Format
(DXF) A file format for graphical information, similar to {IGES}. Commonly used by {CAD} systems like {AutoCAD}.
(1994-12-08)

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

dream 6800
DREAM 6800
[computer] A computer based on the {Motorola 6800} {microprocessor}.
The DREAM 6800 could be programmed in {CHIP-8}.
(2002-04-09)

drecnet
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.
[{Jargon File}]

drivers
{driver}

drm
DRM
{Digital Radio Mondiale}

droid
[robotics] (From "android") The robots of the Star Wars universe. While androids look somewhat human-like, Star Wars' droids are typically fashioned in the likeness of their creators or in a utilitarian design that stresses function over appearance. Droids are equipped with artificial intelligence, though some are naturally created smarter than others depending on the function they are designed to serve.
"Droid" is a Lucasfilm Ltd. trademark.
{starwars.com (http://www.starwars.com/databank/droid/)}.
["A Guide to the Star Wars Universe", Bill Slavicsek, 1994, Lucasfilm Ltd.]
[Was George Lucas really the first to use the abbreviation?]
(2003-05-11)

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

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

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

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

dropdown list
drop-down list
{pull-down list}

dropdown menu
drop-down menu
{pull-down menu}

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

dropouts
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}.
[{Jargon File}]
(2001-02-22)

drscheme
DrScheme
[Scheme] A popular {Scheme} implementation from the {PLT} team at {Rice University}.
{Home (http://www.cs.rice.edu/CS/PLT/packages/drscheme/)}.
(2001-02-22)

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

drugged
(Or "on drugs") 1. Conspicuously stupid, heading toward {brain-damaged}. Often accompanied by a pantomime of toking a joint.
2. Of hardware, very slow relative to normal performance.
[{Jargon File}]

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.
[{Jargon File}]

dry run
[programming] To execute a program by hand, writing values of variables and other run-time data on paper, in order to check its operation 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)

ds level
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)

ds0
DS0
[communications] The zeroth {DS level}, having a transmission rate of 64,000 bits per second (64 kb/s), intended to carry one {voice channel} (a phone call).
(2001-03-18)

ds1
DS1
[communications] A {DS level} and {framing specification} for synchronous digital streams, over circuits in the North American {digital transmission hierarchy}, at the {T1} transmission rate of 1,544,000 bits per second ({baud}).
DS1 is commonly used to multiplex 24 {DS0} channels. Each DS0 channel, originally a digitised voice-grade telephone signal, carries 8000 bytes per second (64,000 bits per second). A DS1 frame includes one byte from each of the 24 DS0 channels and adds one {framing bit}, making a total of 193 bits per frame at 8000 frames per second. The result is 193*8000 = 1,544,000 bits per second.
In the original standard, the successive framing bits continuously repeated the 12-bit sequence 110111001000, and such a 12-frame unit is called a super-frame. In voice telephony, errors are acceptable (early standards allowed as much as one frame in six to be missing entirely), so the least significant bit in two of the 24 streams was used for signaling between network equipments. This is called {robbed-bit signaling}.
To promote error-free transmission, an alternative called the extended super-frame (ESF) of 24 frames was developed. In this standard, six of the 24 framing bits provide a six bit {cyclic redundancy check} (CRC-6), and six provide the actual framing. The other 12 form a virtual circuit of 4000 bits per second for use by the transmission equipment, for {call progress signals} such as busy, idle and ringing. DS1 signals using ESF equipment are nearly error-free, because the CRC detects errors and allows automatic re-routing of connections.
Compare {T-carrier systems}.
[Kenneth Sherman, "Data Communications : a user's guide", third edition (1990), Reston/Prentice-Hall/Simon & Schuster].
(1996-03-30)

ds1c
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
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
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
DSA
{Directory System Agent}

dsdm
DSDM
{Dynamic Systems Development Method}

dse
DSE
1. Display Screen Equipment. See {Visual Display Unit}.
2. {Data Structure Editor}.
(2002-11-09)

dsee
DSEE
{Domain Software Engineering Environment}

dshell connector
D-shell connector
[hardware] One of the family of connectors: DA-15, {DB-25}, DC-37, DD-50, {DE-9}, and DEH-15 [VGA]. The "D" is the shape of the shell, the next letter determines connector size, and the number is the maximum pin count.
(1999-12-08)

dsi
DSI
{Delivered Source Instruction}

dsl
DSL
1. [communications] {Digital Subscriber Line}.
2. [language] {Digital Simulation Language}.
3. [language] {Denotational Semantics Language}.
(1996-10-13)

dslam
DSLAM
{Digital Subscriber Line Access Module}

dsm
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
DSN
{Digital Switched Network}

dsp
DSP
{digital signal processing}

dsp32 assembly language
DSP32 Assembly Language
A high-level assembly language for the DSP32 Programmable DSP Chip.

dsp56000
DSP56000
A {digital signal processing} chip from {Motorola}.
An assembler called {a56} and a port of {gcc} called {dsp56k-gcc} are available.

dsp56001
DSP56001
A {digital signal processing} chip from {Motorola}.
An assembler called {a56} is available.

dsp56165gcc
dsp56165-gcc
A port of {gcc} version 1.40 to the {Motorola} {DSP56156} and {DSP56000} by Andrew Sterian [asterian@eecs.umich.edu].
{alt.sources}

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

dspc
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
DSPL
{Digital Signal Processing Language}

dsr
DSR
{Dynamic Service Register}

dss
DSS
1. {Decision Support Systems}.
2. {Digital Signature Standard}.
(1995-11-16)

dsssl
DSSSL
{Document Style Semantics and Specification Language}

dst
DST
Daylight-Saving Time.

dsu
DSU
1. [communications] {Data Service Unit}.
2. {Disk Subsystem Unit} ({Artecon}).
3. [humour] {Dwarf Storage Unit}.
(1996-12-01)

dsvd
DSVD
{Digital Simultaneous Voice and Data}

dsw
DSW
{penis war}

dtalgol
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
DTD
{Document Type Definition}

dte
DTE
{Data Terminal Equipment}

dte
DT&E
{Developmental Test and Evaluation}

dtls
DTLS
{Descriptive Top-Level Specification}

dtmf
DTMF
{Dual Tone Multi Frequency}

dtp
DTP
{desktop publishing}

dtr
DTR
{Data Terminal Ready}

dts
DTS
1. {Distributed Time Service}.
2. [audio] {Digital Theatre Sound}.
(2001-12-24)

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

dtype
D-type
1. [hardware] A type of computer peripheral connector so named because one side is shorter (with one less pin) than the other giving a (squarish) "D" shape. The connectors have two rows of pins (or holes). Common types are 25-way (13+12 pins) and 9-way (5+4 pins). They are often used for serial lines, especially {EIA-232}.
(1995-01-05)
2. {D-type flip-flop}.

dtype flipflop
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
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 inline
Dual In-Line
[hardware] {Dual In-Line Package}.

dual inline memory module
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 inline package
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
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)

dual607
DUAL-607
An early system on the {IBM 701}.
[CACM 2(5):16 (May 1959)].
(1994-12-13)

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

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

dualstack
dual-stack
[networking] A term used to describe a network {node} running both {IPv4} and {IPv6} {protocol stacks} (or possibly others) at the same time. Such a machine can act as a {protocol converter} between the two networks.
(2000-12-19)

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

duffs device
Duff's device
The most dramatic use yet seen of {fall through} in {C}, invented by Tom Duff when he was at Lucasfilm. Trying to {bum} all the instructions he could out of an inner loop that copied data serially onto an output port, he decided to unroll it. He then realised that the unrolled version could be implemented by *interlacing* the structures of a switch and a loop:
register n = (count + 7) / 8; /* count ] 0 assumed */
switch (count % 8) { case 0: do { *to = *from++; case 7: *to = *from++; case 6: *to = *from++; case 5: *to = *from++; case 4: *to = *from++; case 3: *to = *from++; case 2: *to = *from++; case 1: *to = *from++; } while (--n ] 0); }
Shocking though it appears to all who encounter it for the first time, the device is actually perfectly valid, legal C. C's default {fall through} in case statements has long been its most controversial single feature; Duff observed that "This code forms some sort of argument in that debate, but I'm not sure whether it's for or against."
[For maximal obscurity, the outermost pair of braces above could be actually be removed - {GLS}]
[{Jargon File}]
(2001-06-22)

dumb terminal
[hardware] A type of {terminal} that consists of a keyboard and a display screen that can be used to enter and transmit data to, or display data from, a computer to which it is connected. A dumb terminal, in contrast to an {intelligent terminal}, has no independent processing capability or {auxiliary storage} and thus cannot function as a stand-alone device.
The dumbest kind of terminal is a {glass tty}. The next step up has a minimally {addressable cursor} but no on-screen editing or other features normally supported by an {intelligent terminal}.
Once upon a time, when glass ttys were common and addressable cursors were something special, what is now called a dumb terminal could pass for a smart terminal.
[Examples?]
[{Jargon File}]
(1995-04-14)

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)

dump
[operating system] 1. An undigested and voluminous mass of information about a problem or the state of a system, especially one routed to the slowest available output device (compare {core dump}), and most especially one consisting of {hexadecimal} or {octal} {runes} describing the byte-by-byte state of memory, mass storage, or some file. In {elder days}, debugging was generally done by "groveling over" a dump (see {grovel}); increasing use of high-level languages and interactive debuggers has made such tedium uncommon, and the term "dump" now has a faintly archaic flavour.
2. A {backup}. This usage is typical only at large {time-sharing} installations.
{Unix manual page}: dump(1).
[{Jargon File}]
(1994-12-01)

dumpster diving
/dump'-ster di:'-ving/ 1. The practice of sifting refuse from an office or technical installation to extract confidential data, especially security-compromising information ("dumpster" is an Americanism for what is elsewhere called a "skip"). Back in AT&T's monopoly days, before paper shredders became common office equipment, phone phreaks (see {phreaking}) used to organise regular dumpster runs against phone company plants and offices. Discarded and damaged copies of AT&T internal manuals taught them much. The technique is still rumored to be a favourite of crackers operating against careless targets.
2. The practice of raiding the dumpsters behind buildings where producers and/or consumers of high-tech equipment are located, with the expectation (usually justified) of finding discarded but still-valuable equipment to be nursed back to health in some hacker's den. Experienced dumpster-divers not infrequently accumulate basements full of moldering (but still potentially useful) cruft.
[{Jargon File}]

dungeon
Dungeon
{Zork}

dup killer
/d[y]oop kill'r/ Software that is supposed to detect and delete duplicates of a message that may have reached the {FidoNet} system via different routes.
See also {dup loop}.
[{Jargon File}]
(1995-02-02)

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}.
[{Jargon File}]

duplex
[communications] Used to describe a communications channel that can carry signals in both directions, in contrast to a {simplex} channel which only ever carries a signal in one direction.
If signals can only flow in one direction at a time the communications is "{half-duplex}", like a single-lane road with traffic lights at each end. Walkie-talkies with a "press-to-talk" button provide half-duplex communications.
If signals can flow in both directions simultaneously the communications is "{full-duplex}", like a normal two-lane road. Telephones provide full-duplex communications.
The term "duplex" was first used in wireless, telegraph, and telephone communications. Nearly all communications circuits used by computers are two-way, so the term is seldom used.
{(http://www.cit.ac.nz/smac/dc100www/dc_014.htm)}.
(2001-07-21)

duplex high speed data
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)

durra
Durra
Description language for coarse-grained concurrency on heterogeneous processors. "Durra: A Task-level Description Language", M.R. Barbacci et al, CMU/SEI-86-TR-3, CMU 1986.

dusty deck
Old software (especially applications) which one is obliged to remain compatible with, or to maintain. {DP} types call this "legacy code", a term hackers consider smarmy and excessively reverent. The term implies that the software in question is a holdover from card-punch days. Used especially when referring to old scientific and {number crunching} software, much of which was written in Fortran and very poorly documented but is believed to be too expensive to replace. See {fossil}; compare {crawling horror}.
[{Jargon File}]

dv cartridge
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
DVD
{Digital Versatile Disc}

dvdr
DVD-R
{Digital Versatile Disc}

dvdrom
DVD-ROM
{Digital Versatile Disc}

dvi
DVI
[file format] (device independent) The usual output format of {TeX}, giving a description of a formatted document that is not related to any specific hardware or other standard document format. Utilities exist to view and print DVI files on various systems and devices.
(2003-09-11)

dvorak
Dvorak
[hardware] A configuration of (computer) keyboard keys arranged to increase the speed and ease of typing over the normal {qwerty} layout; the most common characters (for English) have been put on the home row.
The standard Dvorak International layout is:
`~ 1! 2@ 3# 4% 5^ 6^ 7& 8* 9( 0) [\{ ]\} \\| '" ,[ .] p y f g c r l /? += a o e u i d h t n s -_ ;: q j k x b m w v z
[Do other Dvorak-like layout standards exist for other languages?]
(2002-03-14)

dwarf storage unit
Dwarf Storage Unit
[humour] (DSU) An {IBM} term for a cupboard.
(1996-06-24)

dwdm
DWDM
{wavelength division multiplexing}

dweeb
An even lower form of life than the {spod}, found in much the same habitat as the former. though more prevailent on {talker 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 {Autodesk} {drawing} files.
{(http://www.faqs.org/faqs/graphics/fileformats-faq/part3/)}.
(2000-08-02)

dwim
DWIM
/dwim/ [acronym, "Do What I Mean" (not what I say)] 1. Able to guess, sometimes even correctly, the result intended when bogus input was provided.
2. The BBNLISP/INTERLISP function that attempted to accomplish this feat by correcting many of the more common errors. See {hairy}.
3. Occasionally, an interjection hurled at a balky computer, especially when one senses one might be tripping over legalisms (see {legalese}).
Warren Teitelman originally wrote DWIM to fix his typos and spelling errors, so it was somewhat idiosyncratic to his style, and would often make hash of anyone else's typos if they were stylistically different. Some victims of DWIM thus claimed that the acronym stood for "Damn Warren's Infernal Machine!'.
In one notorious incident, Warren added a DWIM feature to the command interpreter used at {Xerox PARC}. One day another hacker there typed "delete *$" to free up some disk space. (The editor there named backup files by appending "$" to the original file name, so he was trying to delete any backup files left over from old editing sessions.) It happened that there weren't any editor backup files, so DWIM helpfully reported "*$ not found, assuming you meant 'delete *'". It then started to delete all the files on the disk! The hacker managed to stop it with a {Vulcan nerve pinch} after only a half dozen or so files were lost.
The disgruntled victim later said he had been sorely tempted to go to Warren's office, tie Warren down in his chair in front of his workstation, and then type "delete *$" twice.
DWIM is often suggested in jest as a desired feature for a complex program; it is also occasionally described as the single instruction the ideal computer would have. Back when proofs of program correctness were in vogue, there were also jokes about "DWIMC" (Do What I Mean, Correctly). A related term, more often seen as a verb, is DTRT (Do The Right Thing); see {Right Thing}.
[{Jargon File}]

dx4
DX4
{Intel DX4}

dxf
DXF
{Drawing Exchange Format}

dyadic
[programming] {binary} (describing an {operator}).
Compare {monadic}.
(1998-07-24)

dyadic systems limited
Dyadic Systems Limited
[company] The company that developed and sells {Dyalog APL}.
{Dyadic Home (http://www.dyadic.com/)}.
(2002-01-02)

dyalog apl
Dyalog APL
[language] Arguably the current (2001) market-leading implementation of {APL}, from {Dyadic Systems Limited}. It runs under {Windows 95}, {Windows 98}, {Windows NT}, and {Windows 2000}; and for several popular {UNIX} systems including {Linux}.
Dyalog APL complies with {ISO 8485} and has many features that make it good for complex {GUI} applications.
Dyalog APL was introduced in 1983 and is currently (2002) in active development.
{Dyadic Home (http://www.dyadic.com/)}.
(2002-01-02)

dyana
DYANA
{DYnamics ANAlyzer}

dylan
Dylan
{DYnamic LANguage}

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

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 data exchange
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 Linking
{Dynamic Data Exchange}

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 dbms
dynamic DBMS
{dynamic database management system}

dynamic drive overlay
Dynamic Drive Overlay
[storage, software] (DDO) Software to allow a {system BIOS} that does not support {Logical Block Addressing} to access drives larger than 528 MB.
The alternatives are to update the system BIOS or install an {EIDE controller} card with a suitable on-board BIOS.
{Seagate (http://www.seagate.com/support/disc/drivers/discfile.shtml)}.
(2001-03-18)

dynamic execution
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
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
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
DYnamic LANguage
[language] (Dylan) A simple {object-oriented} {Lisp} dialect, most closely resembling {CLOS} and {Scheme}, developed by Advanced Technology Group East at {Apple Computer}.
{Thomas} is a Dylan {compiler} implemented in {Scheme}.
See also {Marlais}.
["Dylan(TM) an Object-Oriented Dynamic Language", {Apple Computer}, Eastern Research and Technology, April 1992].
(1995-04-19)

dynamic link
[compiler] A pointer from an {activation record} to the {activation record} for the {scope} from which the current scope was called at {run time}. This is used in a {statically scoped} language to restore the {environment pointer} on exit from a scope. To access a {non-local variable} in a {dynamically scoped} language, dynamic links are followed until a binding for the given variable name is found.
(1995-03-07)

dynamic link library
{Dynamically Linked Library}

dynamic objectoriented requirements system
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 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 toward {surface mount} packaging arose and DRAMs with more than one data line appeared (e.g. 64k x 4), reducing the number of chips per bank. This trend has continued and DRAM chips with up to 36 data lines are available today. Furthermore, together with surface mount packages, memory manufacturers began to offer memory modules, where a bank of memory chips was preassembled on a little {printed circuit} board (SIP = Single Inline Pin Module, SIMM = Single Inline Memory Module, DIMM = Dual Inline Memory Module). Today, this is the preferred way to buy memory for {workstations} and {personal computers}.
DRAM bit cells are arranged on a chip in a grid of rows and columns where the number of rows and columns are usually a power of two. Often, but not always, the number of rows and columns is the same. A one megabit device would then have 1024 x 1024 memory cells. A single memory cell can be selected by a 10-bit row address and a 10-bit column address.
To access a memory cell, one entire row of cells is selected and its contents are transferred into an on-chip buffer. This discharges the storage capacitors in the bit cells. The desired bits are then read or written in the buffer. The (possibly altered) information is finally written back into the selected row, thereby refreshing all bits (recharging the capacitors) in the row.
To prevent data loss, all bit cells in the memory need to be refreshed periodically. This can be done by reading all rows in regular intervals. Most DRAMs since 1970 have been specified such that one of the rows needs to be refreshed at least every 15.625 microseconds. For a device with 1024 rows, a complete refresh of all rows would then take up to 16 ms; in other words, each cell is guaranteed to hold the data for 16 ms without refresh. Devices with more rows have accordingly longer retention times.
Many varieties of DRAM exist today. They differ in the way they are interfaced to the system - the structure of the memory cell itself is essentially the same.
"Traditional" DRAMs have multiplexed address lines and separate data inputs and outputs. There are three control signals: RAS\ (row address strobe), CAS\ (column address strobe), and WE\ (write enable) (the backslash indicates an {active low} signal). Memory access procedes as follows: 1. The control signals initially all being inactive (high), a memory cycle is started with the row address applied to the address inputs and a falling edge of RAS\ . This latches the row address and "opens" the row, transferring the data in the row to the buffer. The row address can then be removed from the address inputs since it is latched on-chip. 2. With RAS\ still active, the column address is applied to the address pins and CAS\ is made active as well. This selects the desired bit or bits in the row which subsequently appear at the data output(s). By additionally activating WE\ the data applied to the data inputs can be written into the selected location in the buffer. 3. Deactivating CAS\ disables the data input and output again. 4. Deactivating RAS\ causes the data in the buffer to be written back into the memory array.
Certain timing rules must be obeyed to guarantee reliable operation. 1. RAS\ must remain inactivate for a while before the next memory cycle is started to provide sufficient time for the storage capacitors to charge (Precharge Time). 2. It takes some time from the falling edge of the RAS\ or CAS\ signals until the data appears at the data output. This is specified as the Row Access Time and the Column Access Time. Current DRAM's have Row Access Times of 50-100 ns and Column Access Times of 15-40 ns. Speed grades usually refer to the former, more important figure.
Note that the Memory Cycle Time, which is the minimum time from the beginning of one access to the beginning of the next, is longer than the Row Access Time (because of the Precharge Time).
Multiplexing the address pins saves pins on the chip, but usually requires additional logic in the system to properly generate the address and control signals, not to mention further logic for refresh. Therefore, DRAM chips are usually preferred when (because of the required memory size) the additional cost for the control logic is outweighed by the lower price.
Based on these principles, chip designers have developed many varieties to improve performance or ease system integration of DRAMs:
PSRAMs (Pseudo Static Random Access Memory) are essentially DRAMs with a built-in address {multiplexor} and refresh controller. This saves some system logic and makes the device look like a normal {SRAM}. This has been popular as a lower cost alternative for SRAM in {embedded systems}. It is not a complete SRAM substitute because it is sometimes busy when doing self-refresh, which can be tedious.
{Nibble Mode DRAM} can supply four successive bits on one data line by clocking the CAS\ line.
{Page Mode DRAM} is a standard DRAM where any number of accesses to the currently open row can be made while the RAS signal is kept active.
Static Column DRAM is similar to Page Mode DRAM, but to access different bits in the open row, only the column address needs to be changed while the CAS\ signal stays active. The row buffer essentially behaves like SRAM.
{Extended Data Out DRAM} (EDO DRAM) can continue to output data from one address while setting up a new address, for use in {pipelined} systems.
DRAM used for Video RAM ({VRAM}) has an additional long shift register that can be loaded from the row buffer. The shift register can be regarded as a second interface to the memory that can be operated in parallel to the normal interface. This is especially useful in {frame buffers} for {CRT} displays. These frame buffers generate a serial data stream that is sent to the CRT to modulate the electron beam. By using the shift register in the VRAM to generate this stream, the memory is available to the computer through the normal interface most of the time for updating the display data, thereby speeding up display data manipulations.
SDRAM (Synchronous DRAM) adds a separate clock signal to the control signals. It allows more complex {state machines} on the chip and high speed "burst" accesses that clock a series of successive bits out (similar to the nibble mode).
CDRAM (Cached DRAM) adds a separate static RAM array used for caching. It essentially combines main memory and {cache} memory in a single chip. The cache memory controller needs to be added externally.
RDRAM (Rambus DRAM) changes the system interface of DRAM completely. A byte-wide bus is used for address, data and command transfers. The bus operates at very high speed: 500 million transfers per second. The chip operates synchronously with a 250MHz clock. Data is transferred at both rising and falling edges of the clock. A system with signals at such frequencies must be very carefully designed, and the signals on the Rambus Channel use nonstandard signal levels, making it incompatible with standard system logic. These disadvantages are compensated by a very fast data transfer, especially for burst accesses to a block of successive locations.
A number of different refresh modes can be included in some of the above device varieties:
RAS\ only refresh: a row is refreshed by an ordinary read access without asserting CAS\. The data output remains disabled.
CAS\ before RAS\ refresh: the device has a built-in counter for the refresh row address. By activating CAS\ before activating RAS\, this counter is selected to supply the row address instead of the address inputs.
Self-Refresh: The device is able to generate refresh cycles internally. No external control signal transitions other than those for bringing the device into self-refresh mode are needed to maintain data integrity.
(1996-07-11)

dynamic routing
[networking] (Or "adaptive routing") {Routing} that adjusts automatically to network topology or traffic changes.
(1997-05-08)

dynamic scope
[language] In a dynamically scoped language, e.g. most versions of {Lisp}, an {identifier} can be referred to, not only in the block where it is declared, but also in any function or procedure called from within that block, even if the called procedure is declared outside the block.
This can be implemented as a simple stack of (identifier, value) pairs, accessed by searching down from the top of stack for the most recent instance of a given identifier.
The opposite is {lexical scope}. A common implementation of dynamic scope is {shallow binding}.
(1996-07-11)

dynamic scoping
{dynamic scope}

dynamic systems development method
Dynamic Systems Development Method
[programming] (DSDM) An independent software development framework.
{DSDM.org Home (http://www.dsdm.org/)}.
[What is it?]
(2002-02-14)

dynamic translation
[architecture] A {virtual machine} implementation approach, used to speed up execution of {byte-code} programs. To execute a program unit such as a {method} or a {function}, the virtual machine compiles its bytecodes into (hardware) machine code. The translated code is also placed in a cache, so that next time that unit's machine code can be executed immediately, without repeating the translation.
This technique was pioneered by the commercial {Smalltalk} implementation currently known as {VisualWorks}, in the early 1980s. Currently it is also used by some implementations of the {Java Virtual Machine} under the name {JIT} (Just In Time compilation).
[Peter L. Deutsch and Alan Schiffman. "Efficient Implementation of the Smalltalk-80 System", 11th Annual Symposium on Principles of Programming Languages, Jan 1984, pp. 297-302].
(2002-04-15)

dynamically linked library
Dynamically Linked Library
[library] (DLL) A {library} which is linked to {application programs} when they are loaded or run rather than as the final phase of {compilation}. This means that the same block of library code can be shared between several {tasks} rather than each task containing copies of the routines it uses. The executable is compiled with a library of "{stubs}" which allow {link errors} to be detected at {compile-time}. Then, at {run time}, either the system {loader} or the task's entry code must arrange for library calls to be patched with the addresses of the real shared library routines, possibly via a {jump table}.
The alternative is to make library calls part of the {operating system} {kernel} and enter them via some kind of {trap} instruction. This is generally less efficient than an ordinary {subroutine} call.
It is important to ensure that the version of a dynamically linked library is compatible with what the executable expects.
Examples of operating systems using dynamic linking are {SunOS} (.so - shared object files), {Microsoft Windows} (.dll) and {RISC OS} on the {Acorn} {Archimedes} (relocatable modules).
(1995-12-12)

dynamically scoped
{dynamic scope}

dynamics analyzer
DYnamics ANAlyzer
[language] (DYANA) An early language specialised for vibrational and other dynamic physical systems.
[Sammet 1969, p. 628].
(1997-07-20)

dynamo
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
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
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}.
[{Jargon File}]
(1997-12-03)

dysac
DYSAC
Digital Simulated Analog Computer.
[Sammet 1969, p. 629].

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

e f codd
E. F. Codd
[person] The inventor of the {relational data model} of {databases}.
[Name? More?]
(1995-11-29)

e1
E1
[communications] A European {framing specification} for the transmission of 32 {DS0} (64 kb/s) data streams. By extension, it can also denote the transmission rate required (2.048 Mb/s = 2048 kb/s). Unlike {DS1} it is free of {bit-robbing}.
(2002-03-22)

e2
E2
[communications] A European {framing specification} for the transmission of four multiplexed {E1} data streams, resulting in a transmission rate of 8.448 Mb/s (= 8448 kb/s).
(2002-03-22)

e3
E3
[communications] A European {framing specification} for the transmission of 16 multiplexed {E1} data streams, resulting in a transmission rate of 34.368 Mb/s (= 34,368 kb/s).
(2002-03-22)

e4
E4
[communications] A European {framing specification} for the transmission of 64 multiplexed {E1} data streams, resulting in a transmission rate of 139.264 Mb/s (= 139,264 kb/s).
(2002-03-22)

e5
E5
[communications] A European {framing specification} for the transmission of 256 multiplexed {E1} data streams, resulting in a transmission rate of 565.148 Mbps (= 565,148 kb/s).
(2002-03-22)

eaf
EAF
{Effort Adjustment Factor}

eag
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
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
EAI
{Enterprise Application Integration}

eaprom
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 pli
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
EARN
[networking] {European Academic and Research Network}.
(1995-11-15)

earom
EAROM
Electrically Alterable Read-Only Memory.
{EEPROM}

earthquake
(IBM) The ultimate real-world shock test for computer hardware. Hackish sources at {IBM} deny the rumor that the San Francisco Bay Area quake of 1989 was initiated by the company to test quality-assurance procedures at its California plants.
[{Jargon File}]
(1995-04-22)

ease
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
EASE II
Early system on IBM 650. Listed in CACM 2(5):16 (May 1959).

easiac
EASIAC
Early system on Midac computer. Listed in CACM 2(5):16 (May 1959).

east
EAST
A {Eureka} project developing a {software engineering} {platform}.
(1994-12-07)

easter egg
[jargon] (From the custom of the Easter Egg hunt observed in the US and many parts of Europe)
1. A message hidden in the {object code} of a program as a joke, intended to be found by persons disassembling or browsing the code.
2. A message, graphic, sound effect, or other behaviour emitted by a program (or, on an {IBM PC}, the {BIOS} {ROM}) in response to some undocumented set of commands or keystrokes, intended as a joke or to display program credits.
One well-known early Easter egg found in a couple of {operating systems} caused them to respond to the command "make love" with "not war?". Many {personal computers}, and even satellite control computers, have much more elaborate eggs hidden in {ROM}, including lists of the developers' names (e.g. {Microsoft Windows} 3.1x), political exhortations and snatches of music. The {Tandy} Color Computer 3 ({CoCo}) had images of the entire development team. Microsoft {Excel} 97 includes a flight simulator!
{(http://www.eeggs.com/)}.
[{Jargon File}]
(2003-06-23)

easter egging
Easter egging
[jargon] ({IBM}, From the custom of the Easter Egg hunt observed in the US and many parts of Europe) The act of replacing unrelated components more or less at random in the hope that a malfunction will go away. Hackers consider this the normal operating mode of {field circus} techs and do not love them for it.
Compare {Easter egg}, {shotgun debugging}.
[{Jargon File}]
(1998-03-18)

eastern washington university
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
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!"
[{Jargon File}]

ebasic
EBASIC
A {BASIC} by Gordon Eubanks, now at {Symantec}, that led to {CBASIC}.

ebcdic
EBCDIC
{Extended Binary Coded Decimal Interchange Code}

ebcidic
EBCIDIC
[spelling] It's spelled "{EBCDIC}".
(1996-12-13)

ebnf
EBNF
[language] {Extended Backus-Naur Form}.

ebone
Ebone
A pan-European {backbone} network service.

ec
[networking] The {country code} for Ecuador.
(1999-01-27)

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

ecarrier system
E-carrier system
[communications] A series of {digital} transmission formats promulgated by the {ITU} and used outside of North America and Japan.
The basic unit of the E-carrier system is the {DS0}, which has a transmission rate of 64 Kbps, and is commonly used for one {voice circuit}. The {E1} format consists of 32 DS0 channels, for a total capacity of 2.048 Mbps. {E2}, {E3}, {E4}, and {E5} circuits carry multiple E1 channels multiplexed, resulting in transmission rates of up to 565.148 Mbps.
The E-carrier system is similar to, and compatible with, the {T-carrier system} used in North America, but has higher capacity since it uses {out-of-band signaling} in contrast to the {in-band signaling} or {bit-robbing} used in the T-system.
(2000-03-10)

ecash
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
ECC
{error detection and correction}

ecclesjordan circuit
Eccles-Jordan circuit
{flip-flop}

echidna
Echidna
{Constraint logic programming} embedded in an {object-oriented} language. The {syntax} is an extension of {Edinburgh Prolog}.
["Hierarchical Arc Consistency Applied to Numeric Processing in Constraint Logic Programming", G. Sidebottom et al, TR-91-06, CSS-IS, Simon Fraser U, and Comp Intell 8(4) (1992)].
{(ftp://cs.sfu.edu/pub/ecl/papers)}.
E-mail: [expert@cs.sfu.edu].
(1994-12-08)

echo
1. A {topic group} on {FidoNet}'s {echomail} system.
Compare {newsgroup}.
2. A {Unix} command that just prints its arguments.
[{Jargon File}]

echo cancellation
A process which removes unwanted echoes from the signal on a telephone line. Echoes are usually caused by impedance mismatches along an analogue line.

echt
ECHT
European Conference on {Hypertext}.

ecip2
ECIP2
An {Esprit} project on the definition of a specification language at the requirement level.

ecis
ECIS
{European Committee for Interoperable Systems}

eckertmauchly computer corporation
Eckert-Mauchly Computer Corporation
[company] The company which designed and built {Univac} computers.
(1995-03-01)

ecl
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
ECLIPSE
A {Prolog} + {CLP} compiler from {ECRC}.

ecm
ECM
[storage] {error correcting memory}.
(1995-10-10)

ecma
ECMA
1. {European Computer Manufacturers Association}, now {ECMA International}.
2. A subset of {ALGOL}. [Sammet 1969, p.180].
(1998-09-07)

ecma international
ECMA International
[body] (Formerly European Computer Manufacturers Association) An industry association founded in 1961 and dedicated to the standardisation of information and communication systems.
ECMA edits {standards} and technical reports. All ECMA publications are available free of charge.
The best known ECMA standard is ECMA 262, defining the {scripting language} {ECMAScript}.
(2003-06-23)

ecmascript
ECMAScript
[body] ({ECMA} standard 262, {ISO} standard 16262) The standardized version of the core {JavaScript} language.

ecole normale superieure
Ecole Normale Superieure
[body] (ENS) A higher education and research institution in Paris, France.

ecommerce
e-commerce
{electronic commerce}

econet
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
ECOOP
European Conference on Object-oriented Programming.

ecp
ECP
1. {Engineering Change Proposal}.
2. {Enhanced Capabilities Port}.
3. {Extended Capabilities Port}.
4. {Extended Concurrent Prolog}.
(1997-12-01)

ecrc
ECRC
{European Computer-Industry Research Centre GmbH}

ecrcprolog
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
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
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
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
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
EDA
1. {Electronic Design Automation}.
2. {Exploratory Data Analysis}.
3. A product line from {Dazix}.
(1995-10-02)

eddress
e-ddress
{electronic mail address}

eden
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
EDF
[algorithm] {earliest deadline first}.
(1995-11-12)

edi
EDI
{Electronic Data Interchange}

edif
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
EDIFACT
{ISO 9735}:1988

edinburgh multi access system
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
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
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
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
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
EDM
{Electronic Data Management}

edml
EdML
{Edinburgh SML}

edms
EDMS
{Electronic Document Management System}

edo dram
EDO DRAM
{Extended Data Out Dynamic Random Access Memory}

edo memory
EDO memory
{Extended Data Out Dynamic Random Access Memory}

edo ram
EDO RAM
{Extended Data Out Dynamic Random Access Memory}

edp
EDP
{Electronic Data Processing}

edram
EDRAM
[storage] {Enhanced Dynamic Random Access Memory}.
(1995-11-19)

edress
e-dress
{electronic mail address}

eds
EDS
{Enhanced Directory Service}

eds
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
Edward Lorenz
[person] A mathematical meteorologist who discovered the {Lorenz attractor} in the 1960s.
(1996-01-13)

edward yourdon
Edward Yourdon
[person] A {software engineering} consultant, widely known as the developer of the "{Yourdon method}" of structured systems analysis and design, as well as the co-developer of the Coad/Yourdon method of {object-oriented analysis} and design. He is also the editor of three software journals - American Programmer, Guerrilla Programmer, and Application Development Strategies - that analyse software technology trends and products in the United States and several other countries around the world.
Ed Yourdon received a B.S. in Applied Mathematics from {MIT}, and has done graduate work at MIT and at the Polytechnic Institute of New York. He has been appointed an Honorary Professor of {Information Technology} at Universidad CAECE in Buenos Aires, Argentina and has received numerous honors and awards from other universities and professional societies around the world.
He has worked in the computer industry for 30 years, including positions with {DEC} and {General Electric}. Earlier in his career, he worked on over 25 different {mainframe} computers, and was involved in a number of pioneering computer projects involving {time-sharing} and {virtual memory}.
In 1974, he founded the consulting firm, {Yourdon, Inc.}. He is currently immersed in research in new developments in software engineering, such as object-oriented software development and {system dynamics} modelling.
Ed Yourdon is the author of over 200 technical articles; he has also written 19 computer books, including a novel on {computer crime} and a book for the general public entitled Nations At Risk. His most recent books are Object-Oriented Systems Development (1994), Decline and Fall of the American Programmer (1992), Object-Oriented Design (1991), and Object-Oriented Analysis (1990). Several of his books have been translated into Japanese, Russian, Chinese, Spanish, Portugese, Dutch, French, German, and other languages, and his articles have appeared in virtually all of the major computer journals.
He is a regular keynote speaker at major computer conferences around the world, and serves as the conference Chairman for Digital Consulting's SOFTWARE WORLD conference. He was an advisor to Technology Transfer's research project on software industry opportunities in the former Soviet Union, and a member of the expert advisory panel on CASE acquisition for the U.S. Department of Defense.
Mr. Yourdon was born on a small planet at the edge of one of the distant red-shifted galaxies. He now lives in the Center of the Universe (New York City) with his wife, three children, and nine Macintosh computers, all of which are linked together through an Appletalk network.
(1995-04-16)

edwin
Edwin
{MIT Scheme}

ee
[networking] The {country code} for Estonia.
(1999-01-27)

eema
EEMA
{European Electronic Messaging Association}

eeprom
EEPROM
{Electrically Erasable Programmable Read-Only Memory}
See also {EAPROM}.

eer
EER
An extended {entity-relationship model}.

eff
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
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
EFL
{Extended Fortran Language}

efnet
EFNet
[networking] (From "Eris-free Net", eris being eris.berkeley.edu).
The dominant {Internet Relay Chat} network.
See also {Undernet}.
(1995-11-09)

eforth
Eforth
[language] A system produced by Ting to help implementers produce Forths for different targets, using {assemblers}.
(1996-07-28)

eforth
E-Forth
[language] A {Forth} {interpreter} written in {Motorla 6809} assembly code by Lennart Benschop [lennart@blade.stack.urc.tue.nl]. Posted to {Usenet} newsgroup {alt.sources} on 1993-11-03 with a {Motorola 6809} {assembler}.
(1993-11-03)

eft
EFT
{electronic funds transfer}

eftpos
EFTPOS
{Electronic Funds Transfer Point of Sale}

efts
EFTS
{electronic funds transfer}

eg
[networking] The {country code} for Egypt.
(1999-01-27)

ega
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
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
Eh
/A/. Software Portability Group, U Waterloo. A typeless language derived from (and similar to) B. Provides guaranteed order of evaluation for side effects in expressions. Also character indexing operators.
See also {Zed}.
["Eh Reference Manual", R.S.C. Braga, RR CS-76-45, U Waterloo, Nov 1976].

eh
[networking] The {country code} for Western Sahara.
(1999-01-27)

ehelp corporation
eHelp Corporation
[company] A vendor of {Microsoft} {Windows} application development tools such as {RoboHELP} and {RoboDemo}.
EHelp were formerly (around 1997) Blue Sky Software.
{eHelp Home (http://www.ehelp.com/)}.
Address: 7777 Fay Avenue, Suite 201, La Jolla, CA 92037, USA. Telephone: +1-800-793-0364, +1 (619) 459 6365. Fax: +1 (619) 459 6366.
(2003-07-24)

ehts
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
EIA
{Electronics Industry Association}

eia232
EIA-232
[communications, standard] (Formerly "RS-232") The most common {asynchronous} {serial line} {standard}. EIA-232 is the {EIA} equivalent of {ITU-T} {V.24}, and {V.28}.
EIA-232 specifies the {gender} and pin use of connectors, but not their physical type. {RS-423} specifies the electrical signals. 25-way {D-type} connectors are common but often only three wires are connected - one ground (pin 7) and one for data in each direction. The other pins are primarily related to {hardware handshaking} between sender and receiver and to {carrier detection} on {modems}, inoperative circuits, busy conditions etc.
The standard classifies equipment as either {Data Communications Equipment} (DCE) or {Data Terminal Equipment} (DTE). DTE receives data on pin 3 and transmits on pin 2 (TD). A DCE EIA-232 interface has a female connector. DCE receives data from DTE on pin 2 (TD) and sends that data out the analog line. Data received from the analog line is sent by the DCE on pin 3(RD).
Originally DCE was a modem and DTE was a computer or terminal. The terminal or computer was connected (via EIA-232) to two modems, which were connected via a telephone line.
The above arrangement allows a computer or terminal to be connected to a modem with a straight-through (2-2, 3-3) cable. It is common, however, to find equipment with the wrong sex connector or with pins two and three reversed, requiring the insertion of a cable or adaptor wired as a {gender mender} or {null modem}. Such an adaptor is also required when connecting a computer directly to a terminal or to another computer without the use of modems.
(1999-12-28)

eia422
EIA-422
[communications, standard] (Formerly "RS-422") An {EIA} {serial line} {standard} which specifies 4-wire, {full-duplex}, {differential line}, {multi-drop} communications. The mechanical connections for this interface are specified by {EIA-449}. The maximum cable length is 1200m. Maximum data rates are 10Mbps at 1.2m or 100Kbps at 1200m. EIA-422 cannot implement a truly multi-point communications network (such as with {EIA-485}), although only one driver can be connected to up to ten receivers. The best use of EIA-422 is probably in {EIA-232} extension cords.
{Comparing EIA-422, 423, 449 to RS-232-C (http://www.rad.com/networks/1995/rs232/rs449.htm)}. {Details on RS-232, 422, 423 and 485 (http://www.rs485.com/rs485spec.html)}.
(2002-10-05)

eia423
EIA-423
[communications, standard] (Formerly "RS-423") An {EIA} {serial line} {standard} which specifies {single ended} communication. The mechanical connections for this interface are specified by {EIA-449}. Although it was originally intented as a successor of {EIA-232} it is not widely used. The {EIA-232} standard has its limits at 20kbps and 1.5m. EIA-423 can have a cable lenght of 1200m, and achieve a data rate of 100Kbps. When no data is being transmitted, the serial line is at a logical zero (+3 to +15 Volts). A logical one is represented as a signal level of -15 to -3 Volts. In practise, one often finds signals which switch between nominally +4.5 and +0.5 Volts. Such signals are large by modern standards, and because the impedance of the circuits is relatively high, the allowable bit rate is modest. The data is preceded by a start bit which is always a logical one. There may be seven or eight bits of data, possibly followed by an even or odd parity bit and one or two stop bits. A "break" condition is a continuous logical one on the line which is what would be observed if nothing was connected.
{Comparing EIA-422, 423, 449 to RS-232-C (http://www.rad.com/networks/1995/rs232/rs449.htm)}. {Details on RS-232, 422, 423 and 485 (http://www.rs485.com/rs485spec.html)}.
(2002-10-05)

eia449
EIA-449
[communications, standard] (Formerly "RS-449") An EIA {standard} for a 37-pin or 9-pin {D-type} connector (functional- and mechanical characteristics), usually used with {EIA-422} or {EIA-423} electrical specifications.
(2002-10-05)

eia485
EIA-485
[communications, standard] (Formerly "RS-485") An {EIA} {serial line} {standard} which specifies 2-wire, {half-duplex}, {differential line}, {multi-point} communications. Maximum cable length is 1200m. Maximum data rates are 10Mbps at 1.2m or 100Kbps at 1200m. EIA-485 can implement a truly multi-point communications network, and specifies up to 32 drivers and 32 receivers on a single (2-wire) bus.
{Differential SCSI} uses EIA-485.
{Details on RS-232, 422, 423, and 485 (http://www.rs485.com/rs485spec.html)}.
(2003-04-18)

eia530
EIA-530
[communications, standard] (Formerly "RS-530") An {EIA} {serial line} {standard} which specifies {differential line} and {singe ended} communications. Combining {EIA-422} and {EIA-423}, and defining a 25-pin connector for mechanical connections, this standard serves as a complement to {EIA-232} for high(er) speed data transmissions.
(2002-10-05)

eide
EIDE
{Advanced Technology Attachment Interface with Extensions}

eiffel
Eiffel
[language] An {object-oriented} language produced by {Bertrand Meyer} in 1985. Eiffel has {classes} with {multiple inheritance} and {repeated inheritance}, {deferred class}es (like {Smalltalk}'s {abstract class}), and {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: 4.2, as of 1998-10-28.
Latest version: ISE Eiffel version 3.3.
See also {Sather}, {Distributed Eiffel}, {Lace}, {shelf}.
E-mail: [queries@eiffel.com].
["Eiffel: The Language", Bertrand Meyer, P-H 1992].
(1998-11-15)

eiffel source checker
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 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)

eightbit clean
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)

eightycolumn mind
eighty-column mind
[abuse] The sort said to be possessed by persons for whom the transition from {punched card} to {paper tape} was traumatic (nobody has dared tell them about disks yet). It is said that these people, including (according to an old joke) the founder of {IBM}, will be buried "face down, 9-edge first" (the 9-edge being the bottom of the card). This directive is inscribed on IBM's 1402 and 1622 card readers and is referenced in a famous bit of doggerel called "The Last Bug", the climactic lines of which are as follows:
He died at the console Of hunger and thirst. Next day he was buried, Face down, 9-edge first.
The eighty-column mind is thought by most {hackers} to dominate IBM's customer base and its thinking.
See {fear and loathing}, {card walloper}.
[{Jargon File}]
(1996-08-16)

eisa
EISA
{Extended Industry-Standard Architecture}

ejb
EJB
{Enterprise JavaBeans}

el camino bignum
El Camino Bignum
[humour] /el' k*-mee'noh big'nuhm/ The road mundanely called El Camino Real, a road through the San Francisco peninsula that originally extended all the way down to Mexico City and many portions of which are still intact. Navigation on the San Francisco peninsula is usually done relative to El Camino Real, which defines {logical} north and south even though it isn't really north-south many places. El Camino Real runs right past {Stanford University}.
The Spanish word "real" (which has two syllables: /ray-al'/) means "royal"; El Camino Real is "the royal road". In the {Fortran} language, a "{real}" quantity is a number typically precise to seven significant digits, and a "{double precision}" quantity is a larger {floating-point} number, precise to perhaps fourteen significant digits (other languages have similar "real" types).
When a {hacker} from {MIT} visited Stanford in 1976, he remarked what a long road El Camino Real was. Making a pun on "real", he started calling it "El Camino Double Precision" - but when the hacker was told that the road was hundreds of miles long, he renamed it "El Camino Bignum", and that name has stuck. (See {bignum}).
[{Jargon File}]
(1996-07-16)

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

elalpha
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
Elan
["Top-down Programming with Elan", C.H.A. Koster, Ellis Horwood 1987].

elder days
The heroic age of hackerdom (roughly, pre-1980); the era of the {PDP-10}, {TECO}, {ITS} and the {ARPANET}. This term has been rather consciously adopted from J. R. R. Tolkien's fantasy epic "The Lord of the Rings".
Compare {Iron Age}. See also {elvish} and {Great Worm}.
[{Jargon File}]

electing a pope
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 readonly memory
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 readonly memory
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
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)

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)

electronic commerce
[application, communications] (EC) The conducting of business communication and transactions over networks and through computers. As most restrictively defined, electronic commerce is the buying and selling of goods and services, and the transfer of funds, through digital communications. However EC also includes all inter-company and intra-company functions (such as marketing, finance, manufacturing, selling, and negotiation) that enable commerce and use {electronic mail}, {EDI}, file transfer, fax, {video conferencing}, {workflow}, or interaction with a remote computer.
Electronic commerce also includes buying and selling over the {World-Wide Web} and the {Internet}, {electronic funds transfer}, {smart cards}, {digital cash} (e.g. Mondex), and all other ways of doing business over digital networks.
[{Electronic Commerce Dictionary}].
(1995-10-08)

electronic commerce dictionary
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
Electronic Data Processing
[application] (EDP) {data processing} by electronic machines, i.e. computers.
(1995-03-30)

electronic design automation
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
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 funds transfer
[application, communications] (EFT, EFTS, - system) Transfer of money initiated through electronic terminal, automated teller machine, computer, telephone, or {magnetic tape}. In the late 1990s, this increasingly includes transfer initiated via the {World-Wide Web}. The term also applies to credit card and automated bill payments.
{Glossary (http://www.fms.treas.gov/eft/glossary.html)}.
(1999-12-08)

electronic funds transfer point of sale
Electronic Funds Transfer Point of Sale
[business, real-time] A method of electronic payment which allows money to be transferred from the account of the shopper to the merchant in close-to real-time. Generally the shopper will give the merchant a credit or debit card, which will be swiped to obtain the account information. The shopper will then be required to either sign a receipt or enter a {PIN} via a keypad to authorise the transaction.
(2003-06-22)

electronic funds transfer system
{electronic funds transfer}

electronic magazine
[messaging, publication, World-Wide Web] (e-zine) A regular publication on some particular topic distributed in digital form, chiefly now via the {World-Wide Web} but also by {electronic mail} or {floppy disk}. E-zines are often distributed for free by enthusiasts.
(1996-08-04)

electronic mail
[messaging] (e-mail) Messages automatically passed from one computer user to another, often through computer {networks} and/or via {modems} over telephone lines.
A message, especially one following the common {RFC 822} {standard}, begins with several lines of {headers}, followed by a blank line, and the body of the message. 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, usuallya using a special program - a "{Mail User Agent}" (MUA). It is then passed to some kind of "{Message Transfer Agent}" (MTA) - a program which is responsible for either delivering the message locally or passing it to another MTA, often on another {host}. MTAs on different hosts on a network often communicate using {SMTP}. The message is eventually delivered to the recipient's {mailbox} - normally a file on his computer - from where he can read it using a mail reading program (which may or may not be the same {MUA} as used by the sender).
Contrast {snail-mail}, {paper-net}, {voice-net}.
The form "email" is also common, but is less suggestive of the correct pronunciation and derivation than "e-mail". The word is used as a noun for the concept ("Isn't e-mail great?", "Are you on e-mail?"), a collection of (unread) messages ("I spent all night reading my e-mail"), and as a verb meaining "to send (something in) an e-mail message" ("I'll e-mail you (my report)"). The use of "an e-mail" as a count noun for an e-mail message, and plural "e-mails", is now (2000) also well established despite the fact that "mail" is definitely a mass noun.
Oddly enough, the word "emailed" is actually listed in the Oxford English Dictionary. It means "embossed (with a raised pattern) or arranged in a net work". A use from 1480 is given. The word is derived from French "emmailleure", network. Also "email" is German for enamel.
{The story of the first e-mail message (http://www.pretext.com/mar98/features/story2.htm)}.
(2002-07-14)

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 meeting
[messaging, conferencing, meeting] /e'lek-tro'nik mee'ting/ The use of a {network} of {personal computers} to improve communication that takes place in a meeting. The computers are used for typically 30-50% of the meeting. They do not eliminate conversation, discussion, or humour from the meeting.
Electronic meetings are effective with as few as two participants and with over 100 participants. Participants can be face-to-face in a meeting room or distributed around the world. They may all be participating at the same time or different times.
{Getting Results from Electronic Meetings (http://www.emsl.co.uk/)}.
(2000-11-16)

electronic numerical integrator and computer
Electronic Numerical Integrator and Computer
[computer] (ENIAC) The second general-purpose electronic {digital computer} and an ancestor of most computers in use today. ENIAC was developed by Dr. {John Mauchly} and {J. Presper Eckert} during World War II at the Moore School of the {University of Pennsylvania}.
In 1940 Dr. {John Vincent Atanasoff} attended a lecture by Mauchly and subsequently agreed to show him his computer, the {Atanasoff-Berry Computer} (ABC), which was built between 1937-1942. Mauchly used ideas from the ABC in the design of ENIAC, which was started in June 1943 and released publicly in 1946.
ENIAC was underwritten and its development overseen by Lieutenant Herman Goldstine of the U.S. Army Ballistic Research Laboratory (BRL). While the prime motivation for constructing the machine was to automate the wartime production of firing and bombing tables, the very first program run on ENIAC was a highly classified computation for Los Alamos. Later applications included weather prediction, cosmic ray studies, wind tunnel design, petroleum exploration, and optics.
ENIAC had 20 {registers} made entirely from {vacuum tubes}. It had no other no memory as we currently understand it. The machine performed an addition in 200 {microseconds}, a multiplication in about three {milliseconds}, and a division in about 30 milliseconds.
{John von Neumann}, a world-renowned mathematician serving on the BRL Scientific Advisory Committee, soon joined the developers of ENIAC and made some critical contributions. While Mauchly, Eckert and the Penn team continued on the technological problems, he, Goldstine, and others took up the logical problems. In 1947, while working on the design for the successor machine, EDVAC, von Neumann realized that ENIAC's lack of a 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)}].
(2002-06-03)

electronic performance support system
Electronic Performance Support System
[tool] (EPSS) A system that provides electronic task guidance and support to the user at the moment of need. EPSS can provide {application} help, reference information, guided instructions and/or tutorials, subject matter expert advice and hints on how to perform a task more efficiently. An EPSS can combine various technologies to present the desired information. The information can be in the form of text, {graphical displays}, sound, and {video} presentations.
["Electronic Performance Support Systems: How and Why to Remake the Workplace Through the Strategic Application of Technology", Gloria Gerry, Weingarten Press].
(1997-10-24)

electronic whiteboarding
{Audiographic Teleconferencing}

electronics industry association
Electronics Industry Association
[body, standard] (EIA) A body which publishes "Recommended Standards" (RS) for physical devices and their means of interfacing. {EIA-232} is their standard that defines a computer's {serial port}, connector pin-outs, and electrical signaling.
(1995-03-02)

electrostatic discharge
Electrostatic Discharge
[hardware, testing] (ESD) One kind of test that hardware usually has to pass to prove it is suitable for sale and use. The hardware must still work after is has been subjected to some level of electrostatic discharge. Some organisations have their own ESD requirements which hardware must meet before it will be considered for purchase.
Different countries have different legal regulations about levels of ESD.
See also {Radio Frequency Interference}, {Electromagnetic Compatibility}.
(1997-12-19)

elegant
(From Mathematics) Combining simplicity, power, and a certain ineffable grace of design. Higher praise than "clever", "winning" or even {cuspy}.
The French aviator, adventurer, and author Antoine de Saint-Exup'ery, probably best known for his classic children's book "The Little Prince", was also an aircraft designer. He gave us perhaps the best definition of engineering elegance when he said "A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away."
[{Jargon File}]
(1994-11-29)

element
1. [data, programming] One of the items of data in an {array}.
2. [language, text] One kind of node in an {SGML}, {HTML}, or {XML} {document} {tree}. An SGML element is typically represented by a start {tag} ("[p]") and an end tag ("[/p]"). In some SGML implementations, some tags are omissible, as with "[/p]" in {HTML}.
The start tag can contain {attributes} ("[p lang="en-UK" class='stuff']"), which are an unordered set of key-value bindings for that element. Both the start tag and end tag for an element typically contain the "tag name" (also called the "{GI}" or generic identifier) for that element.
In {XML}, an element is always represented either by an explicit start tag and end tag, or by an empty element tag ("[img src='thing.{png}' alt='a dodad' /]").
Other kinds of SGML node are: a section of character data ("foo"), a comment ("[!-- bar --]"), a markup declaration ("[!ENTITY reg CDATA '®']"), or a processing instruction ("[?xml-stylesheet href="shop-english.xsl" type="text/xsl" ?]").
(2001-01-30)

elephant
Large, grey, four-legged mammal.

elephantine
Used of programs or systems that are both conspicuous {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}.
[{Jargon File}]

elevator controller
An archetypal dumb embedded-systems application, like {toaster} (which superseded it). During one period (1983--84) in the deliberations of ANSI X3J11 (the C standardisation committee) this was the canonical example of a really stupid, memory-limited computation environment. "You can't require "printf(3)" to be part of the default run-time library - what if you're targeting an elevator controller?" Elevator controllers became important rhetorical weapons on both sides of several {holy wars}.

elf
ELF
Binary format used by System V Release 4 Unix.

eli
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
Eli Compiler Construction System
[tool] A compiler generation package which integrates off-the-shelf tools and libraries with specialised language processors to generate complete compilers quickly and reliably. It simplifies the development of new special-purpose languages, implementation of existing languages on new hardware and extension of the constructs and features of existing languages.
It runs on {Sun-4} {SunOS} 4, 5, {Ultrix}/{MIPS}, {RS/6000}, {HP-UX}, {SGI}, {Linux}.
Latest version 4.3.1, as of 2000-08-07
{Colorado U (ftp://ftp.cs.colorado.edu/pub/cs/distribs/eli/)}. {Europe (ftp://ftp.upb.de/unix/eli)}.
Mailing list: [eli-request@cs.colorado.edu].
E-mail: [compiler@uni-paderborn.de], Developers [elibugs@cs.colorado.edu], Users [eli@cs.colorado.edu].
(2000-08-12)

elisp
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
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
ELIZA effect
[jargon] /e-li:'z* *-fekt'/ (From {ELIZA}) The tendency of humans to attach associations to terms from prior experience. For example, there is nothing magic about the symbol "+" that makes it well-suited to indicate addition; it's just that people associate it with addition. Using "+" or "plus" to mean addition in a computer language is taking advantage of the ELIZA effect.
The ELIZA effect is a {Good Thing} when writing a programming language, but it can blind you to serious shortcomings when analysing an {Artificial Intelligence} system.
Compare {ad-hockery}; see also {AI-complete}.
[{Jargon File}]
(1997-09-13)

elk
Elk
{Extension Language Kit}

ella
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
Ellemtel
A {C++} style-guide originated by {Ellemtel Telecom Systems}, Stockholm.

ellie
Ellie
[language] An {object-oriented} language with fine-grained {parallelism} for {distributed computing}. Ellie is based on {BETA}, {Smalltalk}, and others. Parallelism is supported by {unbounded RPC} and "{future}" {objects}. Synchronisation is by {dynamic interfaces}. {Classes}, {methods}, {blocks}, and {objects} are all modelled by {first-class} "Ellie objects". It supports {genericity}, {polymorphism}, and {delegation}/{inheritance}.
{Home (http://www.diku.dk/ellie/papers/)}?
["Ellie Language Definition Report", Birger Andersen [birger.andersen@acm.org], SIGPLAN Notices 25(11):45-65, Nov 1990].
(2000-04-02)

ellis
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
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
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
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
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
Elvis
[tool] A {vi} lookalike which supports nearly all of the vi/ex commands, in both visual mode and colon mode.
Like vi/ex, elvis stores most of the text in a temporary file instead of RAM. This allows it to edit files that are too large to fit in a single process' data space.
Elvis runs under {BSD} UNIX, AT&T {SysV} UNIX, {MINIX}, {MS-DOS}, {Atari TOS}, {Coherent}, {OS9}/68000, {VMS}, {Windows 95} and {Windows NT}.
Elvis is just as awful to use as vi, so someone will like it.
Version 1.8pl14 (1995-09-04).
{FTP Delft (ftp://dutepp0.et.tudelft.nl/pub/Unix/Editors/)}, {FTP PDX (ftp://ftp.cs.pdx.edu/pub/elvis/)}.
E-mail: Steve Kirkendall [kirkenda@cs.pdx.edu].
(1995-11-16)

elvish
[character] 1. The Tengwar of Feanor, a table of letterforms resembling the beautiful Celtic half-uncial hand of the "Book of Kells". Invented and described by J.R.R. Tolkien in "The Lord of The Rings" as an orthography for his fictional "elvish" languages, this system (which is both visually and phonetically {elegant}) has long fascinated hackers (who tend to be intrigued by artificial languages in general). It is traditional for graphics printers, plotters, window systems, and the like to support a Feanorian typeface as one of their demo items. By extension, the term might be used for any odd or unreadable typeface produced by a graphics device.
2. The typeface mundanely called "B"ocklin", an art-decoish {display font}. [Why?]
[{Jargon File}]
(1998-04-28)

em
EM
{End of Medium}

em1
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
EMA
Extended Mercury Autocode.
See {Autocode}.
(1995-01-24)

emacs
Emacs
[text, tool] /ee'maks/ (Editing MACroS, or Extensible MACro System, GNU Emacs) A popular {screen editor} for {Unix} and most other {operating systems}.
Emacs is distributed by the {Free Software Foundation} and was {Richard Stallman}'s first step in the {GNU} project. Emacs is extensible - it is easy to add new functions; customisable - you can rebind keys, and modify the behaviour of existing functions; self-documenting - there is extensive on-line, context-sensitive help; and has a real-time "what you see is what you get" display. Emacs is writen in {C} and the higher levels are programmed in {Emacs Lisp}.
Emacs has an entire {Lisp} system inside it. It was originally written in {TECO} under {ITS} at the {MIT} {AI lab}. AI Memo 554 described it as "an advanced, self-documenting, customisable, extensible real-time display editor".
It includes facilities to view directories, run compilation subprocesses and send and receive {electronic mail} and {Usenet} {news} ({GNUS}). {W3} is a {web browser}, the ange-ftp package provides transparent access to files on remote {FTP} {servers}. {Calc} is a calculator and {symbolic mathematics} package. There are "modes" provided to assist in editing most well-known programming languages. Most of these extra functions are configured to load automatically on first use, reducing start-up time and memory consumption. Many hackers (including {Denis Howe}) spend more than 80% of their {tube time} inside Emacs.
GNU Emacs is available for {Unix}, {VMS}, {GNU}/{Linux}, {FreeBSD}, {NetBSD}, {OpenBSD}, {MS Windows}, {MS-DOS}, and other systems. Emacs has been re-implemented more than 30 times. Other variants include {GOSMACS}, CCA Emacs, UniPress Emacs, Montgomery Emacs, and {XEmacs}. {Jove}, {epsilon}, and {MicroEmacs} are limited look-alikes.
Some Emacs versions running under {window managers} iconify as an overflowing kitchen sink, perhaps to suggest the one feature the editor does not (yet) include. Indeed, some hackers find Emacs too {heavyweight} and {baroque} for their taste, and expand the name as "Escape Meta Alt Control Shift" to spoof its heavy reliance on keystrokes decorated with {bucky bits}. Other spoof expansions include "Eight Megabytes And Constantly Swapping", "Eventually "malloc()'s All Computer Storage", and "Emacs Makes A Computer Slow" (see {recursive acronym}). See also {vi}.
Latest version: 20.6, as of 2000-05-11. 21.1 ({RSN}) adds a new redisplay engine with support for {proportional text}, images, {tool bars}, {tool tips}, toolkit scroll bars, and a mouse-sensitive mode line.
{FTP} from your nearest {GNU archive site}.
E-mail: (bug reports only) [bug-gnu-emacs@gnu.org].
{Usenet} newsgroups: {news:gnu.emacs.help}, {news:gnu.emacs.bug}, {news:alt.religion.emacs}, {news:gnu.emacs.sources}, {news:gnu.emacs.announce}.
[{Jargon File}]
(1997-02-04)

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

email
e-mail
{electronic mail}

email address
e-mail address
{electronic mail address}

emas
EMAS
{Edinburgh Multi Access System}

embedded lisp interpreter
Embedded Lisp Interpreter
[language] (ELI) A small {Common Lisp}-like {interpreter} embedded in the {Andrew mail system}, written by Bob Glickstein at {CMU}.
(2000-04-05)

embedded mode
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
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
EMC
{Electromagnetic Compatibility}

emd enterprises inc
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
EMDIR
The CERN {Electronic Mail DIRectory} utility.
[Details?]
(1995-02-23)

emerald
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
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
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
EMM
[storage] {Expanded Memory Manager}.
(1996-01-12)

emm386
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.
[{Jargon File}]
(1994-12-02)

empeg
[hardware] An in-car audio product that plays {MP3} files from a {hard disk}. It is based around a {DEC}/{Intel} {StrongARM} {S-1100} processor and runs a version of {Linux}. The {user interface} is written in {Python}.
{Home (http://www.empeg.com/)}.
See also {MPEG}.
(1999-09-14)

empire
[games] Any of a family of military simulations derived from a game written by Peter Langston many years ago. Five or six multi-player variants of varying degrees of sophistication exist, and one single-player version implemented for both {Unix} and {VMS}; the latter is even available as {MS-DOS} {freeware}. All are notoriously addictive.
[{Jargon File}]
(1995-08-06)

empty element tag
{tag}

ems
EMS
{Expanded Memory Specification}

emtex
emTeX
[language, text, tool] (Eberhard Mattes TeX) Eberhard Mattes [mattes@azu.informatik.uni-stuttgart.de]'s version of the {LaTeX} document preparation system designed for {DOS} and {OS/2}.
(2001-05-24)

emu8000
EMU8000
[multimedia, hardware, music] The "{Advanced WavEffect}" music synthesizer {integrated circuit} used on the {SB AWE32} card.
The EMU8000 is a sub-system offering high quality music synthesis and an "effect {engine}" which provides musical effects like reverb and chorus to {MIDI} playback. The EMU8000 supports up to 32 voices, and the effect amount for each voice can be controlled via MIDI.
(1996-12-15)

emulation
[architecture] When one system performs in exactly the same way as another, though perhaps not at the same speed. A typical example would be emulation of one computer by (a program running on) another. You might use an emulation as a replacement for a system whereas you would use a simulation if you just wanted to analyse it and make predictions about it.
(2003-05-22)

emulator
{Hardware} or {software} that performs {emulation}.
(1995-05-12)

emulator program
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
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
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} (encrypted message) in order to prevent any but the intended recipient from reading that data.
Schematically, there are two classes of encryption primitives: {public-key cryptography} and {private-key cryptography}; they are generally used complementarily. Public-key encryption algorithms include {RSA}; private-key algorithms include the obsolescent {Data Encryption Standard}, the {Advanced Encryption Standard}, as well as {RC4}.
The {Unix} command {crypt} performs a weak form of encryption. Stronger encryption programs include {Pretty Good Privacy} and the {GNU Privacy Guard}.
Other closely related aspects of {cryptograph} include {message digests}.
(2003-04-12)

end of line
End Of Line
[character] (EOL) Synonym for {newline}, derived perhaps from the original {CDC6600} {Pascal}. The abbreviation "EOL" is now rare, but widely recognised and occasionally used for brevity. Used in the example entry under {BNF}.
Out of context this would probably be (deliberately) ambiguous because different systems used different (combinations of) characters to mark the end of a line. {Unix} uses a {line feed}; DOS uses {carriage return}, line feed ({CRLF}) and the {Macintosh} uses carriage return.
See also {EOF}.
(2002-03-22)

end of medium
End of Medium
[character] (EM) {ASCII} character 25.
(1996-06-28)

end of text
End Of Text
{control-C}

end of transmission
End Of Transmission
[character] (EOT) The {mnemonic} for {ASCII} character 4.

end tag
{tag}

end transmission block
End Transmission Block
[character] (ETB) The {mnemonic} for {ASCII} character 23.
(1996-06-28)

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

enduser
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
Engelbart, Douglas
{Douglas Engelbart}

engine
[jargon] 1. A piece of {hardware} that encapsulates some function but can't be used without some kind of {front end}. Today we have, especially, "{print engine}": the guts of a {laser printer}.
2. An analogous piece of software; notionally, one that does a lot of noisy {crunching}, such as a "database engine", or "{search engine}".
The hackish senses of "engine" are actually close to its original, pre-Industrial-Revolution sense of a skill, clever device, or instrument (the word is cognate to "ingenuity"). This sense had not been completely eclipsed by the modern connotation of power-transducing machinery in {Charles Babbage}'s time, which explains why he named the stored-program computer that he designed in 1844 the "{Analytical Engine}".
[{Jargon File}]
(1996-05-31)

english
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].
[{Jargon File}]

enhanced capabilities port
Enhanced Capabilities Port
[hardware] (ECP) The most common {parallel printer interface} on current (1997) {IBM PC} compatibles.
Enhanced Capabilities Port is defined in standard IEEE 1284. It is bi-directional and faster than earlier parallel ports.
Not to be confused with {Extended Capabilities Port}.
(1997-12-01)

enhanced directory service
Enhanced Directory Service
[operating system] (EDS) A common, distributed, integrated, {directory service} with centralized and/or replicated administration.
[Reference?]
(2003-06-18)

enhanced dynamic random access memory
Enhanced Dynamic Random Access Memory
(EDRAM) {(http://www.ruralnet.net/~prairie)}.
[Summary?]
(1995-11-23)

enhanced graphics adapter
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
Enhanced IDE
{Advanced Technology Attachment Interface with Extensions}

enhanced integrated drive electronics
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
Enhanced Small Disk Interface
[storage, hardware] (ESDI) An obsolete {hard disk} {controller} {standard}, first introduced by {Maxtor} in 1983, and intended to be the successor to the original {ST-506}/{ST-412}. ESDI was faster and more reliable, but still could not compete with {IDE} and {SCSI}.
EDSI used two cables: a 20-pin data cable to each drive and a single 34-pin control cable {daisy chain} with the controller at one end and a terminator at the other. In PCs, it supported up to two drives at 1-2MB/s with drives up to 2GB.
{PC Guide (http://www.pcguide.com/ref/hdd/if/obsoESDI-c.html)}.
(2003-08-01)

enhancement
1. A change to a product which is intended to make it better in some way, e.g. new functions, faster, or occasionally more compatible with other systems. Enhancements to {hardware} components, especially {integrated circuits} often mean they are smaller and less demanding of resources. Sadly, this is almost never true of {software} enhancements.
2. {Marketroid}-speak for a {bug fix}. This abuse of language is a popular and time-tested way to turn incompetence into increased revenue. A hacker being ironic would instead call the fix a {feature}, or perhaps save some effort by declaring "{That's not a bug, that's a feature!}".
[{Jargon File}]
(1998-04-04)

eniac
ENIAC
{Electronic Numerical Integrator and Computer}

enigma
Enigma
[hardware, cryptography] The electro-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.
(2000-09-30)

enob
ENOB
{effective number of bits}

enq
ENQ
1. [character] /enkw/ or /enk/ ENQuire. The {mnemonic} for {ASCII} character 5.
2. [chat] An on-line convention for querying someone's availability. After opening a {chat} connection to someone apparently in heavy hack mode, one might type "SYN SYN ENQ?" (the SYNs representing notional synchronisation bytes), and expect a return of {ACK} or {NAK} depending on whether or not the person felt interruptible.
Compare {ping}, {finger}.
[{Jargon File}]
(1998-01-18)

ens
ENS
[body] See {Ecole Normale Superieure}

ente nazionale italiano di unificazione
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
Enterprise Application Integration
[software] (EAI) The use of {middleware} to integrate the {application programs}, {databases}, and {legacy systems} involved in an organisation's critical business processes.
[Example?]
(1999-09-28)

enterprise javabeans
Enterprise JavaBeans
[specification, business, programming] (EJB) A {server}-side {component architecture} for writing reusable {business logic} and {portable} {enterprise} applications. EJB is the basis of {Sun}'s {Java 2 Platform, Enterprise Edition} (J2EE).
Enterprise JavaBean components are written entirely in {Java} and run on any EJB compliant server. They are {operating system}, {platform}, and {middleware} independent, preventing vendor {lock-in}.
EJB servers provide system-level services (the "plumbing") such as {transactions}, security, {threading}, and {persistence}.
The EJB architecture is inherently transactional, {distributed}, {multi-tier}, {scalable}, secure, and {wire protocol} neutral - any {protocol} can be used: {IIOP}, {JRMP}, {HTTP}, {DCOM} etc. EJB 1.1 requires {RMI} for communication with components. EJB 2.0 is expected to require support for RMI/IIOP.
EJB applications can serve assorted clients: {browsers}, Java, {ActiveX}, {CORBA} etc. EJB can be used to wrap {legacy systems}.
EJB 1.1 was released in December 1999. EJB 2.0 is in development.
Sun claims broad industry adoption. 30 vendors are shipping server products implementing EJB. Supporting vendors include {IBM}, {Fujitsu}, {Sybase}, {Borland}, {Oracle}, and {Symantec}.
An alternative is Microsoft's MTS ({Microsoft Transaction Server}).
{Home (http://java.sun.com/products/ejb/)}.
{FAQ (http://java.sun.com/products/ejb/faq.html)}.
(2000-04-20)

enterprise resource planning
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
Enterprise Systems CONnectivity
[networking] (ESCON) {Optical fibre} connections between a {mainframe} and its {peripherals}. Also an {IBM} registered trademark.
(1997-03-31)

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

entityrelationship diagram
entity-relationship diagram
{entity-relationship model}

entityrelationship 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
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
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
EOF
End Of File
1. The {out-of-band} value returned by {C}'s sequential character-input functions (and their equivalents in other environments) when end of file has been reached. This value is -1 under {C} libraries postdating V6 Unix, but was originally 0.
2. The keyboard character (usually control-D, the ASCII EOT (End Of Transmission) character) that is mapped by the {Unix} terminal driver into an end-of-file condition.
[{Jargon File}]
(1995-01-18)

eol
EOL
1. {End Of Line}.
2. Expression Oriented Language. A low-level language for strings. Versions: EOL-1, EOL-2, EOL-3. ["EOL - A Symbol Manipulation Language", L. Lukaszewicz, Computer J 10(1):53 (May 1967)].
[{Jargon File}]

eot
EOT
1. [character] {End Of Transmission}
2. [storage] End Of Tape. A marker used on {magnetic tapes}.
(1996-06-24)

eou
EOU
[character, humour] The mnemonic of a mythical {ASCII} control character (End Of User) that would make an {ASR-33} {Teletype} explode on receipt. This construction parodies the numerous obscure {delimiter} and control characters left in ASCII from the days when it was associated more with wire-service teletypes than computers (e.g. {FS}, {GS}, {RS}, {US}, {EM}, {SUB}, {ETX}, and especially {EOT}). It is worth remembering that ASR-33s were big, noisy mechanical beasts with a lot of clattering parts; the notion that one might explode was nowhere near as ridiculous as it might seem to someone sitting in front of a {tube} or flatscreen today.
[{Jargon File}]
(1996-06-29)

eoug
EOUG
European {ORACLE} Users Group.

ep
EP
{Emulator program}

epcs
EPCS
{Experimental Physics Control Systems}

ephemeral port
[networking] A {TCP} or {UDP} {port} number that is automatically allocated from a predefined range by the {TCP/IP stack} software, typically to provide the port for the client end of a {client-server} communication.
{BSD} used ports 1024 through 4999 as ephemeral ports, though it is often desirable to increase this allocation.
{(http://www.ncftpd.com/ncftpd/doc/misc/ephemeral_ports.html)}.
(2002-10-06)

epilog
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
EPIM
{Enterprise Product Information Management}

epl
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}.
[{Jargon File}]

epp
EPP
{Enhanced Parallel Port}

eprom
EPROM
{Erasable Programmable Read-Only Memory}

eprom otp
EPROM OTP
{Erasable Programmable Read-Only Memory One Time Programmable}

epros
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
EPS
{Encapsulated PostScript}

epsilon
1. [character] The fifth letter of the Greek alphabet.
2. [mathematics] (From the Hungarian mathematician {Paul Erdos}) A very small, insignificant, or negligible quantity of something.
The use of epsilon is from the {epsilon-delta method} of {proof} in {differential calculus}.
(2001-07-06)

epsilon
EPSILON
[language] A {macro} language with high level features including strings and lists, developed by A.P. Ershov at Novosibirsk in 1967. EPSILON was used to implement {ALGOL 68} on the {M-220}.
["Application of the Machine-Oriented Language Epsilon to Software Development", I.V. Pottosin et al, in Machine Oriented Higher Level Languages, W. van der Poel, N-H 1974, pp. 417-434].
[{Jargon File}]
(1995-05-10)

epsilon 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
EPSIMONE
Concurrent simulation language derived from Simone. "EPSIMONE Manual", J. Beziin et al, Pub Int No 90, IRISA, Sept 1978.

epss
EPSS
{Electronic Performance Support System}

eql
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
EQLOG
Equality, types and generic modules for logic programming. A language using Horn clauses. J.A. Goguen, J. Meseguer.

eqlog
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
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
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
ER
{Entity-Relationship}

er
[networking] The {country code} for Eritrea.
(1999-01-27)

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.

era
ERA
{Entity-Relationship-Attribute}

erasable programmable readonly memory
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
ERC
[database] An extended {entity-relationship model}.
[Details? What does it stand for?]
(1997-12-23)

ercim
ERCIM
European Research Consortium on Informatics and Mathematics. An association of European research organisations promoting cooperative research on key issues in {Information Technology}.
(2000-12-30)

erd
ERD
{entity-relationship diagram}

erew pram
EREW PRAM
exclusive read, exclusive write {PRAM}.

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

ergoshell
ERGO-Shell
[operating system, tool] An ergonomic {X Window System} {Unix} {shell} for software engineers by Regine Freitag [freitag@gmd.de]. ERGO-Shell is now obsolete.
Version: 2.1.
{(ftp://ftp.gmd.de/gmd/ergo/)}.
E-mail: Dr. Wolfgang Dzida, GMD [dzida@gmd.de] or the author.
(2000-12-19)

eric conspiracy
Eric Conspiracy
[person, humour] A shadowy group of moustachioed hackers named Eric first pinpointed as a sinister conspiracy by an infamous talk.bizarre posting ca. 1986. This was doubtless influenced by the numerous "Eric" jokes in the Monty Python oeuvre. There do indeed seem to be considerably more moustachioed Erics in hackerdom than the frequency of these three traits can account for unless they are correlated in some arcane way. Well-known examples include {Eric Allman} (of the "Allman style" described under {indent style}), {Erik Fair} (co-author of NNTP), {Eric S. Raymond} and about fifteen others. The organisation line "Eric Conspiracy Secret Laboratories" now emanates regularly from more than one site.
[{Jargon File}]
(1998-10-20)

eric s raymond
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
Eris
/e'ris/ The Greek goddess of Chaos, Discord, Confusion, and Things You Know Not Of; her name was latinised to Discordia and she was worshiped by that name in Rome. Not a very friendly deity in the Classical original, she was reinvented as a more benign personification of creative anarchy starting in 1959 by the adherents of {Discordianism} and has since been a semi-serious subject of veneration in several "fringe" cultures, including hackerdom.
See {Church of the SubGenius}.
[{Jargon File}]
(1994-12-08)

erlang
Erlang
1. [person] {A. K. Erlang}. (The other senses were named after him).
2. [language] A concurrent {functional language} for large industrial {real-time} systems by Armstrong, Williams and Virding of Ellemtel, Sweden.
Erlang is untyped. It has {pattern matching} syntax, {recursion equations}, explicit {concurrency}, {asynchronous message passing} and is relatively free from {side-effects}. It supports transparent cross-{platform} distribution. It has primitives for detecting run-time errors, real-time {garbage collection}, {modules}, {dynamic code replacement} (change code in a continuously running real-time system) and a {foreign language interface}.
An unsupported free version is available (subject to a non-commercial licence). Commercial versions with support are available from {Erlang Systems AB}. An {interpreter} in {SICStus Prolog} and compilers in {C} and Erlang are available for several {Unix} {platforms}.
{Open Telecom Platform} (OTP) is a set of {libraries} and tools.
{Commercial version (http://www.erlang.se/)} - sales, support, training, consultants. {Open-source version (http://www.erlang.org/)} - downloads, user-contributed software, mailing lists.
{Training and consulting (http://www.erlang-consulting.com/)}.
E-mail: [erlang@erix.ericsson.se].
[Erlang - "Concurrent Programming in Erlang", J. Armstrong, M. & Williams R. Virding, Prentice Hall, 1993. ISBN 13-285792-8.]
3. [unit] 36 {CCS} per hour, or 1 call-second per second.
Erlang is a unit without dimension, accepted internationally for measuring the traffic intensity. This unit is defined as the aggregate of continuous occupation of a channel for one hour (3600 seconds). An intensity of one Erlang means the channel is continuously occupied.
(2003-03-25)

erotica
{pornography}

erp
ERP
{Enterprise Resource Planning}

error
1. A discrepancy between a computed, observed, or measured value or condition and the true, specified, or theoretically correct value or condition.
2. [programming] A mental mistake made by a programmer that may result in a program {fault}.
3. (verb) What a program does when it stops as result of a programming error.
(2000-03-28)

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

errorbased testing
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)

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)

es1
ES-1
[text, tool] An early text editing {interpreter}.
[Sammet 1969, p. 684].
(1999-02-01)

esa
ESA
1. [architecture] {Enterprise Systems Architecture}.
2. [body] European Space Agency.
(1999-10-31)

esc
ESC
{escape}

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
ESCD
{Extended System Configuration Data}

escon
ESCON
{Enterprise Systems CONnectivity}

escrow
[security] An arrangement where something (generally money or documents) is held in trust ("in escrow") by a trusted third party until certain agreed conditions are met. In computing the term is used for {key escrow} and also for {source code escrow}.
(1999-12-14)

esd
ESD
{Electrostatic Discharge}

esdi
ESDI
{Enhanced Small Disk Interface}

esf
ESF
Eureka Software Factory.

esi
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
ESL
{Expert Systems} Ltd.

eslpdpro
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
ESML
Extended Systems Modelling Language: a real-time software engineering methodology based on RTSA.

esmtp
ESMTP
[messaging, protocol] Extended {SMTP}. Initially defined in {RFC 1869} and extended thereafter.
See also {ETRN}.
(1997-11-21)

esp
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
ESPOL
{Executive Systems Programming Oriented Language}

esprit
ESPRIT
{European Strategic Programme for Research in Information Technology}

esr
ESR
{Eric S. Raymond}

essential complexity
[programming] A measure of the "structuredness" of a program.
(1996-05-13)

estelle
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
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
EstPC
A {compiler} from {Estelle} to {C}.
{(ftp:osi.ncsl.nist.gov/pub/osikit/estpc)}.
(1994-09-19)

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

et
[networking] The {country code} for Ethiopia.
(1999-01-27)

et
ET
Bernd Gersdorf, U Bremen. An integration of functional and logic programming.

eta abstraction
{eta conversion}

eta conversion
[theory] In {lambda-calculus}, the eta conversion rule states
\ x . f x [--] f
provided x does not occur as a {free variable} in f and f is a function. Left to right is eta reduction, right to left is eta abstraction (or eta expansion).
This conversion is only valid if {bottom} and \ x . bottom are equivalent in all contexts. They are certainly equivalent when applied to some argument - they both fail to terminate. If we are allowed to force the evaluation of an expression in any other way, e.g. using {seq} in {Miranda} or returning a function as the overall result of a program, then bottom and \ x . bottom will not be equivalent.
See also {observational equivalence}, {reduction}.

eta expansion
See {eta conversion}.

eta reduction
See {eta conversion}.

etb
ETB
{End Transmission Block}

etc
ETC
ExTendible Compiler. Fortran-like, macro extendible. "ETC - An Extendible Macro-Based Compiler", B.N. Dickman, Proc SJCC 38 (1971).

etext
e-text
{electronic text}

ether
ETHER
[language] A {concurrent} {object-oriented} language?
(1997-03-18)

ethergate
EtherGate
Multi-protocol Ethernet gateway made by LRT. See Computer Systems, October 1985.

ethernet
Ethernet
[networking] A {local area network} first described by Metcalfe & Boggs of {Xerox PARC} in 1976. Specified by {DEC}, {Intel} and {XEROX} (DIX) as {IEEE 802.3} and now recognised as the industry standard.
Data is broken into {packets} and each one is transmitted using the {CSMA/CD} {algorithm} until it arrives at the destination without colliding with any other packet. The first {contention slot} after a transmission is reserved for an {acknowledge} packet. A {node} is either transmitting or receiving at any instant. The {bandwidth} is about 10 Mbit/s. Disk-Ethernet-Disk transfer rate with {TCP/IP} is typically 30 kilobyte per second.
Version 2 specifies that {collision} detect of the transceiver must be activated during the {inter-packet gap} and that when transmission finishes, the differential transmit lines are driven to 0V (half step). It also specifies some {network management} functions such as reporting {collisions}, retries and {deferrals}.
Ethernet cables are classified as "XbaseY", e.g. 10base5, where X is the data rate in {Mbps}, "base" means "{baseband}" (as opposed to {radio frequency}) and Y is the category of cabling. The original cable was {10base5} ("full spec"), others are {10base2} ("thinnet") and {10baseT} ("twisted pair") which is now (1998) very common. {100baseT} ("{Fast Ethernet}") is also increasingly common.
{Usenet} newsgroup: {news:comp.dcom.lans.ethernet}.
{(http://wwwhost.ots.utexas.edu/ethernet/ethernet-home.html)}.
(1997-04-16)

ethernet address
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
Ethernet meltdown
A {network meltdown} on {Ethernet}.
(1994-11-29)

ethertalk
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
ETM
[database] An {active DBMS} from the {University of Karlsruhe}.
[Expansion? Features?]
(1997-06-23)

etrn
ETRN
[messaging, protocol] ("Extended {TURN}") An {ESMTP} command (first defined in {RFC 1985}) with which a {client} asks the {server} to deliver queued mail to the client via a new ESMTP connection.
ETRN supersedes the {SMTP} "TURN" command in the same way that ESMTP's "{EHLO}" supersedes SMTP's "{HELO}".
(1997-11-21)

etsi
ETSI
{European Telecommunications Standards Institute}

etx
ETX
{End Of Text}

euclid
Euclid
[language] (Named after the Greek geometer, fl ca 300 BC.) A {Pascal} descendant for development of verifiable system software. No {goto}, no {side effects}, no global assignments, no functional arguments, no nested procedures, no floats, no {enumeration types}. Pointers are treated as indices of special arrays called collections. To prevent {aliasing}, Euclid forbids any overlap in the list of actual parameters of a procedure. Each procedure gives an imports list, and the compiler determines the identifiers that are implicitly imported. Iterators.
Ottawa Euclid is a variant.
["Report on the Programming Language Euclid", B.W. Lampson et al, SIGPLAN Notices 12(2):1-79, Feb 1977].
(1998-11-23)

euclidean algorithm
Euclidean Algorithm
{Euclid's Algorithm}

euclids algorithm
Euclid's Algorithm
[algorithm] (Or "Euclidean Algorithm") An {algorithm} for finding the {greatest common divisor} (GCD) of two numbers. It relies on the identity
gcd(a, b) = gcd(a-b, b)
To find the GCD of two numbers by this algorithm, repeatedly replace the larger by subtracting the smaller from it until the two numbers are equal. E.g. 132, 168 -] 132, 36 -] 96, 36 -] 60, 36 -] 24, 36 -] 24, 12 -] 12, 12 so the GCD of 132 and 168 is 12.
This algorithm requires only subtraction and comparison operations but can take a number of steps proportional to the difference between the initial numbers (e.g. gcd(1, 1001) will take 1000 steps).
(1997-06-30)

eudora
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
EULA
{end-user license agreement}

euler
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
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.
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
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
Eureka
A European technological development programme.

eureka step
Eureka step
In {program transformation}, a transformation which is not obvious or easy to define as an {algorithm}.
(1994-12-08)

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

euroisdn
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
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
EuropaNET
A combination of pan-European backbone services run by DANTE.

european academic and research network
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 manufacturers association
European Computer Manufacturers Association
[body] (ECMA) The former name of {ECMA International}

european computerindustry research centre gmbh
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
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
European Telecommunications Standards Institute
[body] (ETSI) A European version of the {ITU-T}(?).
(1996-05-13)

euug
EUUG
{European Unix User Group}

ev6
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
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
EVALUATE
[programming] The {COBOL85} {keyword} for a {switch statement}.
(1997-06-10)

evaluation
[programming] 1. Converting an expression into a value using some {reduction strategy}.
2. The process of examining a system or system component to determine the extent to which specified properties are present.
(1996-05-13)

evaluation strategy
{reduction strategy}

evaluator
[theory] Geoff Burn defines evaluators E0, E1, E2 and E3 which when applied to an expression, reduce it to varying degrees. E0 does no evaluation, E1 it evaluates to {weak head normal form} (WHNF), E2 evaluates the structure of a list, i.e. it evaluates it either to NIL or evaluates it to a CONS and then applies E2 to the second argument of the CONS. E3 evaluates the structure of a list and evaluates each element of the list to {WHNF}. This concept can be extended to data structures other than lists and forms the basis of the {evaluation transformer} style of {strictness analysis}.
(1994-12-12)

eve
EVE
{Extensible VAX Editor}

event
1. [software] An occurrence or happening of significance to a task or program, such as the completion of an asynchronous input/output operation. A task may wait for an event or any of a set of events or it may (request to) receive asynchronous notification (a {signal} or {interrupt}) that the event has occurred.
See also {event-driven}.
2. [data] A transaction or other activity that affects the records in a file.
(2000-02-09)

eventdriven
event-driven
[programming] A kind of program, such as a {graphical user interface}, with a main loop which just waits for {events} to occur. Each event has an associated handler which is passed the details of the event, e.g. mouse button 3 pressed at position (355, 990).
For example, {X window system} and most {Visual Basic} {application programs} are event-driven.
See also {callback}.
(2000-02-09)

evga
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}.
[{Jargon File}]
(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".
[{Jargon File}]
(1994-12-12)

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)

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)

ewos
EWOS
{European Workshop for Open Systems}

exa
-
{prefix}

exabyte
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}.
[{Jargon File}]
(1994-12-12)

exapt
EXAPT
EXtended {APT}.

exceed
Exceed
[interface] A tool to display remote {X Window System} applications on {Microsoft Windows}. Exceed is not an X server.
(2001-04-29)

excel
Excel
{Microsoft Excel}

excelan
Excelan
Manufacturers of intelligent {Ethernet} cards. Software and addresses are down-loadable. The cards have their own {RAM} for buffers.

excelerator
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
EXCH
[jargon] /eks'ch*/ or /eksch/ To exchange two things, each for the other; to swap places. If you point to two people sitting down and say "Exch!", you are asking them to trade places. EXCH, meaning EXCHange, was originally the name of a {PDP-10} instruction that exchanged the contents of a {register} and a memory location.
Many newer hackers are probably thinking instead of the {PostScript} exchange operator (which is usually written in lowercase).
[{Jargon File}]
(1999-09-17)

exchange server
Exchange Server
{Microsoft Exchange}

excl
{exclamation mark}

exclamation mark
[character] The character "!" with {ASCII} code 33.
Common names: {bang}; pling; excl (/eks'kl/); shriek; {ITU-T}: exclamation mark, exclamation point (US). Rare: {factorial}; exclam; smash; cuss; boing; yell; wow; hey; wham; eureka; soldier; {INTERCAL}: spark-spot.
The {Commonwealth Hackish}, "pling", is common among {Acorn Archimedes} owners. {Bang} is more common in the USA.
The occasional {CMU} usage, "shriek", is also used by {APL} fans and mathematicians, especially {category} theorists.
Exclamation mark is used in {C} and elsewhere as the logical negation {operation} ({NOT}).
(1998-09-17)

exclamation point
{exclamation mark}

exe
EXE
/eks'ee/ or /eek'see/ or /E-X-E/ An executable binary file. Some operating systems (notably {MS-DOS}, VMS, and TWENEX) use the extension .EXE to mark such files. This usage is also occasionally found among Unix programmers even though Unix executables don't have any required suffix.
[{Jargon File}]

exec
EXEC
[language] An early {batch} language for the {IBM} {VM/CMS} systems.
[SC19-6209 Virtual Machine/ System Product CMS Command and Macro Reference, Appendix F. CMS EXEC Control Statements].
[Was {EXEC 2} was a later version?]
(2000-08-06)

exec
/eg-zek'/ [operating system] 1. execute.
A synonym for {chain} derived from the {Unix} "exec" {system call}.
{Unix manual page}: execve(2).
2. (Obsolete) {executive}.
The mainstream "exec" as an abbreviation for (human) executive is *not* used. To a hacker, an "exec" is a always a program, never a person.
3. At {IBM} and {VM}/{CMS} shops, the equivalent of a {shell} command file.
4. [operating system] The innermost {kernel} of the {Amiga} {operating system} which provides shared-library support, device interface, {memory management}, {CPU} management, basic {IPC}, and the basic structures for OS extension. The rest of the Amiga OS (windowing, file system, third-party extensions, etc.) is built using these structures.
[{Jargon File}]
(1997-08-01)

exec 2
EXEC 2
1. [language] A {scripting language} produced by {IBM} in the late 1970s.
Superseded by {REXX}.
[SC24-5219, "Virtual Machine/System Product EXEC 2 Reference"].
[Successor to {EXEC 1}? With or without a space?]
2. [operating system] An archaic {operating system} from {UNIVAC}. By about 1980 it had been replaced by {EXEC 8}.
[Dates? Did EXEC 3 to EXEC 7 exist?]
(2000-08-06)

exec 8
EXEC 8
[operating system] {Unisys}'s {operating system} from about 1980 to 2000, by which time it was a dying breed with Unisys moving to {Windows NT} and {Unix}.
[Was 8 the successor to {EXEC 2}?]
(2000-08-06)

executable
[operating system] A {binary} file containing a program in {machine language} which is ready to be {execute}d (run).
The term might also be, but generally isn't, applied to {scripts} which are interpreted by a {command line interpreter}. Executables are distinguished in {Unix} by having the execute permission bits set, at least for the owner. {MS-DOS} uses the {filename extension} ".exe".
(1997-06-21)

executable content
[operating system] Executable programs sent by one computer to another via a network. For example a {Java} {applet} is executable content. Usage: rare.
(1998-03-23)

execute
{execution}

execution
[operating system, programming] The process of carrying out the {instructions} in a computer program by a computer.
See also {dry run}.
(1996-05-13)

executive
[operating system] The {command interpreter} or {shell} for an {operating system}. The term is used especially around {mainframes} and probably derived from {UNIVAC}'s archaic {EXEC 2} and current (in 2000) {EXEC 8} {operating systems}.
(2000-08-06)

executive systems programming oriented language
Executive Systems Programming Oriented Language
[language] An {ALGOL} superset with high level instructions for low level actions, e.g. interrupting another processor on a multiprocessor system. Its single pass compiler was very fast: over 250 lines/s on a 10MHz processor.
ESPOL was used to write the MCP (Master Control Program) on the {Burroughs 6700}. It was superseded by {NEWP}.
["The B6700 ESPOL Reference Manual", Burroughs, 1970].
(2001-06-14)

exercise left as an
exercise, left as an
Used to complete a proof in technical books when one doesn't mind a {handwave}, or to avoid one entirely. The complete phrase is: "The proof [or "the rest"] is left as an exercise for the reader." This comment *has* occasionally been attached to unsolved research problems by authors possessed of either an evil sense of humour or a vast faith in the capabilities of their audiences.
[{Jargon File}]
(1995-02-20)

exhaustive testing
[programming] Executing a program with all possible combinations of inputs or values for program variables.
(1996-05-13)

existential quantifier
{quantifier}

exodus
EXODUS
[database] An extensible {database} project developed at the University of Wisconsin.
(1996-05-13)

exodus
eXodus
A package from White Pines allowing the Macintosh to be used as an X server.

exos
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
Expanded Memory Specification
[storage] (EMS) An {IBM PC} memory {paging} scheme enabling access to memory other than {conventional memory} in {real mode}.
{Expanded memory} is provided through a {page frame} of at least 64 {kilobytes} in the {reserved memory} address region. Access to this memory is provided by an {expanded memory manager} (EMM) software. The EMM functions are accessible through {interrupt} 67H.
In {8086} or {8088} based systems this is the only way to use memory beyond conventional memory. In systems based on {80286} or later, {XMS} and {HMA} provide alternative methods.
EMS was developed jointly by {Lotus}, {Intel}, and {Microsoft} prior to 1988. Accordingly, this specification is sometimes referred to as LIM EMS.
A complete discussion of EMS and programming examples can be found in ["PC System Programming for developers", 1989, ISBN 1-55755-035-2 (Book only) and ISBN 1-55755-036-0 (Book and diskette)].
{EEMS}, a competing expanded memory management standard, was developed by {AST Research}, {Quadram} and {Ashton-Tate}.
See also {upper memory block}.
(1996-01-10)

expansion card
[hardware] A circuit board which can be plugged into one of a computer's {expansion slots} to provide some optional extra facility such as additional {RAM}, {disk controller}, {coprocessor}, {graphics accelerator}, communication device or some special-purpose interface.
Different computers have different standards for the cards they accept, e.g. {PCI}.
(1998-06-26)

expansion slot
[hardware] A connector in a computer into which an {expansion card} can be plugged. The connector supplies power to the card and connects it to the {data bus}, {address bus} and control signals of the {motherboard}.
(1998-06-26)

expect
[language, tool] A {Unix} tool written in {Tcl} and a {script language} for automating the operation of {interactive} applications such as {telnet}, {FTP}, {passwd}, {fsck}, {rlogin}, {tip}, etc.. Expect can feed input to other programs and perform {pattern matching} on their output. It is also useful for testing these applications. By adding {Tk}, you can also wrap interactive applications in {X11} {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 lisp
eXperimental LISP
[language] (xlisp) An experimental programming language combining a subset of {Common Lisp} with an {object-oriented} extension capability (Class and Object types). It was implemented by David Micheal Betz at Apple to allow experimentation with {object-oriented programming} on small computers. The {C} {source code} has been ported to {Unix}, {Microsoft Windows}, {Macintosh}, {Amiga}, {Atari}, and {MS-DOS}.
Version 2.1 of the {interpreter}, by Tom Almy is closer to Common Lisp.
Latest version: 2.1, as of 1992-05-26.
{(ftp://wasp.eng.ufl.edu/)}, {(ftp://cs.orst.edu/)}, {(ftp://glia.biostr.washington.edu/)}.
E-mail: Tom Almy [toma@sail.labs.tek.com].
{Microsoft Windows version (ftp://ftp.cica.indiana.edu/util/wxlslib.zip)}.
{Macintosh version (ftp://netcom.com/pub/bskendig/)}.
{Usenet} newsgroup: {news:comp.lang.lisp.x}.
(2000-08-14)

experimental physics control systems
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
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
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
Expert Systems Ltd.
[company] (ESL) Distributors of {ESLPDPRO}.
Adderss: Magdalen Centre, Oxford Science Park, Oxford, OX4 4GA. Telephone +44 (865) 784474.
(1996-05-29)

explicit parallelism
A feature of a programming language for a {parallel processing} system which allows or forces the programmer to annotate his program to indicate which parts should be executed as independent parallel tasks. This is obviously more work for the programmer than a system with {implicit parallelism} (where the system decides automatically which parts to run in parallel) but may allow higher performance.

explicit type conversion
[programming] (Or "cast" in {C} and elsewhere). A programming construct ({syntax}) to specify that an expression's value should be converted to a different type.
For example, in {C}, to convert an {integer} (usually 32 bits) to a {char} (usually 8 bits) we might write:
int i = 42; char *p = &buf; *p = (char) i;
The expression "(char)" (called a "cast") converts i's value to char type. Casts (including this one) are often not strictly necessary, due to automatic {coercions} performed by the compiler, but can be used to make the conversion obvious and to avoid warning messages.
(1999-09-19)

exploit
[security] A security hole or an instance of taking advantage of a security hole.
"[...] {hackers} say exploit. {sysadmins} say hole" -- {Mike Emke (http://emke.com/)}.
Emke reports that the stress is on the second syllable. If this is true, this may be a case of hackerly zero-deriving verbs (especially instantials) from nouns, akin to "write" as a noun to describe an instance of a disk drive writing to a disk.
(2001-11-24)

exploratory data analysis
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)

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

exponentialtime algorithm
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
Express
1. A language supporting {concurrency} through {message passing} to named message queues from {ParaSoft} Corporation
{(ftp://ftp.parasoft.com/express/docs)}.
2. Data definition language, meant to become an ISO standard for product data representation and exchange. TC 184/SC4 N83, ISO, 1991-05-31. E-mail: [smith@cme.nist.gov].
3. A data modelling language adopted by the {ISO} working group on {STEP}.

expression
[programming] Any piece of program code in a {high-level language} which, when (if) its execution terminates, returns a value. In most programming languages, expressions consist of constants, variables, operators, functions, and {parentheses}. The operators and functions may be built-in or user defined. Languages differ on how expressions of different {types} may be combined - with some combination of explicit {casts} and implicit {coercions}.
The {syntax} of expressions generally follows conventional mathematical notation, though some languages such as {Lisp} or {Forth} have their own idiosyncratic syntax.
(2001-05-14)

expression tree
[mathematics, grammar] The {syntax tree} of an {expression}.
(1998-11-14)

extend
[programming] To add {features} to a program, especially through the use of {hooks}.
"Extend" is very often used in the phrase "extend the {functionality} of a program."
{Plug-ins} are one form of extension.
(1997-06-21)

extended affix grammar
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
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
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 backusnaur form
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
Extended Binary Coded Decimal Interchange Code
[character, standard] /eb's*-dik/, /eb'see`dik/, /eb'k*-dik/, /ee`bik'dik`/, /*-bik'dik`/ (EBCDIC) A proprietary 8-bit {character set} used on {IBM} {dinosaurs}, the {AS/400}, and {e-Server}.
EBCDIC is an extension to 8 bits of BCDIC (Binary Coded Decimal Interchange Code), an earlier 6-bit character set used on IBM computers. EBCDIC was [first?] used on the successful {System/360}, anounced on 1964-04-07, and survived for many years despite the almost universal adoption of {ASCII} elsewhere. Was this concern for {backward compatibility} or, as many believe, a marketing strategy to lock in IBM customers?
IBM created 57 national EBCDIC character sets and an International Reference Version (IRV) based on {ISO 646} (and hence ASCII compatible). Documentation on these was not easily accessible making international exchange of data even between IBM mainframes a tricky task.
US EBCDIC uses more or less the same characters as {ASCII}, but different {code points}. It has non-contiguous letter sequences, some ASCII characters do not exist in EBCDIC (e.g. {square brackets}), and EBCDIC has some ({cent sign}, {not sign}) not in ASCII. As a consequence, the translation between ASCII and EBCDIC was never officially completely defined. Users defined one translation which resulted in a so-called de-facto EBCDIC containing all the characters of ASCII, that all ASCII-related programs use.
Some printers, telex machines, and even electronic cash registers can speak EBCDIC, but only so they can converse with IBM mainframes.
For an in-depth discussion of character code sets, and full translation tables, see {Guidelines on 8-bit character codes (ftp://ftp.ulg.ac.be/pub/docs/iso8859/iso8859.networking)}.
{A history of character codes (http://tronweb.super-nova.co.jp/characcodehist.html)}.
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 � a � � � � c � � . [ ( + | 5 & e � � � � � � � � ! $ * ) ; ^ 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 � (pounds) � � � � � � � � � � � ] � � C { A B C D E F G H I � � o � � � D } J K L M N O P Q R � � u � � � 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".
(2002-03-03)

extended bnf
Extended BNF
{Extended Backus-Naur Form}

extended c
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
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
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
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 Random Access Memory
{Extended Data Out Dynamic Random Access Memory}

extended fortran language
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
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 industrystandard architecture
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
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
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
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 selfcontaining prolog
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
Extended System Configuration Data
[operating system] (ESCD) An area of memory, not exceeding 32 kilobytes in size, used by {MS-DOS}(?) as {NVRAM} for {PNP BIOS} and {PNP OS}. It must be writeable at {run time}.
Intel's {ICU} also uses ESCD to store information for PNP {ISA} cards and {legacy} ISA cards.
(1999-11-22)

extended tcl
Extended Tcl
[language] (TclX) {Tcl} extended by Mark Diekhans [markd@NeoSoft.com] and Karl Lehenbauer from 1989 on with statements to provide high-level access {Unix} system primitives.
Current version: 7.6p2, as of 2003-02-12.
{TclX Home (http://www.neosoft.com/tclx/)}.
E-mail: [tcl-project@NeoSoft.com].
(2003-02-12)

extended tiny
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
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
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
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
Extensible Shell
[operating system] (es) A {Unix} {shell} written by Byron Rakitzis [byron@netapp.com] and Paul Haahr [haahr@adobe.com], derived from {rc}. Es has real {functions}, {closures}, {exceptions} and lets you redefine most internal shell operations.
Version: 0.84.
{(ftp://ftp.sys.utoronto.ca/pub/es/)}.
["Es - A Shell with Higher Order Functions", P. Haahr et al, Proc Winter 1993 Usenix Technical Conference].
(1993-04-30)

extensible stylesheet language
Extensible Stylesheet Language
[World-Wide Web] (XSL) A {W3C} {standard} defining {stylesheets} for (and in) {XML}.
{Home (http://www.w3.org/Style/XSL/)}.
See also {XSLT}.
[Summary?]
(2001-04-01)

extensible stylesheet language transformations
Extensible Stylesheet Language Transformations
[World-Wide Web] (XSLT) A {W3C} standard for transforming {XML} documents into other XML documents or other formats. This was conceived as part of {XSL} but has been found to have wider applications.
{(http://www.w3.org/TR/xslt)}.
(2001-10-04)

extensible vax editor
Extensible VAX Editor
[text, tool] (EVE) A {DEC} product implemented using DEC's {Text Processing Utility} (TPU).
[Details?]
(2000-05-08)

extension
1. [filename extension] {filename extension}.
2. [programming] A {feature} or piece of {code} which {extends} a program's {functionality}, e.g. a {plug-in}.
(1997-06-21)

extension language kit
Extension Language Kit
[language] (Elk) A {Scheme} {interpreter} by Oliver Laumann [net@cs.tu-berlin.de] and Carsten Bormann [cabo@cs.tu-berlin.de] of the {Technical University of Berlin}. Elk was designed to be used as a general extension language. New {types} and {primitive} procedures can easily be added. It has {first-class environments}, {dynamic-wind}, {fluid-let}, {macros}, {autoload}ing and a {dump}. It provides interfaces to {Xlib}, {Xt} and various {widget} sets; {dynamic loading} of extensions and {object files}; almost all artificial limitations removed; {generational}/{incremental garbage collector}; {Unix} {system call} extensions; {Records} (structures) and {bit strings}.
Version: 2.2 is mostly {R3RS} compatible and runs on {Unix}, {Ultrix}, {VAX}, {Sun-3}, {Sun-4}, {68000}, {i386}, {MIPS}, {IBM PC RT}, {RS/6000}, {HP700}, {SGI}, {Sony}, {MS-DOS} ({gcc}+{DJGPP} or {go32}).
{Germany (ftp://ftp.fu-berlin.de/pub/Unix/languages/scheme/elk-2.2.tar.gz)}. {US (ftp://ftp.x.org/contrib/elk-2.2.tar.gz)}. {US (ftp://gatekeeper.dec.com/pub/comp.sources.misc/volume8/elk)}.
(1994-12-15)

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}

exterior gateway protocol
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
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}.
[{Jargon File}]
(1997-02-17)

extra
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
EXUG
{European X User Group}

eyeball search
[jargon] (Or vgrep) To look for something in a mass of code or data with one's own native optical sensors, as opposed to using some sort of pattern matching software like {grep} or any other automated search tool.
Compare {vdiff}, {desk check}.
[{Jargon File}]
(1997-12-17)

ez
EZ
High-level string-processing language derived from SNOBOL4, SL5 and Icon.
["The EZ Reference Manual", C.W. Fraser et al, CS TR 84-1, U Arizona, 1984].

ezd
[graphics, tool] (Easy drawing) A graphics {server} that sits between an {application program} and an {X} server and allows both existing and new programs easy access to structured graphics. Ezd users have been able to have their programs produce interactive drawings within hours of reading the manual page. Ezd supports structured graphics - application defined graphical objects are ordered into drawings by the application. Unlike most X tools, ezd does not require any event handling by the application. The ezd server maintains the window contents. When an event occurs an application supplied {Scheme} expression is evaluated.
Current version: 15mar93 (as of 1993-03-10).
{(ftp://gatekeeper.dec.com/pub/DEC/ezd/)}.
Contact: Joel Bartlett.
(2000-03-25)

ezine
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
F2F
{face-to-face}

f68k
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
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."
[{Jargon File}]

facetoface
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
Facile
[language] 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 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
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}.
[{Jargon File}]

fad
FAD
["FAD, A Simple and Powerful Database Language", F. Bancilon et al, Proc 13th Intl Conf on VLDB, Brighton, England, Sep 1987].

failover
[reliability] Automatically switching to a redundant or standby server, system, or network upon the failure or abnormal termination of the currently-active server, system, or network (a "{hot standby}" or "{warm standby}"). Failover happens without human intervention. This feature is usually built-in to expensive systems which must be available continuously.
(2001-03-19)

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)

failuredirected testing
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
FAIR
[language] An early system on the {IBM 705}.
[Listed in CACM 2(5):1959-05-16].
(1996-05-13)

fairchild f8
Fairchild F8
[processor] An 8-bit {microprocessor}. The processor itself had no {address bus} - program and data memory access were contained in separate units, which reduced the number of pins and the associated cost. It also featured 64 {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}.
[{Jargon File}]

fall through
[programming] (The American misspelling "fall thru" is also common)
1. To exit a loop by exhaustion, i.e. by having fulfilled its exit condition rather than via a break or exception condition that exits from the middle of it. This usage appears to be *really* old, dating from the 1940s and 1950s.
2. To fail a test that would have passed control to a subroutine or some other distant portion of code.
3. In C, "fall-through" occurs when the flow of execution in a {switch statement} reaches a "case" label other than by jumping there from the switch header, passing a point where one would normally expect to find a "break". A trivial example:
switch (colour) { case GREEN: do_green(); break; case PINK: do_pink(); /* FALL THROUGH */ case RED: do_red(); break; default: do_blue(); break; }
The effect of the above code is to "do_green()" when colour is "GREEN", "do_red()" when colour is "RED", "do_blue()" on any other colour other than "PINK", and (and this is the important part) "do_pink()" *and then* "do_red()" when colour is "PINK". Fall-through is {considered harmful} by some, though there are contexts (such as the coding of state machines) in which it is natural; it is generally considered good practice to include a comment highlighting the fall-through where one would normally expect a break. See also {Duff's Device}.

fall thru
[spelling] It's spelled "{fall through}".
(1996-12-13)

false
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}.
[{Jargon File}]
(1994-12-16)

fap
FAP
The {assembly language} for {Sperry-Rand 1103} and 1103A.
[Listed in CACM 2(5):16 (May 1959)].
(1994-12-16)

faq
FAQ
{frequently asked question}

faq list
FAQ list
{frequently asked question}

faql
FAQL
{frequently asked question}

faradise
/far'*-di:z/ [US Geological Survey] To start any hyper-addictive process or trend, or to continue adding current to such a trend. Telling one user about a new octo-tetris game you compiled would be a faradising act - in two weeks you might find your entire department playing the faradic game.

farkled
[jargon] /far'kld/ (From DeVry Institute of Technology, Atlanta) A synonym for {hosed}. Possibly related to Yiddish "farblondjet" and/or the "Farkle Family" skits on Rowan & Martin's Laugh-In.
[{Jargon File}]
(1998-09-07)

farm
{processor farm}

farming
[jargon] (From Adelaide University, Australia) What the {heads} of a {disk drive} are said to do when they plow little furrows in the magnetic media during a {head crash}. Typically used as follows: "Oh no, the machine has just crashed; I hope the hard drive hasn't gone {farming} again."
[{Jargon File}]
(2001-03-26)

farnet
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
["FASBOL. A SNOBOL4 Compiler", P.J. Santos, Memo ERL-M134, UC Berkeley 1971].

fascist
[jargon] Said of a computer system with excessive or annoying security barriers, usage limits, or access policies. The implication is that said policies are preventing hackers from getting interesting work done. The variant "fascistic" seems to have been preferred at {MIT}.
In the design of languages and other software tools, "the fascist alternative" is the most restrictive and structured way of capturing a particular function; the implication is that this may be desirable in order to simplify the implementation or provide tighter error checking. Compare {bondage-and-discipline language}, although that term is global rather than local.
[{Jargon File}]
(2003-07-29)

fase
FASE
Fundamentally Analyzable Simplified English.
L.E. McMahon, Bell Labs.
[Sammet 1969, p.720].
(1994-11-09)

fast
FAST
1. [body] {Federation Against Software Theft}.
2. [language] {Fortran Automatic Symbol Translator}.
(1996-05-19)

fast ata
Fast ATA
{Advanced Technology Attachment Interface with Extensions}

fast ata2
Fast ATA-2
{Advanced Technology Attachment Interface with Extensions}

fast ethernet
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
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
Fast Packet
{Asynchronous Transfer Mode}

fast page mode dynamic random access memory
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
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
FAT
{File Allocation Table}

fat binary
[operating system] An executable file containing code for more than one {CPU}. The correct code is selected automatically at run time. This is convenient for distributing {software} and sharing it between multiple {platforms}.
{NEXTSTEP} supports fat binaries, e.g. for {Motorola 68000}, {Intel 80486} and {SPARC} ("triple fat"). {Mac OS} supports fat binaries for both {680x0} and {PowerPC} native code.
[Other OSes?]
(1995-09-23)

fat client
[networking] Opposite of "{thin client}".
(1996-12-08)

fat electrons
[electronics, humour] Old-time hacker David Cargill's theory on the cause of computer glitches. Your typical electricity company draws its line current out of the big generators with a pair of coil taps located near the top of the dynamo. When the normal tap brushes get dirty, they take them off line to clean them up, and use special auxiliary taps on the *bottom* of the coil. Now, this is a problem, because when they do that they get not ordinary or "thin" electrons, but the fat sloppy electrons that are heavier and so settle to the bottom of the generator. These flow down ordinary wires just fine, but when they have to turn a sharp corner (as in an integrated-circuit via), they're apt to get stuck. This is what causes computer glitches.
[Obviously, fat electrons must gain mass by {bogon} absorption - ESR]
Compare {bogon}, {magic smoke}.
[{Jargon File}]
(1996-12-08)

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

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

faultbased testing
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)

fax
{facsimile}

fax over ip
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
FC
[language] A {functional language}.
["FC Manual", L. Augustsson, Memo 13, Programming Methodology Group, Chalmers U, Sweden 1982].
(1995-03-22)

fcal
FC-AL
{Fibre Channel-Arbitrated Loop}.

fcb
FCB
[operating system] {file control block}.

fcode
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
FCP
Flat Concurrent Prolog.
["Design and Implementation of Flat Concurrent Prolog", C. Mierowsky, TR CS84-21 Weizmann Inst, Dec 1984].
(1994-10-20)

fcpga
FC-PGA
{Flip Chip Pin Grid Array}

fcs
FCS
{Frame Check Sequence}

fd leak
{file descriptor leak}

fdc
FDC
{Floppy Disk Controller}

fddi
FDDI
{Fiber Distributed Data Interface}

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

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
FDMA
{frequency division multiple access}

fdse
FDSE
{full-duplex Switched Ethernet}

fdsp
FDSP
{full-duplex speaker phone}

fdt
FDT
{Formal Description Technique}

fdx
{full-duplex}

fea
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}).
[{Jargon File}]
(1994-12-06)

feasible
[algorithm] A description of an {algorithm} that takes {polynomial} time (that is, for a problem set of size N, the resources required to solve the problem can be expressed as some polynomial involving N).
Problems that are "feasible" are said to be "in P" where P is polynomial time. Problems that are "possible" but not "feasible" are said to be "in NP".
(2001-04-12)

feature
[jargon] 1. A good property or behaviour (as of a program). Whether it was intended or not is immaterial.
2. An intended property or behaviour (as of a program). Whether it is good or not is immaterial (but if bad, it is also a {misfeature}).
3. A surprising property or behaviour; in particular, one that is purposely inconsistent because it works better that way - such an inconsistency is therefore a {feature} and not a {bug}. This kind of feature is sometimes called a {miswart}.
4. A property or behaviour that is gratuitous or unnecessary, though perhaps also impressive or cute. For example, one feature of {Common LISP}'s "format" function is the ability to print numbers in two different Roman-numeral formats (see {bells, whistles, and gongs}).
5. A property or behaviour that was put in to help someone else but that happens to be in your way.
6. A bug that has been documented. To call something a feature sometimes means the author of the program did not consider the particular case, and that the program responded in a way that was unexpected but not strictly incorrect. A standard joke is that a bug can be turned into a {feature} simply by documenting it (then theoretically no one can complain about it because it's in the manual), or even by simply declaring it to be good. "That's not a bug, that's a feature!" is a common catch-phrase. Apparently there is a Volkswagen Beetle in San Francisco whose license plate reads "FEATURE".
See also {feetch feetch}, {creeping featurism}, {wart}, {green lightning}.
The relationship among bugs, features, misfeatures, warts and miswarts might be clarified by the following hypothetical exchange between two hackers on an airliner:
A: "This seat doesn't recline."
B: "That's not a bug, that's a feature. There is an emergency exit door built around the window behind you, and the route has to be kept clear."
A: "Oh. Then it's a misfeature; they should have increased the spacing between rows here."
B: "Yes. But if they'd increased spacing in only one section it would have been a wart - they would've had to make nonstandard-length ceiling panels to fit over the displaced seats."
A: "A miswart, actually. If they increased spacing throughout they'd lose several rows and a chunk out of the profit margin. So unequal spacing would actually be the Right Thing."
B: "Indeed."
"Undocumented feature" is a common euphemism for a {bug}.
7. An attribute or function of a {class} in {Eiffel}.
[{Jargon File}]
(1995-10-22)

feature creature
[Possibly from slang "creature feature" for a horror movie] 1. One who loves to add features to designs or programs, perhaps at the expense of coherence, concision or {taste}.
2. Alternately, a mythical being that induces otherwise rational programmers to perpetrate such crocks. See also {feeping creaturism}, {creeping featurism}.
[{Jargon File}]

feature creep
{creeping featurism}

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 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.
[{Jargon File}]
(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.
[{Jargon File}]

featurectomy
/fee"ch*r-ek"t*-mee/ The act of removing a {feature} from a program. Featurectomies come in two flavours, the "righteous" and the "reluctant". Righteous featurectomies are performed because the remover believes the program would be more elegant without the feature, or there is already an equivalent and better way to achieve the same end. (Doing so is not quite the same thing as removing a {misfeature}.) Reluctant featurectomies are performed to satisfy some external constraint such as code size or execution speed.
[{Jargon File}]
(1994-10-20)

fec
FEC
{Forward Error Correction}

federal geographic data committee
Federal Geographic Data Committee
(FGDC)
{(ftp://fgdc.er.usgs.gov/gdc/html/fgdc.html)}.
[Summary?]
(1995-03-06)

federal information exchange
Federal Information Exchange
[networking] (FIX) One of the connection points between the American governmental {internets} and the {Internet}.
(2001-05-14)

federal information processing standards
Federal Information Processing Standards
[standard] (FIPS) United States Government technical {standards} published by the {National Institute of Standards and Technology} (NIST). NIST develops FIPS when there are compelling Federal government requirements such as for security and {interoperability} but no acceptable industry standards or solutions.
Computer-related products bought by the US Government must conform to FIPS.
(2003-06-04)

federal networking council
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 limited
Federation Against Software Theft Limited
[body, legal] (FAST) A non-profitmaking organisation, formed in 1984 by the software industry with the aim of eradicating {software theft} in the UK. 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.
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.
{FAST Home (http://www.fast.org.uk/)}.
E-mail: [fast@fast.org].
Telephone: +44 (0) 1628 622 121.
Address: Clivemont House, 54 Clivemont Road, Maidenhead, Berks SL6 7BZ, UK.
(2003-06-17)

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)

feedforward
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
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}.
[{Jargon File}]

feeper
/fee'pr/ The device in a terminal or workstation (usually a loudspeaker of some kind) that makes the {feep} sound.

feeping creature
[{feeping creaturism}] An unnecessary feature; a bit of {chrome} that, in the speaker's judgment, is the camel's nose for a whole horde of new features.
[{Jargon File}]

feeping creaturism
/fee'ping kree"ch*r-izm/ A deliberate spoonerism for {creeping featurism}, meant to imply that the system or program in question has become a misshapen creature of hacks. This term isn"t really well defined, but it sounds so neat that most hackers have said or heard it. It is probably reinforced by an image of terminals prowling about in the dark making their customary noises.

fel
FEL
Function Equation Language. Programs are sets of definitions. Sequences are lists stored in consecutive memory. "FEL Programmer's Guide", R. M. Keller, AMPS TR 7, U Utah, March 1982.

femto
-
{prefix}

fence
1. A sequence of one or more distinguished ({out-of-band}) characters (or other data items), used to delimit a piece of data intended to be treated as a unit (the computer-science literature calls this a "sentinel"). The NUL (ASCII 0000000) character that terminates strings in C is a fence. {Hex} FF is also (though slightly less frequently) used this way. See {zigamorph}.
2. An extra data value inserted in an array or other data structure in order to allow some normal test on the array's contents also to function as a termination test. For example, a highly optimised routine for finding a value in an array might artificially place a copy of the value to be searched for after the last slot of the array, thus allowing the main search loop to search for the value without having to check at each pass whether the end of the array had been reached.
3. [among users of optimising compilers] Any technique, usually exploiting knowledge about the compiler, that blocks certain optimisations. Used when explicit mechanisms are not available or are overkill. Typically a hack: "I call a dummy procedure there to force a flush of the optimiser's register-colouring info" can be expressed by the shorter "That's a fence procedure".
[{Jargon File}]
(1999-01-08)

fencepost error
1. (Rarely "lamp-post error") A problem with the discrete equivalent of a {boundary condition}, often exhibited in programs by iterative loops. From the following problem: "If you build a fence 100 feet long with posts 10 feet apart, how many posts do you need?" (Either 9 or 11 is a better answer than the obvious 10).
For example, suppose you have a long list or array of items, and want to process items m through n; how many items are there? The obvious answer is n - m, but that is off by one; the right answer is n - m + 1. The "obvious" formula exhibits a fencepost error.
See also {zeroth} and note that not all {off-by-one errors} are fencepost errors. The game of Musical Chairs involves a catastrophic off-by-one error where N people try to sit in N - 1 chairs, but it's not a fencepost error. Fencepost errors come from counting things rather than the spaces between them, or vice versa, or by neglecting to consider whether one should count one or both ends of a row.
2. (Rare) An error induced by unexpected regularities in input values, which can (for instance) completely thwart a theoretically efficient {binary tree} or {hash coding} implementation. The error here involves the difference between expected and worst case behaviours of an {algorithm}.
[{Jargon File}]
(1994-12-01)

fepped out
[jargon] /fept owt/ The {Symbolics 3600} {LISP Machine} has a {Front-End Processor} (FEP). When the main processor gets {wedged}, the FEP takes control of the keyboard and screen. Such a machine is said to have "fepped out" or "dropped into the fep".
[{Jargon File}]
(1994-12-01)

feprom
FEPROM
{Flash Erasable Programmable Read-Only Memory}

fermat prime
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 f100l
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 RAM
{Ferroelectric Random Access Memory}

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
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}.
Current version: 2.1.2.
Fetch is Copyright 1992, Trustees of Dartmouth College.
{(ftp://ftp.Dartmouth.edu/pub/mac/Fetch_2.1.2.sit.hqx)}. {(ftp://src.doc.ic.ac.uk/computing/systems/mac/info-mac/comm/tcp)}.
(1994-11-30)

fetchexecute cycle
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
FF
{form feed}

ffccc
{Floppy} {Fortran} coding convention checker.

ffp
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
FFT
{Fast Fourier Transform}

fgdc
FGDC
{Federal Geographic Data Committee}

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

fgllv
FGL+LV
["Functional Programming and the Logical Variable", G. Lindstrom, POPL 1985, pp. 266-280].
(1994-11-30)

fgraal
FGRAAL
Fortran extended GRAph Algorithmic Language. A Fortran extension for handling sets and graphs. "On a Programming Language for Graph Algorithms", W.C. Rheinboldt et al, BIT 12(2) 1972.

fgrep
[tool] A variant of the {Unix} {grep} command which searches for fixed (uninterpreted) strings rather than {regular expressions}. Surprisingly, this is not always faster.
(1996-10-27)

fhg
FhG
{Fraunhofer Gesellschaft}

fhs
FHS
{Filesystem Hierarchy Standard}

fi
[networking] The {country code} for Finland.
(1999-01-27)

fiber distributed data interface
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
Fiber Optic InterRepeater Link
[networking] (FOIRL) An older standard of {fiber optic} guides used for carrying 10 MBps {Ethernet}. The maximum length of a {segment} is 1 km. A FOIRL {multiport repeater} and transceivers are necessary to carry the signal to multiple devices.
The more recent version of Ethernet over fiber optic cables is {10baseFL} with a maximum segment length of 2 km.
(1998-06-28)

fiber optics
[spelling] US spelling of "fibre optics". See {optical fibre}.
(1997-03-31)

fibonacci sequence
Fibonacci sequence
[mathematics] The {infinite} sequence of numbers beginning
1, 1, 2, 3, 5, 8, 13, ...
in which each term is the sum of the two terms preceding it.
The ratio of successive Fibonacci terms tends to the {golden ratio}, namely (1 + sqrt 5)/2.
[Why not "Fibonacci {series}"?]
(2002-10-15)

fibre channel
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 channelarbitrated loop
Fibre Channel-Arbitrated Loop
[hardware, standard] (FC-AL) A fast serial bus interface standard intended to replace {SCSI} on high-end {servers}.
FC-AL has a number of advantages over SCSI. It offers higher speed: the base speed is 100 {megabytes} per second, with 200, 400, and 800 planned. Many devices are dual ported, i.e., can be accessed through two independent ports, which doubles speed and increases fault tolerance. Cables can be as long as 30 m (coaxial) or 10 km (optical). FC-AL enables {self-configuring} and {hot swapping} and the maximum number of devices on a single port is 126. Finally, it provides software compatibility with SCSI.
Despite all these features FC-AL is unlikely to appear on desktops anytime soon, partly because its price, partly because typical {desktop computers} would not take advantage of many of the advanced features. On these systems {FireWire} has more potential.
[Current status? Reference?]
(1999-09-12)

fibre optics
{optical fibre}

fidil
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
FIDO
FInite DOmains. A constraint language implemented on top of Prolog.
{(ftp://ftp.uni-kl.de/pub1/Unix/languages/fido/)}.

fidonet
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.
[{Jargon File}]

field
[data, database] An area of a {database} {record}, or {graphical user interface} {form}, into which a particular item of data is entered.
Example usage: "The telephone number field is not really a numerical field", "Why do we need a four-digit field for the year?".
A {database} {column} is the set of all instances of a given field from all records in a {table}.
(1999-04-26)

field circus
A derogatory pun on "field service". The field service organisation of any hardware manufacturer, but especially {DEC}. There is an entire genre of jokes about DEC field circus engineers:
Q: How can you recognise a DEC field circus engineer with a flat tire?
A: He's changing one tire at a time to see which one is flat.
Q: How can you recognise a DEC field circus engineer who is out of gas?
A: He's changing one tire at a time to see which one is flat.
See {Easter egging} for additional insight on these jokes.
There is also the "Field Circus Cheer" (from the {plan file} for {DEC} on MIT-AI):
Maynard! Maynard! Don't mess with us! We're mean and we're tough! If you get us confused We'll screw up your stuff.
(DEC's service HQ is located in Maynard, Massachusetts).
[{Jargon File}]
(1994-12-01)

field effect transistor
[electronics] (FET) A {transistor} with a region of {donor} material with two terminals called the "source" and the "drain", and an adjoining region of {acceptor} material between, called the "gate". The voltage between the gate and the {substrate} controls the current flow between source and drain by depleting the donor region of its charge carriers to greater or lesser extent.
There are two kinds of FET's, {Junction FETs} and {MOSFETs}.
Because no current (except a minute leakage current) flows through the gate, FETs can be used to make circuits with very low power consumption.
Contrast {bipolar transistor}.
(1995-10-05)

field mouse
{wireless mouse}

field servoid
[jargon, abuse] /fee'ld ser'voyd/ A play on "android", a derogatory term for a representative of a field service organisation (see {field circus}), suggesting an unintelligent rule-driven approach to servicing computer hardware.
[{Jargon File}]
(2003-02-03)

fieldprogrammable gate array
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)

fifo
FIFO
{first-in first-out}

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

fightonet
Fight-o-net
[messaging] A distortion of {FidoNet}, often applied after a flurry of {flamage} in a particular {echo}, especially the SYSOP echo or Fidonews (see {'Snooze}).
[{Jargon File}]
(1996-11-04)

file
[file system] An element of data storage in a {file system}.
The history of computing is rich in varied kinds of files and {file systems}, whether ornate (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 Allocation Table
[file system] (FAT) The component of an {MS-DOS} or {Windows 95} {file system} which describes the {files}, {directories}, and free space on a {hard disk} or {floppy disk}.
A disk is divided into {partitions}. Under the FAT {file system} each partition is divided into {clusters}, each of which can be one or more {sectors}, depending on the size of the partition. Each cluster is either allocated to a file or directory or it is free (unused). A directory lists the name, size, modification time and starting cluster of each file or subdirectory it contains.
At the start of the partition is a table (the FAT) with one entry for each cluster. Each entry gives the number of the next cluster in the same file or a special value for "not allocated" or a special value for "this is the last cluster in the chain". The first few clusters after the FAT contain the {root directory}.
The FAT file system was originally created for the {CP/M}[?] {operating system} where files were catalogued using 8-bit addressing. {MS DOS}'s FAT allows only {8.3} filenames.
With the introduction of MS-DOS 4 an incompatible 16-bit FAT (FAT16) with 32-kilobyte {clusters} was introduced that allowed {partitions} of up to 2 gigabytes.
Microsoft later created {FAT32} to support partitions larger than two gigabytes and {pathnames} greater that 256 characters. It also allows more efficient use of disk space since {clusters} are four kilobytes rather than 32 kilobytes. FAT32 was first available in {OEM} Service Release 2 of {Windows 95} in 1996. It is not fully {backward compatible} with the 16-bit and 8-bit FATs.
{IDG article
(http://www.idg.net/idgframes/english/content.cgi?vc=docid_9-62525.html)}. {(http://home.c2i.net/tkjoerne/os/fat.htm)}. {(http://www.teleport.com/~brainy/)}. {(http://209.67.75.168/hardware/fatgen.htm)}. {(http://support.microsoft.com/support/kb/articles/q154/9/97.asp)}.
Compare: {NTFS}.
[How big is a FAT? Is the term used outside MS DOS? How long is a FAT16 filename?]
(2000-02-05)

file attach
File Attach
[FidoNet] 1. A file sent along with a mail message from one BBS to another.
2. Sending someone a file by using the File Attach option in a BBS mailer.
[{Jargon File}]

file composition
File Composition
A typesetting language.
["File Composition System Reference Manual", No. 90388, Information Intl].

file compression
[algorithm] The {compression} of data in a file, usually to reduce storage requirements.
(1995-04-06)

file control block
[operating system] (FCB) An {MS-DOS} data structure that stores information about an open file. The number of FCBs is configured in {CONFIG.SYS} with a command
FCBS=x,y
where x (between 1 and 255 inclusive, default 4) specifies the number of file control blocks to allocate and therefore the number of files that MS-DOS can have open at one time. y (not needed from DOS 5.0 onward) specifies the number of files to be closed automatically if all x are in use.
(1995-03-21)

file descriptor
[programming, operating system] An integer that identifies an open {file} within a {process}. This number is obtained as a result of opening a file. Operations which read, write, or close a file would take the file descriptor as an input parameter.
In many {operating system} implementations, file descriptors are small integers which index a table of open files. In {Unix}, file descriptors 0, 1 and 2 correspond to the {standard input}, {standard output} and {standard error} files respectively.
See {file descriptor leak}.
(1998-02-06)

file descriptor leak
[programming] (Or "fd leak" /F D leek/) A kind of programming {bug} analogous to a {core leak}, in which a program fails to close {file descriptors} ("fd"s) after file operations are completed, and thus eventually runs out of them.
See {leak}.
(1994-11-30)

file extension
{filename extension}

file request
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.
[{Jargon File}]
(1995-01-05)

file separator
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
File Service Protocol
[protocol] (FSP) A {protocol}, similar to {FTP}, for copying {files} between computers. It's designed for {anonymous archives}, and has protection against {server} and {network} overloading. It doesn't use connections so it can survive interruptions in service.
Until 1993-08-12, FSP didn't stand for anything. Wen-King was responsible for the initials and Michael Grubb [mg@ac.duke.edu] for their eventual expansion. Other suggestions were "File Slurping Protocol", "Flaky Stream Protocol" and "FTP's Sexier Partner".
{FAQ (ftp://ftp.germany.eu.net/pub/networking/inet/fsp/fsp-faq/)}.
[fsp-faq, 1993-08-12].
(1997-12-07)

file signature
A {magic number}.
[{Jargon File}]

file system
[operating system] (FS, or "filesystem") 1. A system for organizing {directories} and {files}, generally in terms of how it is implemented in the {disk operating system}. E.g., "The {Macintosh file system} is just dandy as long as you don't have to interface it with any other file systems".
2. The collection of files and directories stored on a given drive (floppy drive, hard drive, disk {partition}, {logical} drive, {RAM drive}, etc.). E.g., "mount attaches a named file system to the file system hierarchy at the pathname location directory [...]" -- {Unix manual page} for "mount(8)".
As an extension of this sense, "file system" is sometimes used to refer to the representatation of the file system's organisation (e.g. its {file allocation table}) as opposed the actual content of the files in the file system.
{Unix manual page}: fs(5), mount(8).
(1997-04-10)

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

filemaker
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
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 systems} use filename extensions, e.g. {Unix}, {VMS}, {MS-DOS}, {Microsoft Windows}. They are usually from one to three letters (some sad old OSes support no more than three). Examples include "c" for {C} {source code}, "ps" for {PostScript}, "txt" for arbitrary text.
{NEXTSTEP} and its descendants also use extensions on directories for a similar purpose.
Apart from informing the user what type of content the file holds, filename extensions are typically used to decide which program to launch when a file is "run", e.g. by double-clicking it in a {GUI} {file browser}. They are also used by {Unix}'s {make} to determine how to build one kind of file from another.
Compare: {MIME type}.
{Tony Warr's comprehensive list (http://camalott.com/~rebma/filex.html)}.
{FAQS.org Graphics formats (http://www.faqs.org/faqs/graphics/fileformats-faq/)}.
(2002-04-19)

filenet
FileNet
[storage] A system for storage of {images} on laser disk using {COLD}.
(1995-11-09)

filesystem hierarchy standard
Filesystem Hierarchy Standard
[storage, standard] (FHS) A {standard} designed to be used by {Unix} {distribution} developers, {package} developers, and system implementors.
FHS consists of a set of {requirements} and guidelines for file and directory placement under {UNIX}-like {operating systems}.
The {guidelines} are intended to support interoperability of applications, system administration tools, development tools, and scripts. These systems should also be supported with greater documentation uniformity.
The standard is primarily intended to be a reference and is not a tutorial on how to manage a Unix filesystem or directory hierarchy.
{Home (http://www.pathname.com/fhs/)}.
{RedHat deviation (http://www.redhat.com/corp/support/manuals/RHL-6.0-Manual/install-guide/manual/doc084.html)}.
(2001-05-24)

filing system
{file system}

filk
/filk/ [SF fandom, where a typo for "folk" was adopted as a new word] A popular or folk song with lyrics revised or completely new lyrics, intended for humorous effect when read, and/or to be sung late at night at SF conventions. There is a flourishing subgenre of these called "computer filks", written by hackers and often containing rather sophisticated technical humour. See {double bucky} for an example. Compare {grilf}, {hing} and {newsfroup}.
[{Jargon File}]

fillout form
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/overview.html)}.
(1998-03-24)

film at 11
[jargon] (MIT, in parody of US TV newscasters) 1. Used in conversation to announce ordinary events, with a sarcastic implication that these events are earth-shattering. "{ITS} crashes; film at 11." "Bug found in scheduler; film at 11."
2. Also widely used outside MIT to indicate that additional information will be available at some future time, *without* the implication of anything particularly ordinary about the referenced event. For example, "The mail file server died this morning; we found garbage all over the root directory. Film at 11." would indicate that a major failure had occurred but that the people working on it have no additional information about it as yet; use of the phrase in this way suggests gently that the problem is liable to be fixed more quickly if the people doing the fixing can spend time doing the fixing rather than responding to questions, the answers to which will appear on the normal "11:00 news", if people will just be patient.
[{Jargon File}]
(1998-03-24)

filo
FILO
{stack}

filtabyte
Filtabyte
[networking, hardware] An {Ethernet controller} card made by {LRT} based on the {LANCE} and {SIA}. It uses {DMA}. Its {Ethernet address} can be changed by software.
(1994-12-01)

filter
1. (Originally {Unix}, now also {MS-DOS}) A program that processes an input data stream into an output data stream in some well-defined way, and does no I/O to anywhere else except possibly on error conditions; one designed to be used as a stage in a {pipeline} (see {plumbing}). Compare {sponge}.
2. ({functional programming}) A {higher-order function} which takes a {predicate} and a list and returns those elements of the list for which the predicate is true. In {Haskell}:
filter p [] = [] filter p (x:xs) = if p x then x : rest else rest where rest = filter p xs
See also {filter promotion}.
[{Jargon File}]

filter promotion
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
FIMS
Form Interface Management System.

finagles law
Finagle's Law
[humour] The generalised or "folk" version of {Murphy's Law}, fully named "Finagle's Law of Dynamic Negatives" and usually rendered "Anything that can go wrong, will". One variant favoured among hackers is "The perversity of the Universe tends toward a maximum".
The label "Finagle's Law" was popularised by SF author Larry Niven in several stories depicting a frontier culture of asteroid miners; this "Belter" culture professed a religion and/or running joke involving the worship of the dread god Finagle and his mad prophet Murphy.
[{Jargon File}]
(1995-12-14)

financial information exchange
Financial Information eXchange
[business, protocol] (FIX) A {standard} messaging {protocol} for the {real-time} electronic exchange of securities transactions.
[Reference?]
(2001-05-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] A {Unix} program that displays information about a particular user or all users logged on the system, or a remote system. Finger typically shows full name, last login time, idle time, terminal line, and terminal location (where applicable). It may also display a {plan file} left by the user (see also {Hacking X for Y}). Some versions take a "-l" (long) argument which yields more information.
[{Jargon File}]
(2002-10-06)

fingerpointing syndrome
finger-pointing syndrome
[programming] All-too-frequent result of {bugs}, especially in new or experimental configurations. The hardware vendor points a finger at the software. The software vendor points a finger at the hardware. All the poor users get is the finger.
[{Jargon File}]
(1995-12-14)

finite
{compact}

finite automata
Finite Automata
{Finite State Machine}

finite automaton
Finite Automaton
{Finite State Machine}

finite differencing
{strength reduction}

finite impulse response
Finite Impulse Response
[electronics, DSP] (FIR) A type of {digital signal} {filter}, in which every {sample} of output is the weighted sum of past and current samples of input, using only some finite number of past samples.
(2001-06-06)

finite state automata
Finite State Automata
{Finite State Machine}

finite state automaton
Finite State Automaton
{Finite State Machine}

finite state machine
Finite State Machine
[mathematics, algorithm, theory] (FSM or "Finite State Automaton", "transducer") An {abstract machine} consisting of a set of {states} (including the initial state), a set of input events, a set of output events, and a state transition function. The function takes the current state and an input event and returns the new set of output events and the next state. Some states may be designated as "terminal states". The state machine can also be viewed as a function which maps an ordered sequence of input events into a corresponding sequence of (sets of) output events.
A {deterministic} FSM (DFA) is one where the next state is uniquely determinied by a single input event. The next state of a {nondeterministic} FSM (NFA) depends not only on the current input event, but also on an arbitrary number of subsequent input events. Until these subsequent events occur it is not possible to determine which state the machine is in.
It is possible to automatically translate any nondeterministic FSM into a deterministic one which will produce the same output given the same input. Each state in the DFA represents the set of states the NFA might be in at a given time.
In a probabilistic FSM [proper name?], there is a predetermined {probability} of each next state given the current state and input (compare {Markov chain}).
The terms "acceptor" and "transducer" are used particularly in language theory where automata are often considered as {abstract machines} capable of recognising a language (certain sequences of input events). An acceptor has a single {Boolean} output and accepts or rejects the input sequence by outputting true or false respectively, whereas a transducer translates the input into a sequence of output events.
FSMs are used in {computability theory} and in some practical applications such as {regular expressions} and digital logic design.
See also {state transition diagram}, {Turing Machine}.
[J.H. Conway, "regular algebra and finite machines", 1971, Eds Chapman & Hall].
[S.C. Kleene, "Representation of events in nerve nets and finite automata", 1956, Automata Studies. Princeton].
[Hopcroft & Ullman, 1979, "Introduction to automata theory, languages and computations", Addison-Wesley].
[M. Crochemore "tranducters and repetitions", Theoritical. Comp. Sc. 46, 1986].
(2001-09-22)

finn
[jargon, chat] To pull rank on somebody based on the amount of time one has spent on {IRC}. The term derives from the fact that IRC was originally written in Finland in 1987.
[{Jargon File}]
(2000-08-05)

fips
FIPS
{Federal Information Processing Standards}

fir
FIR
1. [electronics] {Finite Impulse Response} (filter).
2. [standard] Fast Infrared. {Infrared} standard from {IrDA}, part of {IrDA Data}. FIR supports {synchronous} communications at 4 Mbps (and 1.115 Mbps?), at a distance of up to 1 metre.
(1999-10-14)

firebottle
{electron tube}

firefighting
1. What sysadmins have to do to correct sudden operational problems. An opposite of hacking. "Been hacking your new newsreader?" "No, a power glitch hosed the network and I spent the whole afternoon fighting fires."
2. The act of throwing lots of manpower and late nights at a project, especially to get it out before deadline. See also {gang bang}, {Mongolian Hordes technique}; however, the term "firefighting" connotes that the effort is going into chasing bugs rather than adding features.
(1994-12-01)

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}.
[{Jargon File}]

firewall
1. {firewall code}.
2. {firewall machine}.

firewall code
1. The code you put in a system (say, a telephone switch) to make sure that the users can't do any damage. Since users always want to be able to do everything but never want to suffer for any mistakes, the construction of a firewall is a question not only of defensive coding but also of interface presentation, so that users don't even get curious about those corners of a system where they can burn themselves.
2. Any sanity check inserted to catch a {can't happen} error. Wise programmers often change code to fix a bug twice: once to fix the bug, and once to insert a firewall which would have arrested the bug before it did quite as much damage.
[{Jargon File}]

firewall machine
[networking] 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
FireWire
{High Performance Serial Bus}

fireworks mode
The mode a machine is sometimes said to be in when it is performing a {crash and burn} operation.
[{Jargon File}]

firmware
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
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 normal form
{database normalisation}

first party dma
First Party DMA
{bus mastering}

firstin firstout
first-in first-out
[algorithm] (FIFO, or "queue") A data structure or hardware buffer from which items are taken out in the same order they were put in. Also known as a "shelf" from the analogy with pushing items onto one end of a shelf so that they fall off the other. A FIFO is useful for buffering a stream of data between a sender and receiver which are not synchronised - i.e. not sending and receiving at exactly the same rate. Obviously if the rates differ by too much in one direction for too long then the FIFO will become either full ({block}ing the sender) or empty ({block}ing the receiver). A {Unix} {pipe} is a common example of a FIFO.
A FIFO might be (but isn't ever?) called a LILO - last-in last-out. The opposite of a FIFO is a LIFO (last-in first-out) or "{stack}".
(1999-12-06)

firstorder
first-order
Not {higher-order}.
(1995-03-06)

firstorder logic
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)

fish
(Adelaide University, Australia) 1. Another {metasyntactic variable}. See {foo}. Derived originally from the Monty Python skit in the middle of "The Meaning of Life" entitled "Find the Fish".
2. [storage] microfiche. A microfiche file cabinet may be referred to as a "fish tank".
[{Jargon File}]
(1994-12-01)

fish queue
FISH queue
[humour] (By analogy with {FIFO} - first-in, first-out) first in, still here.
A joking way of pointing out that processing of a particular sequence of events or requests has stopped dead. Also "FISH mode" and "FISHnet"; the latter may be applied to any network that is running really slowly or exhibiting extreme flakiness.
[{Jargon File}]
(1994-12-01)

fitnr
FITNR
({Thinking Machines, Inc.}) Fixed In the Next Release.
A written-only notation attached to bug reports. Often wishful thinking.
[{Jargon File}]
(1994-12-01)

fits
FITS
Flexible Image Transport System. The standard data interchange and archive format of the astronomy community.
(1994-12-01)

fix
FIX
1. [networking] {Federal Information Exchange}.
2. [business, protocol] {Financial Information eXchange}.
(2001-05-14)

fix
1. [mathematics] The {fixed point} {combinator}. Called Y in {combinatory logic}. Fix is a {higher-order function} which returns a fixed point of its argument (which is a function).
fix :: (a -] a) -] a fix f = f (fix f)
Which satisfies the equation
fix f = x such that f x = x.
Somewhat surprisingly, fix can be defined as the non-recursive {lambda abstraction}:
fix = \ h . (\ x . h (x x)) (\ x . h (x x))
Since this involves self-application, it has an {infinite type}. A function defined by
f x1 .. xN = E
can be expressed as
f = fix (\ f . \ x1 ... \ xN . E) = (\ f . \ x1 ... \xN . E) (fix (\ f . \ x1 ... \ xN . E)) = let f = (fix (\ f . \ x1 ... \ xN . E)) in \ x1 ... \xN . E
If f does not occur {free} in E (i.e. it is not {recursive}) then this reduces to simply
f = \ x1 ... \ xN . E
In the case where N = 0 and f is free in E, this defines an infinite data object, e.g.
ones = fix (\ ones . 1 : ones) = (\ ones . 1 : ones) (fix (\ ones . 1 : ones)) = 1 : (fix (\ ones . 1 : ones)) = 1 : 1 : ...
Fix f is also sometimes written as mu f where mu is the Greek letter or alternatively, if f = \ x . E, written as mu x . E.
Compare {quine}.
[{Jargon File}]
(1995-04-13)
2. {bug fix}.
(1998-06-25)

fixed disk
[storage] A {hard disk} which is not a {removable disk}.

fixed point
[mathematics] The fixed point of a function, f is any value, x for which f x = x. A function may have any number of fixed points from none (e.g. f x = x+1) to infinitely many (e.g. f x = x). The {fixed point combinator}, written as either "fix" or "Y" will return the fixed point of a function.
See also {least fixed point}.
(1995-04-13)

fixed point combinator
[mathematics] (Y) The name used in {combinatory logic} for the {fixed point} function, also written as "{fix}".
(1994-10-20)

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

fixedwidth
fixed-width
{record}

fixme
FIXME
[programming] A standard tag often put in {comments} near a piece of code that needs work. The point of doing so is that a {grep} or a similar pattern-matching tool can find all such places quickly. This is common in {GNU} code. Compare {XXX}.
[{Jargon File}]
(2001-03-16)

fixpoint
{fixed point}

fj
[networking] The {country code} for Fiji.
(1999-01-27)

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

fl
F+L
[language] Functions plus Logic. Equational clauses within function definitions to solve for {logic variable} bindings.
["Functions plus Logic in Theory and Practice", R.B. Kieburtz, Feb 1987, unpublished].
(1994-10-20)

flag
1. [programming] A variable or quantity that can take on one of two values; a bit, particularly one that is used to indicate one of two outcomes or is used to control which of two things is to be done. "This flag controls whether to clear the screen before printing the message." "The program status word contains several flag bits." See also {hidden flag}, {mode bit}.
2. {command line option}.
[{Jargon File}]
(1998-05-02)

flag day
[jargon] A software change that is neither forward- nor backward-compatible, and which is costly to make and costly to reverse. E.g. "Can we install that without causing a flag day for all users?"
This term has nothing to do with the use of the word {flag} to mean a variable that has two values. It came into use when a massive change was made to the {Multics} {time-sharing} system to convert from the old {ASCII} code to the new one; this was scheduled for Flag Day (a US holiday), June 14, 1966.
See also {backward combatability}, {lock-in}.
[{Jargon File}]
(1998-01-15)

flair
FLAIR
[language] An early system on the {IBM 650}.
[Listed in CACM 2(5):16 (May 1959)].
(1995-03-17)

flaky
(Or "flakey") Subject to frequent {lossage}. This use is of course related to the common slang use of the word to describe a person as eccentric, crazy, or just unreliable. A system that is flaky is working, sort of - enough that you are tempted to try to use it - but fails frequently enough that the odds in favour of finishing what you start are low. Commonwealth hackish prefers {dodgy}.
[{Jargon File}]
(1996-01-05)

flamage
{flame}

flame
[messaging] To rant, to speak or write incessantly and/or rabidly on some relatively uninteresting subject or with a patently ridiculous attitude or with hostility toward a particular person or group of people. "Flame" is used as a verb ("Don't flame me for this, but..."), a flame is a single flaming message, and "flamage" /flay'm*j/ the content.
Flamage may occur in any medium (e.g. spoken, {electronic mail}, {Usenet} news, {World-Wide Web}). Sometimes a flame will be delimited in text by marks such as "[flame on]...[flame off]".
The term was probably independently invented at several different places.
Mark L. Levinson says, "When I joined the Harvard student radio station (WHRB) in 1966, the terms flame and flamer were already well established there to refer to impolite ranting and to those who performed it. Communication among the students who worked at the station was by means of what today you might call a paper-based Usenet group. Everyone wrote comments to one another in a large ledger. Documentary evidence for the early use of flame/flamer is probably still there for anyone fanatical enough to research it."
It is reported that "flaming" was in use to mean something like "interminably drawn-out semi-serious discussions" (late-night bull sessions) at Carleton College during 1968-1971.
{Usenetter} Marc Ramsey, who was at {WPI} from 1972 to 1976, says: "I am 99% certain that the use of "flame" originated at WPI. Those who made a nuisance of themselves insisting that they needed to use a {TTY} for "real work" came to be known as "flaming asshole lusers". Other particularly annoying people became "flaming asshole ravers", which shortened to "flaming ravers", and ultimately "flamers". I remember someone picking up on the Human Torch pun, but I don't think "flame on/off" was ever much used at WPI." See also {asbestos}.
It is possible that the hackish sense of "flame" is much older than that. The poet Chaucer was also what passed for a wizard hacker in his time; he wrote a treatise on the astrolabe, the most advanced computing device of the day. In Chaucer's "Troilus and Cressida", Cressida laments her inability to grasp the proof of a particular mathematical theorem; her uncle Pandarus then observes that it's called "the fleminge of wrecches." This phrase seems to have been intended in context as "that which puts the wretches to flight" but was probably just as ambiguous in Middle English as "the flaming of wretches" would be today. One suspects that Chaucer would feel right at home on {Usenet}.
[{Jargon File}]
(2001-03-11)

flame bait
[messaging] A {Usenet} posting or other message intended to trigger a {flame war}, or one that invites {flames} in reply.
[{Jargon File}]
(1998-05-27)

flame off
{flame on}

flame on
[messaging, jargon] To begin or continue to {flame}. The punning reference to Marvel Comics's Human Torch is no longer widely recognised.
The phrase "flame on" may actually precede the flame, in which case "flame off" will follow it.
See {rave}, {burble}.
[{Jargon File}]
(1996-10-29)

flame war
[messaging, jargon] An acrimonious dispute conducted on a public electronic forum such as {Usenet}. See {flame}.
[{Jargon File}]
(1998-05-27)

flamer
[jargon, person] (Or "pain in the net") One who habitually {flames}. Said especially of obnoxious {Usenet} personalities.
[{Jargon File}]
(1996-08-26)

flaming
{flame}

flap
FLAP
A {symbolic mathematics} package for {IBM 360}.
["FLAP Programmer's Manual", A.H. Morris Jr., TR-2558 (1971) US Naval Weapons Lab].
[Sammet 1969, p. 506].
[{Jargon File}]
(1994-10-17)

flap
1. [storage, jargon] To unload a {DECtape} (so it goes flap, flap, flap). Old-time {hackers} at {MIT} tell of the days when the disk was device 0 and {microtapes} were 1, 2, etc. and attempting to flap device 0 would instead start a motor banging inside a cabinet near the disk.
The term is used, by extension, for unloading any magnetic tape. See also {macrotape}. Modern {cartridge tapes} no longer actually flap, but the usage has remained.
The term could well be re-applied to {DEC}'s {TK50} cartridge tape drive, a spectacularly misengineered contraption which makes a loud flapping sound, almost like an old reel-type lawnmower, in one of its many tape-eating failure modes.
2. [networking] See {flapping router}.
[{Jargon File}]
(1997-06-17)

flapping router
[networking] A {router} that transmits routing updates alternately advertising a destination network first via one route, then via a different route.
Flapping routers are identified on more advanced {protocol analysers} such as the Network General (TM) Sniffer.
(1999-08-24)

flarp
/flarp/ [Rutgers University] Yet another {metasyntactic variable} (see {foo}). Among those who use it, it is associated with a legend that any program not containing the word "flarp" somewhere will not work. The legend is discreetly silent on the reliability of programs which *do* contain the magic word.
[{Jargon File}]

flash
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 EPROM
{Flash Erasable Programmable Read-Only Memory}

flash erasable programmable readonly 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 ROM
{Flash Erasable Programmable Read-Only Memory}

flat
1. Lacking any complex internal structure. "That {bitty box} has only a flat file system, not a hierarchical one." The verb form is {flatten}. Usually used pejoratively (at least with respect to file systems).
2. Said of a memory architecture like that of the {VAX} or {Motorola} {680x0} that is one big linear address space (typically with each possible value of a processor register corresponding to a unique address). This is a {Good Thing}. The opposite is a "{segmented}" architecture like that of the {Intel 80x86} in which addresses are composed from a base-register/offset pair. Segmented designs are generally considered cretinous.
3. A flat {domain} is one where all elements except {bottom} are incomparable (equally well defined). E.g. the integers.
[{Jargon File}]

flat address space
[architecture] The memory architecture in which any memory location can be selected from a single contiguous block by a single integer offset.
Almost all popular {processors} have a flat address space, but the {Intel x86} family has a {segmented address space}. A flat address space greatly simplifies programming because of the simple correspondence between addresses (pointers) and integers.
(1996-09-10)

flat ascii
flat ASCII
[text] (Or "plain ASCII") Said of a text file that contains only 7-bit {ASCII} characters and uses only ASCII-standard {control characters} (that is, has no embedded codes specific to a particular text formatter {markup} language, or output device, and no {meta}-characters).
Compare {flat file}.
[{Jargon File}]
(1996-01-26)

flat file
[operating system, storage] A single file containing {flat ASCII} representing or encoding some structure, e.g. 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}.
[{Jargon File}]
(1996-01-26)

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)

flatten
To remove structural information, especially to filter something with an implicit tree structure into a simple sequence of leaves; also tends to imply mapping to {flat ASCII}. "This code flattens an expression with parentheses into an equivalent {canonical} form."
[{Jargon File}]

flavor
[spelling] US spelling of "{flavour}".
[{Jargon File}]
(1997-03-18)

flavorful
{flavour}

flavors
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
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
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
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
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
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
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
FLIP
1. An early {assembly language} on the {G-15}.
[Listed in CACM 2(5):16 (May 1959)].
2. ["FLIP User's Manual", G. Kahn, TR 5, INRIA 1981].
3. Formal LIst Processor.
An early language for {pattern-matching} on {Lisp} structures, similar to {CONVERT}.
["FLIP, A Format List Processor", W. Teitelman, Memo MAC-M-263, MIT 1966].
(1995-01-31)

flip chip pin grid array
Flip Chip Pin Grid Array
[hardware, processor] (FC-PGA) The package of certain {Intel} {Celeron} and {Pentium III} processors. FC-PGA processors fit into {Socket 370} {motherboard} sockets.
The Flip Chip {Pin Grid Array} is similar to {PPGA}, except that the {silicon} {core} is facing up and the {heat slug} is exposed.
FC-PGA packaging is used by Pentium III processors, and Celeron 566 processors onward. Earlier Celeron processors used {PPGA} packaging.
Celeron processors are also available in {Slot 1} {SEPP} packaging and Pentium III processors in Slot 1 {SECC2} packaging.
Adapters are available to allow a PPGA Celeron to plug into a Slot 1 connector.
(2000-08-26)

flipflop
flip-flop
[hardware] A digital logic circuit that can be in one of two states which it switches (or "{toggles}") between under control of its inputs. It can thus be considered as a one bit memory. Three types of flip-flop are common: the {SR flip-flop}, the {JK flip-flop} and the {D-type flip-flop} (or {latch}).
Early literature refers to the "Eccles-Jordan circuit" and the "Eccles-Jordan binary counter", using two {vacuum tubes} as the active (amplifying) elements for each {bit} of information storage. Later implementations using {bipolar transistors} could operate at up to 20 million state transitions per second as early as 1963.
(1995-11-11)

flippy
[storage] /flip'ee/ A single-sided {floppy disk} altered for double-sided use by addition of a second write-notch, so called because it must be flipped over for the second side (the "flip side") to be accessible. Used in the {Commodore 1541} and elsewhere. No longer common.
[{Jargon File}]
(2000-03-07)

flipspur
FLIP-SPUR
Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959).

floating point underflow
{underflow}

floating underflow
{underflow}

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

floatingpoint accelerator
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)

floatingpoint specbaserate
Floating-Point SPECbaserate
{SPECrate_base_fp92}

floatingpoint specbaseratio
Floating-Point SPECbaseratio
{SPECbase_fp92}

floatingpoint specrate
Floating-Point SPECrate
{SPECrate_fp92}

floatingpoint specratio
Floating-Point SPECratio
{SPECfp92}

floatingpoint unit
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)

flogic
F-Logic
An {object-oriented} language and {deductive database} system.
["F-Logic: A Higher-Order Language for Reasoning about Objects, Inheritance and Scheme", ACM SIGMOD May 1989, pp. 134-146].
(1994-10-20)

flood
[chat] On a real-time network (whether at the level of {TCP/IP}, or at the level of, say, {IRC}), to send a huge amount of data to another user (or a group of users, in a channel) in an attempt to annoy him, lock his terminal, or to overflow his network buffer and thus lose his network connection.
The basic principles of flooding are that you should have better network {bandwidth} than the person you're trying to flood, and that what you do to flood them (e.g., generate ping requests) should be *less* resource-expensive for your machine to produce than for the victim's machine to deal with. There is also the corrolary that you should avoid being caught.
Failure to follow these principles regularly produces hilarious results, e.g., an IRC user flooding himself off the network while his intended victim is unharmed, the attacker's flood attempt being detected, and him being banned from the network in semi-perpetuity.
See also {pingflood}, {clonebot} and {botwar}.
[{Jargon File}]
(1997-04-07)

flop
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
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
FLOPS
{Floating-point} operations per second.

flops
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
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}.
[{Jargon File}]
(1994-12-01)

flow control
[communications, protocol] The collection of techniques used in serial communications to stop the sender sending data until the receiver can accept it. This may be either {software flow control} or {hardware flow control}. The receiver typically has a fixed size {buffer} into which received data is written as soon as it is received. When the amount of buffered data exceeds a "high water mark", the receiver will signal to the transmitter to stop transmitting until the process reading the data has read sufficient data from the buffer that it has reached its "low water mark", at which point the receiver signals to the transmitter to resume transmission.
(1995-03-22)

flow of control
{control flow}

flower key
{feature key}

flowmatic or flowmatic
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)

flpl
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
FLUB
[language] The {abstract machine} for {bootstrapping} {STAGE2}.
[Mentioned in Machine Oriented Higher Level Languages, W. van der Poel, N-H 1974, p. 271].
(1995-03-13)

fluegelman andrew
Fluegelman, Andrew
{Andrew Fluegelman}

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.
[{Jargon File}]

fly page
{banner}

flynns taxonomy
Flynn's taxonomy
[architecture] A classification of computer architectures based on the number of streams of instructions and data:
{Single instruction/single data} stream (SISD) - a sequential computer.
Multiple instruction/single data stream (MISD) - unusual.
{Single instruction/multiple data} streams (SIMD) - e.g. an {array processor}.
{Multiple instruction/multiple data} streams (MIMD) - multiple autonomous processors simultaneously executing different instructions on different data.
[Flynn, M. J., "Some Computer Organizations and Their Effectiveness", IEEE Transactions on Computing C-21, No. 9, Sep 1972, pp 948-960].
["A Survey of Parallel Computer Architectures", Duncan, Ralph, IEEE Computer, Feb 1990, pp 5-16].
(2003-05-29)

flyspeck 3
Flyspeck 3
[humour] A standard name for any {font} that is so tiny as to be unreadable, by analogy with names like "Helvetica 10" for 10-point Helvetica. Legal boilerplate is usually printed in Flyspeck 3.
(1994-11-08)

flytrap
{firewall machine}

fm
FM
1. [communications] {Frequency Modulation}.
2. [jargon] Fucking Manual, a back-formation from {RTFM}. Used to refer to the manual itself.
3. [jargon] Fucking Magic, in the sense of {black magic}.
(2001-04-30)

fm
[networking] The {country code} for the Federated States of Micronesia.
Heavily used for {vanity domains} by FM radio stations.
(1999-01-27)

fmpl
FMPL
{Frobozz Magic Programming Language}

fmq
FMQ
A {BNF}-based {paser generator} with an error corrector generator, by Jon Mauney.
{(ftp://csczar.ncsu.edu/)}.
(1990-03-31)

fms
FMS
{Flexible Manufacturing System} (factory automation).

fmv
FMV
{full-motion video}

fn tunnelling
FN tunnelling
{Fowler-Nordheim tunnelling}

fnal
FNAL
Fermi National Accelerator Laboratory (Illinois, USA).

fnc
FNC
{Federal Networking Council}

fnord
1. [convention] A word used in {electronic mail} and {news} messages to tag utterances as surrealist mind-play or humour, especially in connection with {Discordianism} and elaborate conspiracy theories. "I heard that David Koresh is sharing an apartment in Argentina with Hitler. (Fnord.)" "Where can I fnord get the Principia Discordia from?"
2. [programming] A {metasyntactic variable}, commonly used by hackers with ties to {Discordianism} or the {Church of the SubGenius}.
The word "fnord" was invented in the "Illuminatus!" trilogy by Robert Shea and Robert Anton Wilson.
[{Jargon File}]
(1995-02-28)

fo
[networking] The {country code} for the Faroe Islands.
(1999-01-27)

foad
FOAD
[chat] fuck off and die.
(1998-01-18)

foaf
FOAF
[{Usenet}] Friend Of A Friend. The source of an unverified, possibly untrue story. This term was not originated by hackers (it is used in Jan Brunvand's books on urban folklore), but is much better recognised on {Usenet} and elsewhere than in mainstream English.
[{Jargon File}]

focal
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
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
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
/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.
[{Jargon File}]

foil
FOIL
File Oriented Interpretive Language. CAI language.
["FOIL - A File Oriented Interpretive Language", J.C. Hesselbart, Proc ACM 23rd National Conf (1968)].

foip
FoIP
{Fax over IP}

foirl
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
FOLDOC
{Free On-line Dictionary of Computing}

followup
On {Usenet}, a {posting} generated in response to another posting (as opposed to a {reply}, which goes by e-mail rather than being broadcast). Followups include the ID of the {parent message} in their headers; smart news-readers can use this information to present {Usenet} news in "conversation" sequence rather than order-of-arrival. See {thread}.
[{Jargon File}]

font
[text] A set of {glyphs} ({images}) representing the {characters} from some particular {character set} in a particular size and {typeface}. The image of each character may be encoded either as a {bitmap} (in a {bitmap font}) or by a higher-level description in terms of lines and areas (an {outline font}).
There are several different computer representations for fonts, the most widely known are {Adobe Systems, Inc.}'s {PostScript} font definitions and {Apple}'s {TrueType}. {Window systems} can display different fonts on the screen and print them.
[Other types of font?]
(2001-04-27)

fontology
({XEROX PARC}) The body of knowledge dealing with the construction and use of new {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
[{Jargon File}]
(1994-12-01)

foo
[jargon] /foo/ A sample name for absolutely anything, especially programs and files (especially {scratch files}). First on the standard list of {metasyntactic variables} used in {syntax} examples. See also {bar}, {baz}, {qux}, {quux}, {corge}, {grault}, {garply}, {waldo}, {fred}, {plugh}, {xyzzy}, {thud}.
The etymology of "foo" is obscure. When used in connection with "bar" it is generally traced to the WWII-era Army slang acronym {FUBAR}, later bowdlerised to {foobar}.
However, the use of the word "foo" itself has more complicated antecedents, including a long history in comic strips and cartoons.
"FOO" often appeared in the "Smokey Stover" comic strip by Bill Holman. This surrealist strip about a fireman appeared in various American comics including "Everybody's" between about 1930 and 1952. FOO was often included on licence plates of cars and in nonsense sayings in the background of some frames such as "He who foos last foos best" or "Many smoke but foo men chew".
Allegedly, "FOO" and "BAR" also occurred in Walt Kelly's "Pogo" strips. In the 1938 cartoon "The Daffy Doc", a very early version of Daffy Duck holds up a sign saying "SILENCE IS FOO!". Oddly, this seems to refer to some approving or positive affirmative use of foo. It has been suggested that this might be related to the Chinese word "fu" (sometimes transliterated "foo"), which can mean "happiness" when spoken with the proper tone (the lion-dog guardians flanking the steps of many Chinese restaurants are properly called "fu dogs").
Earlier versions of this entry suggested the possibility that hacker usage actually sprang from "FOO, Lampoons and Parody", the title of a comic book first issued in September 1958, a joint project of Charles and Robert Crumb. Though Robert Crumb (then in his mid-teens) later became one of the most important and influential artists in underground comics, this venture was hardly a success; indeed, the brothers later burned most of the existing copies in disgust. The title FOO was featured in large letters on the front cover. However, very few copies of this comic actually circulated, and students of Crumb's "oeuvre" have established that this title was a reference to the earlier Smokey Stover comics.
An old-time member reports that in the 1959 "Dictionary of the TMRC Language", compiled at {TMRC} there was an entry that went something like this:
FOO: The first syllable of the sacred chant phrase "FOO MANE PADME HUM." Our first obligation is to keep the foo counters turning.
For more about the legendary foo counters, see {TMRC}. Almost the entire staff of what became the {MIT} {AI LAB} was involved with TMRC, and probably picked the word up there.
Another correspondant cites the nautical construction "foo-foo" (or "poo-poo"), used to refer to something effeminate or some technical thing whose name has been forgotten, e.g. "foo-foo box", "foo-foo valve". This was common on ships by the early nineteenth century.
Very probably, hackish "foo" had no single origin and derives through all these channels from Yiddish "feh" and/or English "fooey".
[{Jargon File}]
(1998-04-16)

foobar
[jargon] Another common {metasyntactic variable}; see {foo}. Hackers do *not* generally use this to mean {FUBAR} in either the slang or jargon sense.
According to a german correspondent, the term was coined during WW2 by allied troops who could not pronounce the german word "furchtbar" (horrible, terrible, awful).
[{Jargon File}]
(2003-07-03)

foogol
A tiny {ALGOL}-like language by Per Lindberg, based on the {VALGOL} I compiler, G.A. Edgar, DDJ May 1985. Runs on {vaxen}. Posted to comp.sources.Unix archive volume 8.
{(ftp://ftp.wustl.edu/systems/amiga/fish/fish/ff066)}.

fool
FOOL
Fool's Lisp. A small {Scheme} {interpreter}.
{(ftp://scam.berkeley.edu/src/local/fools.tar.Z)}.
(1994-10-04)

fool file
[jargon] A term found on {Usenet} for a notional repository of all the most dramatically and abysmally stupid utterances ever. An entire subgenre of {sig blocks} consists of the header "From the fool file:" followed by some quote the poster wishes to represent as an immortal gem of dimwittery; for this usage to be really effective, the quote has to be so obviously wrong as to be laughable. More than one {Usenetter} has achieved an unwanted notoriety by being quoted in this way.
(2001-01-05)

fools lisp
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
Foonly
1. The {PDP-10} successor that was to have been built by the Super Foonly project at the {Stanford Artificial Intelligence Laboratory} along with a new operating system. The intention was to leapfrog from the old DEC {time-sharing} system SAIL was then running to a new generation, bypassing TENEX which at that time was the {ARPANET} {standard}. {ARPA} funding for both the Super Foonly and the new operating system was cut in 1974. Most of the design team went to DEC and contributed greatly to the design of the PDP-10 model KL10.
2. The name of the company formed by Dave Poole, one of the principal Super Foonly designers, and one of hackerdom's more colourful personalities. Many people remember the parrot which sat on Poole's shoulder and was a regular companion.
3. Any of the machines built by Poole's company. The first was the F-1 (a.k.a. Super Foonly), which was the computational engine used to create the graphics in the movie "TRON". The F-1 was the fastest PDP-10 ever built, but only one was ever made. The effort drained Foonly of its financial resources, and the company turned toward building smaller, slower, and much less expensive machines. Unfortunately, these ran not the popular {TOPS-20} but a TENEX variant called Foonex; this seriously limited their market. Also, the machines shipped were actually wire-wrapped engineering prototypes requiring individual attention from more than usually competent site personnel, and thus had significant reliability problems. Poole's legendary temper and unwillingness to suffer fools gladly did not help matters. By the time of the Jupiter project cancellation in 1983, Foonly's proposal to build another F-1 was eclipsed by the {Mars}, and the company never quite recovered. See the {Mars} entry for the continuation and moral of this story.
[{Jargon File}]

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

footnet
foot-net
{sneakernet}

footprint
1. [jargon, hardware] The floor or desk area taken up by a piece of hardware.
2. [jargon, storage] The amount of {disk} or {RAM} taken up by a program or file.
3. ({IBM}) The {audit trail} left by a crashed program (often "footprints").
See also {toeprint}.
[{Jargon File}]
(1995-04-25)

for
{for loop}

for free
Said of a capability of a programming language or hardware equipment that is available by its design without needing cleverness to implement: "In APL, we get the matrix operations for free." "And owing to the way revisions are stored in this system, you get revision trees for free." The term usually refers to a serendipitous feature of doing things a certain way (compare {big win}), but it may refer to an intentional but secondary feature.
[{Jargon File}]
(1994-12-14)

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)

for the rest of them
for The Rest Of Them
{for The Rest Of Us}

for the rest of us
for The Rest Of Us
[abuse] (From the {Macintosh} slogan "The computer for the rest of us") 1. Used to describe a {spiffy} product whose affordability shames other comparable products, or (more often) used sarcastically to describe {spiffy} but very overpriced products.
2. Describes a program with a limited interface, deliberately limited capabilities, non-{orthogonal}ity, inability to compose primitives, or any other limitation designed to not "confuse" a na�ve user. This places an upper bound on how far that user can go before the program begins to get in the way of the task instead of helping accomplish it.
Used in reference to {Macintosh} software which doesn't provide obvious capabilities because it is thought that the poor {luser} might not be able to handle them. Becomes "the rest of *them*" when used in third-party reference; thus, "Yes, it is an attractive program, but it's designed for The Rest Of Them" means a program that superficially looks neat but has no depth beyond the surface flash.
See also {point-and-drool interface}, {user-friendly}.
[{Jargon File}]
(2000-08-08)

for values of
[jargon] A common rhetorical maneuver at {MIT} is to use any of the canonical {random numbers} as placeholders for variables. "The max function takes 42 arguments, for arbitrary values of 42". "There are 69 ways to leave your lover, for 69 = 50". This is especially likely when the speaker has uttered a random number and realises that it was not recognised as such, but even "non-random" numbers are occasionally used in this fashion. A related joke is that pi equals 3 - for small values of pi and large values of 3.
This usage probably derives from the programming language MAD ({Michigan Algorithm Decoder}), an {ALGOL}-like language that was the most common choice among mainstream (non-hacker) users at {MIT} in the mid-1960s. It had a {control structure} FOR VALUES OF X = 3, 7, 99 DO ... that would repeat the indicated instructions for each value in the list (unlike the usual FOR that generates an {arithmetic sequence} of values). MAD is long extinct, but similar for-constructs still flourish (e.g. in {Unix}'s {shell} languages).
[{Jargon File}]
(1994-12-16)

for your information
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)

fora
{forum}

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

force
Force
A {dBASE} dialect for {MS-DOS}.

forceone
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
ForceTwo
An unofficial successor to {ForceOne} by Andrew K. Wright.

foreground
(Unix) On a {time-sharing} system, a task executing in foreground is one able to accept input from and return output to the user in contrast to one running in the {background}. Nowadays this term is primarily associated with {Unix}, but it appears first to have been used in this sense on {OS/360}. Normally, there is only one foreground task per terminal (or terminal window). Having multiple processes simultaneously reading the keyboard is confusing.
[{Jargon File}]
(1994-10-24)

foreign 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
Foresight
[graphics, tool] A software product from {Nu Thena} providing graphical modelling tools for high level system design and {simulation}.
(1994-10-24)

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}.
[{Jargon File}]
(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}.
[{Jargon File}]
(1994-12-14)

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

form factor
[hardware] The type of packaging of a processor {integrated circuit}, e.g. {PPGA}, {FC-PGA}.
More generally, a term popular among {marketroids} in 1998, denoting the shape of something designed.
(2000-08-26)

form feed
[character] (FF, Control-L, {ASCII} 12) The character used to start a new page on a printer. This is done by "feeding" a new page (or "form") through the printer.
(1996-06-24)

form function
[jargon] The shape of something designed. This term is currently (Feb 1998) in vogue among {marketroids}.
(1998-02-11)

formac
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
FORMAL
1. FORmula MAnipulation Language.
An early {Fortran} extension for {symbolic mathematics}.
["FORMAL, A Formula Manipulation Language", C.K. Mesztenyi, Computer Note CN-1, CS Dept, U Maryland (Jan 1971)].
2. A data manipulation language for nonprogrammers from {IBM} {LASC}.
["FORMAL: A Forms-Oriented and Visual-Directed Application System", N.C. Shu, IEEE Computer 18(8):38-49 (1985)].
(1994-12-06)

formal argument
[programming] (Or "parameter") A name in a {function} or {subroutine} definition that is replaced by, or bound to, the corresponding {actual argument} when the function or subroutine is called. In many languages formal arguments behave like {local variables} which get initialised on entry.
See: {argument}.
(2002-07-02)

formal description technique
Formal Description Technique
[specification, protocol] (FDT) A {formal method} for developing telecomunications services and {protocols}. FDTs range from abstract to implementation-oriented descriptions. All FDTs offer the means for producing unambiguous descriptions of {OSI} services and {protocols} in a more precise and comprehensive way than {natural language} descriptions. They provide a foundation for analysis and verification of a description. The target of analysis and verification may vary from abstract properties to concrete properties. Natural language descriptions remain an essential adjunct to formal description, enabling an unfarmiliar reader to gain rapid insight into the structure and function of services and protocols.
Examples of FDTs are {LOTOS}, {Z}, {SDL}, and {Estelle}.
[ISO/IEC DTR10167: "Guidelines for the application of {Estelle}, {LOTOS} and {SDL}"].
(1994-12-06)

formal methods
[mathematics, specification] Mathematically based techniques for the {specification}, development and verification of software and hardware systems.
{Referentially transparent} languages are amenable to symbolic manipulation allowing {program transformation} (e.g. changing a clear inefficient specification into an obscure but efficient program) and proof of correctness.
{Oxford FM archive (http://www.comlab.ox.ac.uk/archive/formal-methods.html)}.
(1996-05-15)

formal object role modeling language
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)

formatfortran
FORMAT-Fortran
{Fortran Matrix Abstraction Technique Fortran}

formatting output specification instance
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
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)

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

forth modification lab
Forth Modification Lab
[event] (FORML) A {Forth} conference held every November on the West coast of the USA ().
(1997-04-12)

fortran
Fortran
[language] (Formula Translation) The first and, for a long time, the most widely used programming language for numerical and scientific applications. The original versions lacked {recursive} procedures and {block structure} and had a line-oriented {syntax} in which certain columns had special significance.
There have been a great many versions.
The name is often written "FORTRAN", harking back to the days before computers were taught about lower case, but {ANSI} decreed, in about 1985 via the ANSI {FORTRAN} Technical Committee {TC}, that it should be "Fortran".
See also: {Fortrash}.
[Was {Fortran I} the first version?]
(2000-07-07)

fortran 66
Fortran 66
Fortran IV standardised. ASA X3.9-1966.

fortran 77
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://gnu.org/pub/gnu/g77)}.
{Amiga version (ftp://ftp.cso.uiuc.edu/amiga/fish/ff470/BCF)}.
(1994-12-16)

fortran 90
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
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
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
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
Fortran II
1958. Added subroutines.

fortran iii
Fortran III
This was only distributed to ca. 20 sites. See Wexelblat.

fortran iv
Fortran IV
IBM 1962. For the IBM 7090/94. Many implementations went well beyond the original definition.

fortran m
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
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 v
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
Fortran VI
{IBM}'s internal name for early {PL/I} work ca. 1963.
[Sammet 1969, p. 540].
(1994-10-25)

fortranlinda
Fortran-Linda
Scientific Computer Assocs [linda@sca.com].

fortranplus
Fortran-Plus
Fortran for the DAP parallel machine, implements many Fortran 90 features.

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

fortrash
Fortrash
[abuse, language] /for'trash/ Hackerism for the {Fortran} language, referring to its primitive design, gross and irregular {syntax}, limited {control constructs}, and slippery, exception-filled {semantics}.
[{Jargon File}]
(1994-10-26)

fortruncible
FORTRUNCIBLE
A cross between Fortran and RUNCIBLE for the IBM 650. Listed in CACM 2(5):16 (May 1959).

fortune cookie
({WAITS}, via the {Unix} "fortune" program) A quotation, item of trivia, joke, or maxim selected at random from a collection (the "{cookie file}") and printed to the user's tty at login time or (less commonly) at logout time.
There was a fortune program on {TOPS-20}.
[First program?]
[{Jargon File}]
(1995-02-14)

forum
[messaging] (Plural "fora" or "forums") Any discussion group accessible through a dial-in {BBS} (e.g. {GEnie}, {CI$}), a {mailing list}, or a {Usenet} {newsgroup} (see {network, the}). A forum functions much like a {bulletin board}; users submit {postings} for all to read and discussion ensues.
Contrast real-time {chat} or point-to-point personal {e-mail}.
[{Jargon File}]
(1998-01-18)

forward
[messaging] (verb) To send (a copy of) an {electronic mail} message that you have received on to one or more other {addressees}. Most e-mail systems can be configured to do this automatically to all or certain messages, e.g. {Unix} {sendmail} looks for a ".forward" file in the recipient's {home directory}.
A {mailing list} server (or "{mail exploder}") is designed to forward messages automatically to lists of people.
{Unix manual page}: aliases(5).
(2000-03-22)

forward analysis
An analysis which determines properties of the output of a program from properties of the inputs.

forward chaining
A data-driven technique used in constructing {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
[jargon] The ability to accept input from later versions of itself.
Forward compatibility is harder to achieve than {backward compatibility}, since, in the backward case, the input format is know whereas a forward compatible system needs to cope gracefully with unknown future features. An example of future compatibility is the stipulation that a {web browser} should ignore {HTML tags} it does not recognise.
See also {extensible}.
(2003-06-23)

forward compatible
{forward compatibility}

forward delta
The delta which, when combined with a version, creates a child version. See change management

forward engineering
[process] The traditional process of moving from high-level abstractions and logical, implementation-independent designs to the physical implementation of a system.
Contrast {reverse engineering}.
(1996-10-02)

forward error correction
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
FORWISS
Bayerische Forschungszentrum fuer Wissensbasierte Systeme (Bavarian research centre for knowledge-based systems) in Passau.

fosi
FOSI
{Formatting Output Specification Instance}

fosil
FOSIL
{Fredette's Operating System Interface Language}

fossil
1. In software, a misfeature that becomes understandable only in historical context, as a remnant of times past retained so as not to break compatibility. Example: the retention of {octal} as default base for string escapes in {C}, in spite of the better match of {hexadecimal} to ASCII and modern byte-addressable architectures. See {dusty deck}.
2. More restrictively, a feature with past but no present utility. Example: the force-all-caps (LCASE) bits in the V7 and {BSD} Unix tty driver, designed for use with monocase terminals. (In a perversion of the usual backward-compatibility goal, this functionality has actually been expanded and renamed in some later {USG Unix} releases as the IUCLC and OLCUC bits.)
3. The FOSSIL (Fido/Opus/Seadog Standard Interface Level) driver specification for serial-port access to replace the {brain-dead} routines in the IBM PC ROMs. Fossils are used by most {MS-DOS} {BBS} software in preference to the "supported" ROM routines, which do not support interrupt-driven operation or setting speeds above 9600; the use of a semistandard FOSSIL library is preferable to the {bare metal} serial port programming otherwise required. Since the FOSSIL specification allows additional functionality to be hooked in, drivers that use the {hook} but do not provide serial-port access themselves are named with a modifier, as in "video fossil".
[{Jargon File}]

foundation
The axiom of foundation states that the membership relation is well founded, i.e. that any non-empty collection Y of sets has a member y which is disjoint from Y. This rules out sets which contain themselves (directly or indirectly).

foundation for research and technology hellas
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 map theorem
[mathematics, application] (Or "four colour theorem") The theorem stating that if the plane is divided into connected regions which are to be coloured so that no two adjacent regions have the same colour (as when colouring countries on a map of the world), it is never necessary to use more than four colours.
The proof, due to Appel and Haken, attained notoriety by using a computer to check tens of thousands of cases and is thus not humanly checkable, even in principle. Some thought that this brought the philosophical status of the proof into doubt.
There are now rumours of a simpler proof, not requiring the use of a computer.
See also {chromatic number}
(1995-03-25)

four colour theorem
{four colour map theorem}

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

fourier transform
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
[language] (4GL) An "application specific" language, one with built-in knowledge of an application domain, in the way that {SQL} has built-in knowledge of the database domain. Pure 4GLs do not contain conditionals (if-then-else) and loops (for, while, do), though some languages are combinations of {third generation languages} and 4GLs.
The term was invented by Jim Martin to refer to {non-procedural} {high level languages} 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 languages}, e.g. {SQL}; {Focus}, {Metafont}, {PostScript}, {RPG-II}, {S}, {IDL-PV/WAVE}, {Gauss}, {Mathematica}; and {data-stream languages} such as {AVS}, {APE}, {Iris Explorer}.
(2003-07-29)

fourth normal form
{database normalisation}

fowlernordheim tunnelling
Fowler-Nordheim tunnelling
[electronics] (US: "tunneling") The quantum mechanical effect exploited in {EAPROM} and {Flash Erasable Programmable Read Only Memory}. It differs from {Frenkel-Pool Tunnelling} in that it does not rely on defects in the {semiconductor}.
[More detail?]
(2001-09-27)

fox software
Fox Software
[company] Developers of {FoxBASE+} and {FoxPRO}. Fox Software merged with {Microsoft} around 1992.
Addresss: Perrysburg, OH, USA.
[More details?]
(1997-11-18)

foxbase
FoxBASE+
[database] A {dBASE} III+-like product from {Fox Software}.
[Features? Dates? Status?]
(1997-11-18)

foxpro
FoxPRO
[database] A {dBASE} IV-like product originally from {Fox Software} which (well before 2000) mutated into {Microsoft} {Visual FoxPro}.
[Features? Dates?]
(2000-08-06)

fp
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
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
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
FPGA
{Field-Programmable Gate Array}

fplmts
FPLMTS
[communications] {Future Public Land Mobile Telecommunications System}.

fpm
FPM
{Fast Page Mode Dynamic Random Access Memory}

fpm
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
FPM DRAM
{Fast Page Mode Dynamic Random Access Memory}

fprintf
[library] Variant of the {C} library routine {printf} which prints to a given {stream}. E.g.
fprintf(stderr, "%s: can't open file \"%s\".", argv[0], argv[1]);
which prints to the "{standard error}" output stream.
(1995-04-25)

fps
{frames per second}

fpu
FPU
{floating-point unit}

fqdn
FQDN
{fully qualified domain name}

fql
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
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
FRAM
{Ferroelectric Random Access Memory}

frame
1. [networking] A {data link layer} "packet" which contains the header and trailer information required by the physical medium. That is, {network layer} {packets} are encapsulated to become frames.
See also {datagram}, {encapsulation}, {packet}, {Maximum Transmission Unit}.
2. [programming] (language implementation) See {activation record}.
3. [hardware] One complete scan of the active area of a {display screen}. Each frame consists of a number N of horizontal {scan lines}, each of which, on a computer display, consists of a number M of {pixels}. N is the {vertical resolution} of the display and M is the {horizontal resolution}. The rate at which the displayed image is updated is the {refresh rate} in frames per second.
(2000-10-07)

frame buffer
[hardware] Part of a video system in which an {image} is stored, {pixel} by pixel and which is used to refresh a {raster} image. The term "{video memory}" suggests a fairly static display whereas a frame buffer holds one frame from a sequence of frames forming a moving image.
Frame buffers are found in {frame grabbers} and {time base correction} systems, for example.
(1997-10-03)

frame check sequence
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)

frame pointer
A pointer to the current {activation record} in an implementation of a {block structured} language.
(1994-10-20)

frame rate
[graphics] The number of {frames} of an {animation} which are displayed every second, measured in frames per second (fps). The higher the frame rate, the smoother the animation will appear but the more processing power and system {bandwidth} is required.
At less than 30 fps, the human eye can see the new pictures coming onto the screen.
(2000-02-02)

frame relay
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.
{Frame Relay Resource Center (http://www.alliancedatacom.com/framerelay.asp)}.
(2000-07-14)

frame relay access device
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
Frame Technology Corporation
[company] The company which developed {FrameMaker}, taken over by {Adobe Systems, Inc.} in late 1995/early 1996.
(1995-01-30)

framekit
FrameKit
[language] A {frame language}.
["The FrameKit User's Guide", E. Nyberg, TR CMU- CMT-88-MEMO, CMU 1988].
(1994-10-20)

framemaker
FrameMaker
[text] A commercial document preparation program produced by {Frame Technology Corporation} who were taken over by {Adobe Systems, Inc.} in 1995/6. FrameMaker is available for a wide variety of {workstations} and is designed for technical and scientific documents. It uses a powerful system of templates and paragraph styles to control {WYSIWYG} formatting. It supports graphics, tables, and contents pages among other things.
Version: FrameMaker 6, due April 2000.
See also {Maker Interchange Format}.
(2000-04-04)

frames per second
[unit] (fps) The unit of measurement of the {frame rate} of a moving image.
(2000-02-02)

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
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 {EIA-232}. It allows a receiver to synchronize at points along the data stream.
(1995-01-13)

frank
FRANK
["Using BINS for Interprocess Communication", P.C.J. Graham, SIGPLAN Notices 20(2):32-41 (Feb 1985)].
(1995-01-13)

franz lisp
Franz Lisp
[language] A {MacLisp}-like dialect of {Lisp}, developed primarily for work in {symbolic algebra} by R. Fateman et al at {Ucb} in about 1980. It was named after the Hungarian composer Franz Liszt (1811-1886). Franz Lisp was written in {C} and includes a compiler called "{Liszt}".
["The FRANZ LISP Manual", J.K. Foderaro et al. UC Berkeley 1980].
Version: Opus 38.22. Liszt 8.08.
{(ftp://ted.cs.uidaho.edu/pub/hol/franz.tar.Z)}.
(2001-12-04)

fraunhofer gesellschaft
Fraunhofer Gesellschaft
[company] (FhG, FhG IIS, Institut fur Integrierte Schaltungen) A german company, named after the physicist. IIS is Integrated Circuit Institute.
FhG are known for their research on {audio compression}, especially {MPEG-1 Layer-3} (MP3).
(2001-12-04)

fred
FRED
Robert Carr. Language used by Framework, Ashton-Tate.
[{Jargon File}]

fred
1. The personal name most frequently used as a {metasyntactic variable} (see {foo}). Allegedly popular because it's easy for a non-touch-typist to type on a standard QWERTY keyboard. Unlike {J. Random Hacker} or "J. Random Loser", this name has no positive or negative loading (but see {Mbogo, Dr. Fred}). See also {barney}.
2. An acronym for "Flipping Ridiculous Electronic Device"; other F-verbs may be substituted for "flipping".

fredettes operating system interface language
Fredette's Operating System Interface Language
[language, operating system] (FOSIL) A portable {job control language} for {IBM} {OS360}, {UNIVAC} {EXEC 8} and {Honeywell} {GCOS}.
["Fredette's Operating System Interface Language (FOSIL)", G.N. Baird in Command Languages, C. Unger ed, N-H 1973].
(2000-08-06)

frednet
/fred'net/ Used to refer to some {random} and uncommon {protocol} encountered on a {network}. "We're implementing bridging in our {router} to solve the frednet problem."
[{Jargon File}]

free
See {free software}, {free variable}.

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
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@gnu.org].
Address: Free Software Foundation, Inc., 675 Massachusetts Avenue, Cambridge, MA 02139, USA.
Telephone: +1 (617) 876 3296.
(1995-12-10)

free variable
1. A variable referred to in a function, which is not an argument of the function. In {lambda-calculus}, x is a {bound variable} in the term M = \ x . T, and a free variable of T. We say x is bound in M and free in T. If T contains a subterm \ x . U then x is rebound in this term. This nested, inner binding of x is said to "shadow" the outer binding. Occurrences of x in U are free occurrences of the new x.
Variables bound at the top level of a program are technically free variables within the terms to which they are bound but are often treated specially because they can be compiled as fixed addresses. Similarly, an identifier bound to a recursive function is also technically a free variable within its own body but is treated specially.
A {closed term} is one containing no free variables.
See also {closure}, {lambda lifting}, {scope}.
2. In {logic}, a variable which is not quantified (see {quantifier}).

freebsd
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
FreeHEP
An organisation offering a repository of software and related information for high energy physics applications.

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

freeppp
FreePPP
[networking] The latest incarnation of {MacPPP}. FreePPP continues to be used by many MacOS users as an alternative to {Apple}'s {TCP/IP} stack.
{Home (http://www.rockstar.com/ppp.shtml)}.
(2000-11-25)

freerexx
{REXX} {interpreter}s for {Unix} in {C++}.
{(ftp://rexx.uwaterloo.ca/pub/freerexx/rx102.tar.Z)}.

freeware
[legal] {Software}, often written by enthusiasts and distributed at no charge by users' groups, or via the {World-Wide Web}, {electronic mail}, {bulletin boards}, {Usenet}, or other electronic media.
At one time, "freeware" was a trademark of {Andrew Fluegelman}. It wasn't enforced after his death.
"Freeware" should not be confused with "{free software}" (roughly, software with unrestricted redistribution) or "{shareware}" (software distributed without charge for which users can pay voluntarily).
{Jim Knopf's story (http://www.freewarehof.org/sstory.html)}.
[{Jargon File}]
(2003-07-26)

freeze
To lock an evolving software distribution or document against changes so it can be released with some hope of stability. Carries the strong implication that the item in question will "unfreeze" at some future date.
There are more specific constructions on this term. A "feature freeze", for example, locks out modifications intended to introduce new features but still allows bugfixes and completion of existing features; a "code freeze" connotes no more changes at all. At {Sun Microsystems} and elsewhere, one may also hear references to "code slush" - that is, an almost-but-not-quite frozen state.
[{Jargon File}]

frege gottlob
Frege, Gottlob
{Gottlob Frege}

frequency division multiple access
{frequency division multiplexing}

frequency division multiplexing
[communications] (FDM) The simultaneous transmission of multiple separate signals through a shared medium (such as a wire, {optical fibre}, or light beam) by modulating, at the transmitter, the separate signals into separable frequency bands, and adding those results linearly either before transmission or within the medium. While thus combined, all the signals may be amplified, conducted, translated in frequency and routed toward a destination as a single signal, resulting in economies which are the motivation for multiplexing. Apparatus at the receiver separates the multiplexed signals by means of frequency passing or rejecting filters, and demodulates the results individually, each in the manner appropriate for the modulation scheme used for that band or group.
Bands are joined to form groups, and groups may then be joined into larger groups; this process may be considered recursively, but such technique is common only in large and sophisticated systems and is not a necessary part of FDM.
Neither the transmitters nor the receivers need be close to each other; ordinary radio, television, and cable service are examples of FDM. It was once the mainstay of the long distance telephone system. The more recently developed {time division multiplexing} in its several forms lends itself to the handling of digital data, but the low cost and high quality of available FDM equipment, especially that intended for television signals, make it a reasonable choice for many purposes.
Compare {wavelength division multiplexing}, {time division multiplexing}, {code division multiplexing}.
(2001-06-28)

frequency modulation
Frequency Modulation
[communications] (FM) A method of encoding data by varying the frequency of a constant amplitude {carrier signal}.
Contrast {Amplitude Modulation}.
(2001-04-02)

frequency shift keying
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
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
Fresh
[language]
["Fresh: A Higher-Order Language Based on Unification", G. Smolka, in Logic Programming: Functions, Relations and Equations", D. DeGroot et al, P-H 1986, pp. 469-524].
(1996-04-28)

friction feed
[printer] A method some {printers} and {plotters} use to move paper by rotating one or both of a pair of spring-loaded rubber-coated rollers with the paper sandwiched between them.
Friction feed printers are notorious for slipping when the rollers wear out, but can take standard typing paper.
For printers with a {sheet feeder}, friction feed is more appropriate than {sprocket feed} which requires the holes in the paper to engage with the sprockets of the feed mechanism.
(1997-07-09)

fried
1. [hardware] Non-working due to hardware failure; burnt out. Especially used of hardware brought down by a "power glitch" (see {glitch}), {drop-outs}, a short, or some other electrical event. (Sometimes this literally happens to electronic circuits! In particular, resistors can burn out and transformers can melt down, emitting noxious smoke - see {friode}, {SED} and {LER}. However, this term is also used metaphorically.) Compare {frotzed}.
2. [jargon] Of people, exhausted. Said particularly of those who continue to work in such a state. Often used as an explanation or excuse. "Yeah, I know that fix destroyed the file system, but I was fried when I put it in." Especially common in conjunction with "brain": "My brain is fried today, I'm very short on sleep."
[{Jargon File}]
(1996-04-28)

friend
Friend
Relationship between classes in the language C++.

fringe
FRINGE
C. Katz, GE, 1961. Subcomponent of GE-255 GECOM system. Sorting and merging of data, reports and file maintenance.

frink
/frink/ The unknown ur-verb, fill in your own meaning. Found especially on the {Usenet} newsgroup {news:alt.fan.lemurs}, where it is said that the lemurs know what "frink" means, but they aren't telling.
Compare {gorets}.
[{Jargon File}]
(1994-12-16)

friode
[humour, electronics] /fri:'ohd/ (TMRC) A reversible (that is, fused, blown, or {fried}) {diode}. A friode may have been a {SED} at some time.
See also {LER}.
[{Jargon File}]
(1996-04-28)

fritterware
An excess of capability that serves no productive end. The canonical example is font-diddling software on the Mac (see {macdink}); the term describes anything that eats huge amounts of time for quite marginal gains in function but seduces people into using it anyway. See also {window shopping}.
[{Jargon File}]

frl
FRL
Frame Representation Language.
MIT.
["The FRL Manual", R. Roberts et al, AI Memo 409, MIT AI Lab, 1977].
(1994-12-16)

frmtftrn
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.
[{Jargon File}]

frobnicate
/frob'ni-kayt/ (Possibly from {frobnitz}, and usually abbreviated to {frob}, but "frobnicate" is recognised as the official full form). To manipulate or adjust, to {tweak}. One frequently frobs bits or other 2-state devices. Thus: "Please frob the light switch" (that is, flip it), but also "Stop frobbing that clasp; you'll break it". One also sees the construction "to frob a frob".
Usage: frob, {twiddle}, and {tweak} sometimes connote points along a continuum. "Frob" connotes aimless manipulation; "twiddle" connotes gross manipulation, often a coarse search for a proper setting; "tweak" connotes fine-tuning. If someone is turning a knob on an oscilloscope, then if he's carefully adjusting it, he is probably tweaking it; if he is just turning it but looking at the screen, he is probably twiddling it; but if he's just doing it because turning a knob is fun, he's frobbing it. The variant "frobnosticate" has also been reported.
(1994-12-16)

frobnitz
/frob'nits/, plural "frobnitzem" /frob'nit-zm/ or "frobni" /frob'ni:/ (TMRC) An unspecified physical object, a widget. Also refers to electronic {black boxes}. This rare form is usually abbreviated to "frotz", or more commonly to {frob}. Also used are "frobnule" (/frob'n[y]ool/) and "frobule" (/frob'yool/). Starting perhaps in 1979, "frobozz" /fr*-boz'/ (plural: "frobbotzim" /fr*-bot'zm/) has also become very popular, largely through its exposure as a name via {Zork}. These variants can also be applied to nonphysical objects, such as data structures.
Pete Samson, compiler of the original {TMRC} lexicon, adds,q "Under the TMRC (railway) layout were many storage boxes, managed (in 1958) by David R. Sawyer. Several had fanciful designations written on them, such as "Frobnitz Coil Oil". Perhaps DRS intended Frobnitz to be a proper name, but the name was quickly taken for the thing". This was almost certainly the origin of the term.
[{Jargon File}]
(1994-12-16)

frobozz magic programming language
Frobozz Magic Programming Language
[object-oriented language, functional language] (FMPL of Accardi). A {prototype-based}, {object-oriented}, {event-driven} (mainly I/O events) interpreted language with {functional} features. Developed at the {Experimental Computing Facility}, {University of California, Berkeley}.
There is an {interpreter} by Jon Blow [blojo@xcf.berkeley.edu].
Latest version: 1, as of 1992-06-02.
{(ftp://xcf.berkeley.edu/src/local/fmpl)}.
Mailing list: [fmpl@xcf.berkeley.edu].
E-mail: Jack Hsu [tcl-archive@barkley.berkeley.edu].
(1992-06-02)

frogging
({University of Waterloo}) 1. Partial corruption of a text file or input stream by some bug or consistent glitch, as opposed to random events like line noise or media failures. Might occur, for example, if one bit of each incoming character on a tty were stuck, so that some characters were correct and others were not.
See {terminak} for a historical example.
2. By extension, accidental display of text in a mode where the output device emits special symbols or {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.
[{Jargon File}]

frolic
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.
[{Jargon File}]

front side bus
[hardware] (FSB) The {bus} via which a {processor} communicates with its {RAM} and {chipset}; one half of the {Dual Independent Bus}, the other half being the {backside bus}. The {L2 cache} is usually on the FSB, unless it is on the same chip as the processor [example?].
In {PCI} systems, the PCI bus runs at half the FSB speed.
{Intel}'s {Pentium 60} processor used a bus speed and processor speed of 60 {MHz}. All later processors have used multipliers to increase the internal {clock} speed while maintaining the same external clock speed, e.g. the {Pentium 90} used a 1.5x multiplier. Modern {Socket 370} {motherboards} support multipliers from 4.5x to 8.0x, and FSB speeds from 50 MHz to a proposed 83 MHz standard. These higher speeds may cause problems with some PCI hardware.
Altering the FSB speed and the multiplier ratio are the two main ways of {overclocking} processors.
{Toms Hardware - The Bus Speed Guide (http://www.tomshardware.com/busspeed.html)}.
{Toms Hardware - The Overclocking Guide (http://www.tomshardware.com/overclock.html)}.
(2002-02-21)

frontend processor
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.
[{Jargon File}]

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}.
[{Jargon File}]

fry
1. To fail. Said especially of smoke-producing hardware failures. More generally, to become non-working. Usage: never said of software, only of hardware and humans. See {fried}, {magic smoke}.
2. To cause to fail; to {roach}, {toast}, or {hose} a piece of hardware. Never used of software or humans, but compare {fried}.

fs
FS
1. [file system] {file system}.
2. [character] {File Separator}.

fsb
FSB
{front side bus}

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
FSF
{Free Software Foundation}

fsk
FSK
{Frequency Shift Keying}

fsl
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
FSM
1. [mathematics, algorithm, theory] {Finite State Machine}.
2. [networking] {FDDI Switching Module}.
({3Com} implements this device on its {LAN} switches).
[What is it?]
(1997-05-16)

fsp
FSP
{File Service Protocol}

fsplit
A tool to split up monolithic {Fortran} programs.

ft
FT
{fault tolerant}

ftam
FTAM
File Transfer, Access, and Management: an application layer protocol for file transfer and remote manipulation (ISO 8571).

ftp
FTP
{File Transfer Protocol}

ftp archive
FTP archive
{archive site}

ftp by mail
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
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
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
FTTP
Do you mean {FTP} or {HTTP}?

ftx
FTX
[operating system] {Stratus}' {Unix operating system}.
(1998-07-06)

fubar
FUBAR
1. (WWII military slang) Fucked up beyond all recognition (or repair).
See {foobar}.
2. [hardware] The Failed UniBus Address Register in a {VAX}. A good example of how jargon can occasionally be snuck past the {suits}.
Larry Robinson [lrobins@indiana.edu] reports the following nonstandard use for FUBAR:
One day somebody got mad at the {card reader} (or card eater that day) on our {Univac 3200}. He taped a sign, "This thing is FUBAR", on the metal weight that sits on the stack of unread cards. The sign stayed there for over a year. One day, somebody said, "Don't forget to put the fubar on top of the stack". It stuck! We called that weight the fubar until they took away the machine. The replacement card reader had two spring loaded card clamps, one for the feed and one for the return, and we called THOSE fubars until we dumped punch cards.
Incidently, the way he taped the sign on the weight made up for the lack of a little nylon piece that was missing from it, and fixed the card reader. That's why the sign stayed there.
[{Jargon File}]
(1997-03-18)

fud
FUD
[jargon] /fuhd/ An acronym invented by {Gene Amdahl} after he left {IBM} to found his own company: "FUD is the fear, uncertainty, and doubt that {IBM} sales people instill in the minds of potential customers who might be considering [Amdahl] products." The idea, of course, was to persuade them to go with safe IBM gear rather than with competitors' equipment. This implicit coercion was traditionally accomplished by promising that Good Things would happen to people who stuck with IBM, but Dark Shadows loomed over the future of competitors' equipment or software.
[{Jargon File}]
(1995-05-23)

fud wars
FUD wars
/fuhd worz/ Political posturing, intended to create {FUD}, engaged in by hardware and software vendors ostensibly committed to standardisation but actually willing to fragment the market to protect their own shares. The {Unix International} vs. {OSF} conflict is but one outstanding example.
[{Jargon File}]
(1994-12-01)

fudge
1. To perform in an incomplete but marginally acceptable way, particularly with respect to the writing of a program. "I didn't feel like going through that pain and suffering, so I fudged it - I'll fix it later."
2. The resulting code.
[{Jargon File}]

fudge factor
A value or parameter that is varied in an ad hoc way to produce the desired result. The terms "tolerance" and {slop} are also used, though these usually indicate a one-sided leeway, such as a buffer that is made larger than necessary because one isn't sure exactly how large it needs to be, and it is better to waste a little space than to lose completely for not having enough. A fudge factor, on the other hand, can often be tweaked in more than one direction. A good example is the "fuzz" typically allowed in {floating-point} calculations: two numbers being compared for equality must be allowed to differ by a small amount; if that amount is too small, a computation may never terminate, while if it is too large, results will be needlessly inaccurate. Fudge factors are frequently adjusted incorrectly by programmers who don't fully understand their import. See also {coefficient of X}.

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

fuelcan
Fuel-can
A derogatory term for the {Atari Falcon}.
(1994-12-22)

fugue
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
Fujitsu
[company] A Japanese elecronics corporation. Fujitsu owns {ICL}, {Amdahl Corporation}, and {DMR}.
Home {USA (http://www.fujitsu.com/)}, {Japan (http://www.fujitsu.co.jp/index-e.html)}.
(2000-04-03)

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 outer join
{outer join}

fullcustom
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 yield a large overall saving.
(1994-12-01)

fullduplex
full-duplex
[communications] (fdx, from {telegraphy}) 1. A type of {duplex} communications channel which carries data in both directions at once.
On purely {digital} connections, full-duplex communication requires two pairs of wires. On {analog} networks or in digital networks using carriers, it is achieved by dividing the {bandwidth} of the line into two frequencies, one for sending, and the other for receiving.
2. An obsolete term for {remote echo}.
Compare {simplex}, {half-duplex}, {double-duplex}.
(2001-07-21)

fullduplex switched ethernet
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)

fullmotion video
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)

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
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
[networking] (FQDN) The full name of a system, consisting of its local {hostname} and its {domain} name, including a {top-level domain} (tld). For example, "venera" is a hostname and "venera.isi.edu" is an FQDN. An FQDN should be sufficient to determine a unique {Internet address} for any host on the {Internet}. This process, called "name resolution", uses the {Domain Name System} (DNS).
With the explosion of interest in the {Internet} following the advent of the {World-Wide Web}, domain names (especially the most significant two components, e.g. "sun.com", and especially in the ".com" tld) have become a valuable part of many companies' "brand". The allocation of these, overseen by {ICANN}, has therefore become highly political and is performed by a number of different registrars. There are different registries for the different tlds.
See also {network, the}, {network address}.
(2003-09-23)

fum
[jargon] At {Xerox PARC}, often the third standard {metasyntactic variable} after {foo} and {bar}. {baz} is more common outside PARC.
[{Jargon File}]
(2003-09-24)

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

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
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
[hardware] (From the {IBM 3270} terminal's Programmed Function Keys (PF keys)) One of a set of special keys on a computer or {terminal} keyboard which can be programmed so as to cause an {application program} to perform certain actions.
Function keys on a terminal may either generate short fixed sequences of characters, often beginning with the {escape} character ({ASCII} 27), or the characters they generate may be configured by sending special character sequences to the terminal.
On a {microcomputer} keyboard, the function keys may generate a fixed, single byte code, outside the normal {ASCII} range, which is translated into some other configurable sequence by the keyboard {device driver} or interpreted directly by the {application program}.
(1995-02-07)

function point analysis
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)

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)

functional language
[language] A language that supports and encourages {functional programming}.
(1995-11-08)

functional program
[language] A program employing the {functional programming} approach or written in a {functional language}.
(1995-11-07)

functional programming
[programming] (FP) A program in a functional language consists of a set of (possibly {recursive}) {function} definitions and an expression whose value is output as the program's result. Functional languages are one kind of {declarative language}. They are mostly based on the {typed lambda-calculus} with constants. There are no {side-effects} to expression evaluation so an expression, e.g. a function applied to certain arguments, will always evaluate to the same value (if its evaluation terminates). Furthermore, an expression can always be replaced by its value without changing the overall result ({referential transparency}).
The order of evaluation of subexpressions is determined by the language's {evaluation strategy}. In a {strict} ({call-by-value}) language this will specify that arguments are evaluated before applying a function whereas in a non-strict ({call-by-name}) language arguments are passed unevaluated.
Programs written in a functional language are generally compact and elegant, but have tended, until recently, to run slowly and require a lot of memory.
Examples of purely functional languages are {Clean}, {FP}, {Haskell}, {Hope}, {Joy}, {LML}, {Miranda}, and {SML}. Many other languages such as {Lisp} have a subset which is purely functional but also contain non-functional constructs.
See also {lazy evaluation}, {reduction}.
{Lecture notes (ftp://ftp.cs.olemiss.edu/pub/tech-reports/umcis-1995-01.ps)}. or the same {in dvi-format (ftp://ftp.cs.olemiss.edu/pub/tech-reports/umcis-1995-01.dvi)}.
{FAQ (http://www.cs.nott.ac.uk/Department/Staff/gmh/faq.html)}.
{SEL-HPC Article Archive (http://www.lpac.ac.uk/SEL-HPC/Articles/)}.
(2003-03-25)

functional programming language
[language] A language that supports and encourages {functional programming}.
(1995-11-08)

functional requirements
[specification] What a system should be able to do, the functions it should perform.
This term is used at both the {user requirements} analysis and {software requirements} specifications phases in the {software life-cycle}.
An example of a non-functional requirement is an initialisation sequence incorporated into the software that is specific to a given customer.
(2001-05-22)

functional specification
[programming, project] A description of what a system (e.g. a piece of {software}) does or should do (but not how it should do it). The functional specification is one of the inputs to the {design} process.
See {IEEE}/{ANSI} Std. 610.12-1990.
(1999-04-07)

functional testing
[testing] (Or "black-box testing", "closed-box testing") The application of test data derived from 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)

functionality
[programming] Waffle for "{features}" or "function". The capabilities or behaviours of a program, part of a program, or system, seen as the sum of its {features}. Roughly, "the things it can do". Generally used in a comparative sense, e.g. "The latest update adds some useful functionality".
(1997-07-14)

functor
In {category theory}, a functor F is an operator on types. F is also considered to be a {polymorphic} operator on functions with the type
F : (a -] b) -] (F a -] F b).
Functors are a generalisation of the function "{map}". The type operator in this case takes a type T and returns type "list of T". The map function takes a function and applies it to each element of a list.
(1995-02-07)

funky
Said of something that functions, but in a slightly strange, {kluge}y way. It does the job and would be difficult to change, so its obvious non-optimality is left alone. Often used to describe interfaces. The more bugs something has that nobody has bothered to fix because workarounds are easier, the funkier it is. {TECO} and {UUCP} are funky. The {Intel} {i860}'s exception handling is extraordinarily funky. Most standards acquire funkiness as they age. "The new mailer is installed, but is still somewhat funky; if it bounces your mail for no reason, try resubmitting it." "This {UART} is pretty funky. The data ready line is active-high in interrupt mode and active-low in {DMA} mode."
[{Jargon File}]

funlog
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
FunnelWeb
A {literate-programming} tool by Ross Williams [ross@spam.adelaide.edu.au]. It emphasises simplicity and reliability. It provides a {macro} facility and assists in the production of typeset {documentation}. It is independent of the input programming language.
Posted to comp.sources.unix volume 26 under {CopyLeft}. Runs on {Sun}, {Vax}, {Macintosh} and {IBM PC}.
(1993-04-11)

funny money
Notional units of computing time and/or storage handed to students at the beginning of a computer course; also called "play money" or "purple money" (in implicit opposition to real or "green" money).
In New Zealand and Germany the odd usage "paper money" has been recorded; in Germany, the particularly amusing synonym "transfer ruble" commemorates the funny money used for trade between COMECON countries back when the Soviet Bloc still existed.
When your funny money ran out, your account froze and you needed to go to a professor to get more. Fortunately, the plunging cost of {time-sharing} cycles has made this less common. The amounts allocated were almost invariably too small, even for the non-hackers who wanted to slide by with minimum work. In extreme cases, the practice led to small-scale black markets in bootlegged computer accounts. By extension, phantom money or quantity tickets of any kind used as a resource-allocation hack within a system.
[{Jargon File}]

furigana
[human language, Japanese] (Or "rubi") Small {hiragana}, written above {kanji} (and these days sometimes above Latin characters) as a phonetic comment and reading aid. The singular and plural are both "furigana".
(2000-12-30)

furrfu
[jargon] Written-only {rot13} "Sheesh!". "furrfu" evolved in mid-1992 as a response to postings repeating urban myths on {newsgroup} {news:alt.folklore.urban}, after some posters complained that "Sheesh!" as a response to {newbies} was being overused.
(1995-10-25)

fuse
FUSE
A {DEC} {software development environment} for {ULTRIX}, offering an integrated toolkit for developing, testing, debugging and maintenance.

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

future date testing
[testing] The process of setting a computer's date to a future date to test a program's (expected or unexpected) date sensitivity. Future date testing only shows the effects of dates on the computer(s) under scrutiny, it does not take into account knock-on effects of dates on other connected systems.
(2000-09-11)

futurebasic
FutureBasic
[language] A {BASIC} compiler for the {Macintosh}.
{(http://www.stazsoftware.com/futurebasic/)}.
[Summary? Version?]
(2002-08-28)

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.
[{Jargon File}]
(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
FWIW
For what it's worth.

fx
[networking] The {country code} for metropolitan France.
Apprently not widely used.
(1999-01-27)

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

fx90
FX-90
A language with partial type and effect reconstruction and first-class {modules}.
(1995-01-31)

fya
FYA
For your amusement.

fyi
FYI
{For Your Information}

fyi4
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
[g]
[chat] grin. An alternative to {smiley}.
[{Jargon File}]
(1998-01-18)

g
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-}.
[{Jargon File}]
(1996-08-12)

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)

g2
G2
A {real-time} {expert system} from {Gensym Corporation}.

g3
G3
1. [protocol, compression] {Group 3} fax.
2. [hardware, processor] {PowerPC G3}.
(1998-09-10)

g4
G4
{Group 4}

ga
GA
{genetic algorithm}

ga
[networking] The {country code} for Gabon.
(1999-01-27)

gabriel
Gabriel
[language] A graphical {DSP} language for {simulation} and real systems.
["A Design Tool for Hardware and Software for Multiprocessor DSP Systems," E.A. Lee, E. Goei, J. Bier & S. Bhattacharya, DSP Systems, Proc ISCAS-89, 1989].
[{Jargon File}]
(1994-12-23)

gabriel
/gay'bree-*l/ (After {Richard Gabriel}) An unnecessary (in the opinion of the opponent) stalling tactic, e.g. tying one's shoelaces or combing one's hair repeatedly, asking the time, etc. Also used to refer to the perpetrator of such tactics. Also, "pulling a Gabriel", "Gabriel mode".
[{Jargon File}]
(1999-10-12)

gabriel richard
Gabriel, Richard
{Richard Gabriel}

gads
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
Gaelic
For automated test programs. Used in military, essentially replaced by ATLAS.

gag
Equivalent to {choke}, but connotes more disgust. "Hey, this is Fortran code. No wonder the C compiler gagged." See also {barf}.
[{Jargon File}]

gaia
GAIA
GUI Application Interoperability Architecture. An {OSF} project.

gal
GAL
[hardware] {Generic Array Logic}.
(1995-12-09)

galaxy
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
["Galileo: A Strongly Typed Interactive Conceptual Language", A. Albano et al, ACM Trans Database Sys 10(2):230-260 (June 1985)].

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

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)

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)

gamma
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
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
GAN
Generating and Analyzing Networks. "GAN - A System for Generating and Analyzing Activity Networks", A. Schurmann, CACM 11(10) (Oct 1968).

gandalf
GANDALF
A software development environment from Carnegie Mellon University.

gang bang
The use of large numbers of loosely coupled programmers in an attempt to wedge a great many features into a product in a short time. Though there have been memorable gang bangs (e.g. that over-the-weekend assembler port mentioned in Steven Levy's "Hackers"), most are perpetrated by large companies trying to meet deadlines; the inevitable result is enormous buggy masses of code entirely lacking in {orthogonal}ity. When market-driven managers make a list of all the features the competition has and assign one programmer to implement each, the probability of maintaining a coherent (or even functional) design goes infinitesimal. See also {firefighting}, {Mongolian Hordes technique}, {Conway's Law}.
[{Jargon File}]

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

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)

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)

gargoyle
Gargoyle
A language for compiler writing.
[J.V. Garwick, CACM 7(1):16-20, (Jan 1964)].
(1994-11-04)

garnet
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
GARP
A graphical language for {concurrent} programming.
["Visual Concurrent Programmint in GARP", S.K. Goering er al, PARLE '89 v.II, LNCS 366, pp. 165-180].
(1994-11-03)

garply
/gar'plee/ A {metasyntactic variable} like {foo}, once popular among {SAIL} hackers.
[{Jargon File}]
(1994-11-03)

gartner group
Gartner Group
[company] One of the biggest IT industry research firms.
Address: Connecticut, USA.
[URL?]
(1997-09-30)

gas
{GNU assembler}

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)

gasp
GASP
1. {Graph Algorithm and Software Package}.
2. [simulation] {General Activities Simulation Program}.
3. [simulation] {General Aerodynamic Simulation Program}.
(2003-09-27)

gat
GAT
Generalized Algebraic Translator. Improved version of IT. On IBM 650 RAMAC.
[Sammet 1969, p. 142].

gate
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
Gates
{Bill Gates}

gateway
1. [networking] A deprecated term for a device that enables data to flow between different networks (forming an {internet}).
Preferred terms are "{protocol converter}" (connects networks that use different {protocols}), "{router}" (connects two broadcast networks at layer 3 ({network layer}). Another example is a {mail gateway}, which is a layer 7 ({application layer}) gateway.
2. [hypertext] An {interface} between an information source and a {World-Wide Web} {server}. {Common Gateway Interface} is a {standard} for such interfaces. The information source can be any system that can be accessed by a program running on the web server. A typical example is a {relational database}.
(2000-05-24)

gateway 2000
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
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
Gaussian distribution
[statistics] {normal distribution}.

gawk
[tool, language] {GNU} {awk}. Gawk is a superset of standard awk and includes some {Plan 9} features.
David Trueman and Arnold Robbins of {Georgia Institute of Technology} were developing it in 1993. It has been ported to {Unix}, {MS-DOS}, {Macintosh}, and {Archimedes}.
Latest version: 2.15.3, as of 1993-11-08.
Available by {FTP} from your nearest {GNU archive site}.
{Mac version
(ftp://archive.umich.edu/mac/utilities/developerhelps/macgawk2.11.cpt.hqx)}.
(2000-10-21)

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

gbell
g-bell
{bell}

gbip
GBIP
{General Purpose Interface Bus}

gbml
GBML
{Genetics Based Machine Learning}

gbps
{gigabits per second}

gc
GC
1. {garbage collection}.
2. A storage allocator with {garbage collection} by Hans-J. Boehm and Alan J. Demers. Gc is a plug-in replacement for {C}'s {malloc}. Since the collector does not require {pointers} to be tagged, it does not attempt to ensure that all inaccessible storage is reclaimed.
Version 3.4 has been ported to {Sun-3}, {Sun-4}, {Vax}/{BSD}, {Ultrix}, {Intel 80386}/{Unix}, {SGI}, {Alpha}/{OSF/1}, {Sequent} (single threaded), {Encore} (single threaded), {RS/600}, {HP-UX}, {Sony News}, {A/UX}, {Amiga}, {NeXT}.
{(ftp://parcftp.xerox.com/pub/russell/gc3.4.tar.Z)}.
(2000-04-19)

gcc
GCC
[compiler, programming] The {GNU} {Compiler} Collection, which currently contains front ends for {C}, {C++}, {Objective-C}, {Fortran}, {Java}, and {Ada}, as well as libraries for these languages (libstdc++, libgcj, etc).
GCC formerly meant the GNU {C} compiler, which is a very high quality, very portable compiler for {C}, {C++} and {Objective C}.
The compiler supports multiple {front-ends} and multiple {back-ends} by translating first into {Register Transfer Language} and from there into {assembly code} for the target architecture.
{Home (http://gcc.gnu.org/)}. {Bug Reports (http://gcc.gnu.org/bugzilla/)}. {FTP} gcc-2.X.X.tar.gz from your nearest {GNU archive site}. {MS-DOS (ftp://oak.oakland.edu/pub/msdos/djgpp/)}.
Mailing lists: gcc-help@gcc.gnu.org, gcc-announce@gcc.gnu.org (announcements).
["Using and Porting GNU CC", R.M. Stallman, 1992-12-16].
(2003-08-05)

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

gcode
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
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.
[{Jargon File}]
(1998-04-23)

gcr
GCR
{Group Code Recording}

gct
GCT
[programming, tool] A {test-coverage} tool by Brian Marick [marick@testing.com], based on {GNU C}. Version 1.4 was ported to {Sun-3}, {Sun-4}, {RS/6000}, {68000}, {88000}, {HP-PA}, {IBM 3090}, {Ultrix}, {Convex}, {SCO} but not {Linux}, {Solaris}, or {Microsoft Windows}.
Commercial support is available from the author (+1 217 351 7228).
{(ftp://cs.uiuc.edu/pub/testing/gct.file/)}.
(1999-07-08)

gd
[networking] The {country code} for Grenada.
(1999-01-27)

gdb
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@gnu.org] (bug reports).
(1993-10-29)

gdbpsk
GDBPSK
{Gaussian Differential Binary Phase Shift Keying}

gdi
GDI
{Graphic Display Interface}

gdmo
GDMO
Guidelines for the Definition of Managed Objects.
A standard (ISO/IEC 10165-4) for defining data models on ASN.1

gdpl
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
GE
{General Electric}

ge
[networking] The {country code} for Georgia.
(1999-01-27)

ge information services
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)

gea
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
GEANT
A simulation, tracking and drawing package for HEP.

gecom
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
GECOS
{GCOS}

gedanken
Gedanken
John Reynolds, 1970. "GEDANKEN - A Simple Typeless Language Based on the Principle of Completeness and the Reference Concept", J.C. Reynolds, CACM 13(5):308-319 (May 1970).
[{Jargon File}]

gedanken
/g*-dahn'kn/ Ungrounded; impractical; not well-thought-out; untried; untested.
"Gedanken" is a German word for "thought". A thought experiment is one you carry out in your head. In physics, the term "gedanken experiment" is used to refer to an experiment that is impractical to carry out, but useful to consider because it can be reasoned about theoretically. (A classic gedanken experiment of relativity theory involves thinking about a man in an elevator accelerating through space.) Gedanken experiments are very useful in physics, but must be used with care. It's too easy to idealise away some important aspect of the real world in constructing the "apparatus".
Among hackers, accordingly, the word has a pejorative connotation. It is typically used of a project, especially one in artificial intelligence research, that is written up in grand detail (typically as a Ph.D. thesis) without ever being implemented to any great extent. Such a project is usually perpetrated by people who aren't very good hackers or find programming distasteful or are just in a hurry. A "gedanken thesis" is usually marked by an obvious lack of intuition about what is programmable and what is not, and about what does and does not constitute a clear specification of an algorithm. See also {AI-complete}, {DWIM}.

geef
(Ostensibly from "gefingerpoken") {mung}.
See also {blinkenlights}.
[{Jargon File}]
(1995-01-18)

geek
{computer geek}

geek out
To temporarily enter techno-nerd mode while in a non-hackish context, for example at parties held near computer equipment. Especially used when you need to do or say something highly technical and don't have time to explain: "Pardon me while I geek out for a moment."
See {computer geek}, {propeller head}.
[{Jargon File}]
(1995-01-18)

gei
GEI
A German software engineering company.

gem
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 {EIA-232C} specification and the distinction between {DTE} and {DCE}. Used especially for EIA-232C parts in either the original {D-25} or the {IBM PC}'s {D-9} connector.
There appears to be some confusion as to whether a "male homosexual adaptor" has pins on both sides (is doubly male) or sockets on both sides (connects two males).
[{Jargon File}]
(1995-04-16)

gene amdahl
Gene Amdahl
[person] A former {IBM} engineer who founded {Amdahl Corporation}.
(1995-05-23)

general activities simulation program
General Activities Simulation Program
[simulation, library] (GASP) A set of {discrete system} {simulation} {subroutines} for {Fortran}.
(2003-09-27)

general aerodynamic simulation program
General Aerodynamic Simulation Program
[simulation] (GASP)
{(http://www.aerosft.com/Gasp/References/main.php3)}.
[Summary?]
(2003-09-27)

general electric
General Electric
[company] (GE) A US company that manufactured computers from 1956 until 1970, when it sold its computer division to {Honeywell} and left the computer business. Notable GE computers were the {GE265} which supported the {Dartmouth Time-sharing System} (DTSS), and the {GE645} used for {Multics} development.
See also {GCOS}.
Not to be confused with the General Electric Company (GEC) in the UK (where FOLDOC's first seeds were sown).
(2002-02-27)

general electric comprehensive operating system
General Electric Comprehensive Operating System
{GCOS}

general magic
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
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
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 Fault
{General Protection Failure}

general public licence
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
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
General Public Virus
[software, legal] A pejorative name for some versions of the {GNU} project {copyleft} or {General Public License} (GPL), which requires that any tools or {application programs} incorporating copylefted code must be source-distributed on the same terms as GNU code. Thus it is alleged that the copyleft "infects" software generated with GNU tools, which may in turn infect other software that reuses any of its code.
{Copyright} law limits the scope of the GPL to "programs textually incorporating significant amounts of GNU code" so GPL is only passed on if actual GNU source is transmitted. This used to be the case with the {Bison} {parser} skeleton until its licence was fixed.
{(http://org.gnu.de/manual/bison/html_chapter/bison_2.html#SEC2)}.
[{Jargon File}]
(1999-07-14)

general purpose graphic language
General Purpose Graphic Language
["A General Purpose Graphic Language", H.E. Kulsrud, CACM 11(4) (Apr 1968)].

general purpose interface bus
General Purpose Interface Bus
{IEEE 488}

general purpose language
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 macrogenerator
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
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}.
[{Jargon File}]
(1995-06-15)

generation
An attempt to classify the degree of sophistication of programming languages.
See {First generation language} -- {Fifth generation language}.
(1995-06-15)

generic array logic
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
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: 4.0, as of 1995-04-16.
{(ftp://ftp.gatech.edu/pub/ai/gest.tar.Z)}.
(1995-04-16)

generic identifier
[language, text] A string constituting the name of a {element} in an {SGML} {document}.
(2001-01-31)

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

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)

genesia
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
GEnie Services
{GE Information Services}

genken programming language
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
GENOVA
An old statistical package still in use on some {VM} computers.
(1995-11-28)

gensym
[library] /jen'sim/ (From the {MacLISP} for "generated symbol") To invent a new name for something temporary, in such a way that the name is almost certainly not in conflict with one already in use.
The canonical form of a gensym is "Gnnnn" where nnnn represents a number; any {LISP} {hacker} would recognise G0093 (for example) as a gensym. Gensymmed names are useful for storing or uniquely identifying crufties.
[{Jargon File}]
(1999-10-31)

gensym corporation
Gensym Corporation
[company] A company that supplies software and services for intelligent operations management. Common applications include quality management, process optimisation, dynamic scheduling, network management, energy and environmental management, and process modelling and simulation.
Their products include {G2}.
{Home (http://www.gensym.com/)}.
(1999-10-31)

gensym standard interface
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)

gentlemans portable coroutine system
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)

genx
GEN-X
An expert system developed by General Electric.

geographic information system
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)

geographical information system
Geographical Information System
{Geographic Information System}
[Which is more common?]
(1995-12-21)

george
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 3
GEORGE 3
[operating system] The {operating system} for the {ICL 1900} {mainframe}. Lots of two-letter commands.
(2003-09-20)

george boole
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
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
GEPURS
An early system on the {IBM 701}.
[Listed in CACM 2(5):16 (May 1959)].
(1995-01-21)

gerald
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
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
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: "aou�", 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
GEST
{Generic Expert System Tool}

get a life
Get a life!
[abuse] Standard way of suggesting that someone has succumbed to terminal {geek}dom. Often heard on {Usenet}, especially as a way of suggesting that the target is taking some obscure issue of {theology} too seriously. This exhortation was popularised by William Shatner on a "Saturday Night Live" episode in a speech that ended "Get a *life*!", but some respondents believe it to have been in use before then. It was certainly in wide use among hackers for at least five years before achieving mainstream currency in early 1992.
[{Jargon File}]
(1995-01-18)

get a real computer
Get a real computer!
[jargon] A typical {hacker} response to news that somebody is having trouble getting work done on a {toy} system or {bitty box}.
The threshold for "real computer" rises with time. As of mid-1993 it meant {multi-tasking}, with a {hard disk}, and an {address space} bigger than 16 {megabytes}. At this time, according to {GLS}, computers with character-only displays were verging on "unreal". In 2001, a real computer has a one {gigahertz} processor, 128 MB of {RAM}, 20 GB of hard disk, and runs {Linux}.
[{Jargon File}]
(2001-06-22)

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

gflops
GFLOPS
{gigaflops}

gfr
GFR
{Grim File Reaper}

gh
[networking] The {country code} for Ghana.
(1999-01-27)

ghc
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
Ghostscript
[graphics, tool] The {GNU} {interpreter} for {PostScript} and {PDF}, with {previewers} for serval systems and many {fonts}. Ghostscript was originally written by L. Peter Deutsch [ghost@aladdin.com] of {Aladdin Enterprises}. The first public release was v1.0 on 1988-08-11.
Current version: 8.11, as of 2003-08-29.
{GNU Home (http://www.gnu.org/software/ghostscript/)}.
{News & community (http://ghostscript.com/)}.
(2003-09-24)

ghostview
An {X Window System} interface to the {ghostscript} {PostScript} {interpreter}.

ghz
GHz
{GigaHertz}

gi
[networking] The {country code} for Gibraltar.
(1999-01-27)

gi
GI
{generic identifier}

gibson william
Gibson, William
{William Gibson}

gid
1. [operating system] {group identifier}.
2. [filename extension] {global index}.
(1997-01-30)

gif
GIF
{Graphics Interchange Format}

gif89
GIF89
{Graphics Interchange Format}

gif89a
GIF89a
{animated GIF}

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

gigahertz
GigaHertz
[unit] (GHz) Billions of cycles per second.
The unit of frequency used to measure the {clock rate} of modern {digital logic}, including {microprocessors}.
(2001-05-14)

gigo
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.
[{Jargon File}]

gilley
[humour] ({Usenet}) The unit of analogical bogosity. According to its originator, the standard for one gilley was "the act of bogotoficiously comparing the shutting down of 1000 machines for a day with the killing of one person". The milligilley has been found to suffice for most normal conversational exchanges.
(1995-03-17)

gillion
[unit] /gil'y*n/ or /jil'y*n/ (From {giga-} by analogy with mega/million and tera/trillion) 10^9.
Same as an American billion or a British "milliard". How one pronounces this depends on whether one speaks {giga-} with a hard or soft "g".
[{Jargon File}]
(1995-03-17)

gilmore john
Gilmore, John
{John Gilmore}

gim1
GIM-1
Generalized Information Management Language. Nelson, Pick, Andrews. Proc SJCC 29:169-73, AFIPS (Fall 1966).

gin
GIN
A special-purpose {macro assembler} used to build the {GEORGE 3} {operating system} for {ICL1900} series computers.
(1994-11-02)

gina
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
Ginger
A simple {functional language} from the {University of Warwick} with parallel constructs.
(1994-11-02)

gip
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
/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]
[{Jargon File}]
(1994-11-02)

girl
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
GIS
{Geographical Information System}

gks
GKS
{Graphical Kernel System}

gks3d
GKS-3D
The three-dimensional version of {GKS}, a {standard} for graphics I/O ({ISO} 8805).
(1994-11-02)

gl
GL
Graphics Language. A graphics package from {Silicon Graphics}.

gl
[networking] The {country code} for Greenland.
(1999-01-27)

glammar
Glammar
A pattern transformation language for text-to-text translation. Used for compiler writing and linguistics.
{(ftp://phoibos.cs.kun.nl/pub/GLASS/glammar.tar.Z)}.

glark
/glark/ To figure something out from context. "The System III manuals are pretty poor, but you can generally glark the meaning from context." Interestingly, the word was originally "glork"; the context was "This gubblick contains many nonsklarkish English flutzpahs, but the overall pluggandisp can be glorked [sic] from context" (David Moser, quoted by Douglas Hofstadter in his "Metamagical Themas" column in the January 1981 "Scientific American"). It is conjectured that hackish usage mutated the verb to "glark" because {glork} was already an established jargon term.
Compare {grok}, {zen}.
[{Jargon File}]

glasgow haskell compiler
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 {Sun-4}, {DEC Alpha}, {Sun-3}, {NeXT}, {DECstation}, {HP-PA} and {SGI}.
Latest version: 4.01, as of 1998-11-30.
{Glasgow FTP (ftp://ftp.dcs.glasgow.ac.uk/pub/haskell/glasgow/)}. {Yale (ftp://nebula.cs.yale.edu/pub/haskell/glasgow/)}. {Sweden (ftp://ftp.cs.chalmers.se/pub/haskell/glasgow/)}.
{Papers (ftp://ftp.dcs.glasgow.ac.uk/pub/glasgow-fp)}.
["Imperative functional programming", Peyton Jones & Wadler, POPL '93].
["Unboxed data types as first-class citizens", Peyton Jones & Launchbury, FPCA '91].
["Profiling lazy functional languages", Sansom & Peyton Jones, Glasgow workshop '92].
["Implementing lazy functional languages on stock hardware", Peyton Jones, Journal of Functional Programming, Apr 1992].
E-mail: [glasgow-haskell-request@dcs.glasgow.ac.uk].
(1999-01-05)

glass
GLASS
General LAnguage for System Semantics.
An {Esprit} project at the {University of Nijmegen}.
{(ftp://phoibos.cs.kun.nl/pub/GLASS)}.
(1995-01-25)

glass
(IBM) {silicon}.
[{Jargon File}]

glass box testing
{white box testing}

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.

glassfet
/glas'fet/ [Analogy with {MOSFET}] (or "{firebottle}") A humorous way to refer to a {vacuum tube}.
[{Jargon File}]

glb
GLB
{greatest lower bound}

glibc
{GNU C Library}

glish
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
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}.
[{Jargon File}]

glob
/glob/, *not* /glohb/ To expand {wild card} characters in a {path name}.
In {Unix} the {file name} wild cards are:
* = zero or more characters (E.g. {UN*X})
? = any single character
[] any of the enclosed characters
{} indicate alternation of comma-separated alternatives, thus foo{baz,qux} would expand to "foobaz" or "fooqux". This syntax generates a list of all possible expansions, rather than matching one.
These have become sufficiently pervasive that hackers use them in written English, especially in {electronic mail} or {Usenet} news on technical topics. E.g. "He said his name was [KC]arl" (expresses ambiguity). "I don't read talk.politics.*" (any of the talk.politics subgroups on {Usenet}). Other examples are given under the entry for {X}. Note that glob patterns are similar, but not identical, to those used in {regexps}.
"glob" was a subprogram that expanded wild cards in archaic pre-{Bourne} versions of the {Unix} {shell}.
(1997-07-16)

global index
[filename extension] (gid) The filename extension of a {Windows 95} "global index" file. .gid files are created by the help {browser} internal to Windows 95 (also available for other Windows versions) for WinHelp files ({hlp}), as well as for storing user preferences, such as window position.
(1997-01-30)

global network navigator
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
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
Global System for Mobile Communications
[communications] (GSM, originally "Groupe de travail Speciale pour les services Mobiles") 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.
{HSCSD} is a proposed standard for {circuit switched} data communications over GSM.
{(http://www.gsmworld.com/)}.
[IEEE spectrum August 1999, pp. 26].
[Details? Current status? Whose standard?]
(1999-11-25)

globalisation
{internationalisation}

glork
/glork/ 1. Used as a name for just about anything.
See {foo}.
2. Similar to {glitch}, but usually used reflexively. "My program just glorked itself."
See also {glark}.
[{Jargon File}]

glos
GLOS
{Graphics Language Object System}.

glow
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
GLS
{Guy Lewis Steele, Jr.}

glu
GLU
[language] A practical {coarse grain} implementation of the Lucid dataflow language for networks.
(1998-03-07)

glue
[jargon] A generic term for any interface logic or {protocol} that connects two component blocks. For example, {Blue Glue} is IBM's SNA protocol, and hardware designers call anything used to connect large VLSI's or circuit blocks "glue logic".
[{Jargon File}]
(1999-02-22)

glue language
[language] Any language, usually a {scripting language}, used to write {glue} to integrate tools and other programs to solve some problem.
(1999-02-22)

glyph
[character] An {image} used in the visual representation of {characters}; roughly speaking, how a character looks. A {font} is a set of glyphs.
In the simple case, for a given {font} ({typeface} and size), each character corresponds to a single glyph but this is not always the case, especially in a language with a large alphabet where one character may correspond to several glyphs or several characters to one glyph (a {character encoding}).
Usually used in reference to {outline fonts}, in particular {TrueType}.
(1998-05-31)

glypnir
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
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
GMD
[company] Full name: "GMD - Forschungszentrum Informationstechnik GmbH" (German National Research Center for Information Technology).
Before April 1995, GMD stood for "Gesellschaft fur 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
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)

gmt
GMT
{Universal Time 1}

gn
[networking] The {country code} for Guinea.
(1999-01-27)

gnarly
[jargon] /nar'lee/ Both obscure and {hairy}. "{Yow}! - the tuned {assembler} implementation of {BitBlt} is really gnarly!" From a similar but less specific usage in surfer slang.
[{Jargon File}]
(1996-09-17)

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

gnats
GNATS
{GNU Problem Report Management System}

gnn
GNN
{Global Network Navigator}

gnome
GNOME
{GNU Network Object Model Environment}

gnome computers
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
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}.
[{Jargon File}]
(1997-04-12)

gnu archive site
GNU archive site
[body] The main {GNU} {FTP archive} is on gnu.org but copies ("{mirrors}") of some or all of the files there are also held on many other computers around the world. To avoid overloading gnu.org and the {Internet} you should {FTP} files from the machine closest to yours (you may be able to use {traceroute} to determine which is logically closest if it's not obvious from the transfer rate). Trans-ocean {TCP/IP} links are very expensive and usually very slow.
The following {hosts} mirror GNU files. Look for a directory like /pub/gnu, /mirrors/gnu, /systems/gnu or /archives/gnu. {Electronic mail addresses} of administrators and {Internet address}es are given for some hosts.
{Original list (ftp://src.doc.ic.ac.uk/gnu/GNUinfo/FTP)}.
Australia: archie.au, archie.oz, archie.oz.au
Brazil: ccsun.unicamp.br (143.106.1.5, [root@ccsun.unicamp.br])
Denmark: ftp.denet.dk
Europe: archive.eu.net (192.16.202.1)
Finland: ftp.funet.fi (128.214.6.100, gnu-adm)
France: irisa.irisa.fr, ftp.univ-lyon1.fr ([ftpmaint@ftp.univ-lyon1.fr])
{Germany (ftp://ftp.informatik.tu-muenchen.de/)}, {(ftp://ftp.informatik.rwth-aachen.de/)}, {ftp://ftp.germany.eu.net/)}.
Israel: ftp.technion.ac.il ([ftp-admin@ftp.technion.ac.il])
Japan: utsun.s.u-tokyo.ac.jp, ftp.cs.titech.ac.jp
Korea: cair.kaist.ac.kr (143.248.11.170)
Netherlands: hp4nl.nluug.nl, ftp.win.tue.nl (131.155.70.100)
Norway: ugle.unit.no (129.241.1.97)
South Africa: ftp.sun.ac.za
Sweden: isy.liu.se, ftp.stacken.kth.se, ftp.luth.se, ftp.sunet.se, [archive@ftp.sunet.se], sdi.slu.se.
Switzerland: ftp.eunet.ch, nic.switch.ch
Thailand: ftp.nectec.or.th (192.150.251.32, [ftp@nwg.nectec.or.th])
UK: src.doc.ic.ac.uk (146.169.3.7, [info-server@doc.ic.ac.uk], [lmjm@doc.ic.ac.uk] also sun cartridge or exabyte tapes); info-server@cs.nott.ac.uk ([jpo@cs.nott.ac.uk]); I.G.Batten@fulcrum.bt.co.uk (also qic-21 and qic-24 tapes); ftp.mcc.ac.uk (130.88.203.12); Unix.hensa.ac.uk; ftp.warwick.ac.uk (137.205.192.14, [Unixhelp@warwick.ac.uk]).
USA: louie.udel.edu, ftp.kpc.com (Silicon Valley, CA) ftp.hawaii.edu, f.ms.uky.edu, ftp.digex.net (Internet address 164.109.10.23, run by [mcguire@digex.net]), wuarchive.wustl.edu, col.hp.com, ftp.cs.columbia.edu, vixen.cso.uiuc.edu, mrcnext.cso.uiuc.edu, jaguar.utah.edu, gatekeeper.dec.com, labrea.stanford.edu, ftp.cs.widener.edu, archive.cis.ohio-state.edu, and ftp.uu.net.
Western Canada: ftp.cs.ubc.ca ([ftp-admin@cs.ubc.ca])
(1999-12-09)

gnu assembler
GNU assembler
(GAS) A {Unix} {assembler} for the {GNU} project. Many {CPU} types are handled and {COFF} and {IEEE-695} formats are supported as well as standard {a.out}.
Current version 2.2 ported to {Sun-3}, {Sun-4}, {i386}, {386BSD}, {BSD/386}, {Linux}, {PS/2-AIX}, {VAX}, {Ultrix}, {BSD}, {VMS}.
The assembler has been merged with {GNU Binutils}.
E-mail: [bug-gnu-utils@gnu.org].
(1995-04-18)

gnu awk
GNU awk
{gawk}

gnu bc
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
GNU C
[language] The extension of {C} compiled by {gcc}.
(1997-09-30)

gnu c library
GNU C Library
[library] (glibc) The {run-time} library for the {GNU C} {compiler}, {gcc}, and others. glibc is the {source code} for libc.a. It is maintained separately from the compilers and is a superset of {ANSI C} and {POSIX}.1 and a large subset of POSIX.2.
Current version: 2.1.3, as of 2000-04-29
{Home (http://www.gnu.org/glibc)}.
Mailing list: [bug-glibc@gnu.org] (bugs).
(2000-05-31)

gnu dc
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
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
GNU Emacs
{Emacs}

gnu free documentation license
GNU Free Documentation License
[legal] (GFDL) The {Free Software Foundation}'s license designed to ensure the same freedoms for {documentation} that the {GPL} gives to {software}.
This dictionary is distributed under the GFDL, see the copyright notice in the {Free On-line Dictionary of Computing} section (at the start of the source file). The full text follows.
Version 1.1, March 2000
Copyright (C) 2000 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
0. PREAMBLE
The purpose of this License is to make a manual, textbook, or other written document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.
This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
1. APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you".
A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.
The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License.
The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License.
A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.
2. VERBATIM COPYING
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display copies.
3. COPYING IN QUANTITY
If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.
B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five).
C. State on the Title page the name of the publisher of the Modified Version, as the publisher.
D. Preserve all the copyright notices of the Document.
E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.
G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.
H. Include an unaltered copy of this License.
I. Preserve the section entitled "History", and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.
J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.
K. In any section entitled "Acknowledgements" or "Dedications", preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.
L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.
M. Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version.
N. Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.
You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice.
The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgements", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements."
6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an "aggregate", and this License does not apply to the other self-contained works thus compiled with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate.
8. TRANSLATION
Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail.
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See {here (http://www.gnu.org/copyleft/)}.
Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.
End of full text of GFDL.
(2002-03-09)

gnu general public license
GNU General Public License
{General Public License}

gnu mirror site
GNU mirror site
{GNU archive site}

gnu network object model environment
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)

gnu privacy guard
GNU Privacy Guard
[tool, cryptography} (GPG) {GNU}'s encryption and digital signature tool intended to be a free replacement for {PGP}.
(2003-04-12)

gnu problem report management system
GNU Problem Report Management System
[programming] (GNATS) {GNU}'s {bug tracking system}. Users who experience problems use electronic mail, web-based or other clients communicating with the GNATS network daemon running at the support site, or direct database submissions to communicate these problems to maintainers at that Support Site.
{(http://www.gnu.org/software/gnats)}.
(2002-06-12)

gnu public licence
GNU public licence
[legal] Properly known as the {General Public License}. Improperly known as the {General Public Virus}.
(1995-05-04)

gnu sed
GNU sed
[tool, text] A {GNU} version of the standard {Unix} {Sed} stream editor. GNU sed was written by Tom Lord [lord+@andrew.cmu.edu]. Version 2.03.
FTP from your nearest {GNU archive site}.
E-mail: [bug-gnu-utils@gnu.org] (bugs).
(1993-08-09)

gnu smalltalk
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)

gnu superoptimiser
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)

gnumacs
GNUMACS
/gnoo'maks/ [contraction of "GNU Emacs"] Often-heard abbreviated name for the {GNU} project's flagship tool, {Emacs}. Used especially in contrast with {GOSMACS}.
[{Jargon File}]

gnuplot
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-faq/faq.html)}.
{Usenet} newsgroup: {news:comp.graphics.gnuplot}.
(1995-05-04)

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

gnustep
GNUStep
[operating system] A {GNU} implementation of {OpenStep}. Work has started on an implementation using an existing library written in {Objective-C}. Much work remains to be done to bring this library close to the OpenStep specifications. Adam Fedor is head of the project.
{Home (http://www.gnustep.org/)}.
[Current status? Newsgroup?]
(1999-11-25)

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

go back n
Go Back N
A {data link layer} {protocol}.

go flatline
[{Cyberpunk} SF, refers to flattening of EEG traces upon brain-death] also "flatlined". 1. To {die}, terminate, or fail, especially irreversibly. In hacker parlance, this is used of machines only, human death being considered somewhat too serious a matter to employ jargon-jokes about.
2. To go completely quiescent; said of machines undergoing controlled shutdown. "You can suffer file damage if you shut down Unix but power off before the system has gone flatline."
3. Of a video tube, to fail by losing vertical scan, so all one sees is a bright horizontal line bisecting the screen.
[{Jargon File}]

go root
[Unix] To temporarily enter {root mode} in order to perform a privileged operation. This use is deprecated in Australia, where the verb "root" refers to animal sex. See {su}.
[{Jargon File}]

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)

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)

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}.
[{Jargon File}]

godel kurt
Godel, Kurt
{Kurt Godel}

godzillagram
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
Goedel
[language] (After the mathematician {Kurt Godel}) 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)

gofaster stripes
go-faster stripes
[jargon] {chrome}. Mainstream in some parts of UK.
[{Jargon File}]
(1998-07-05)

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

gogo
GO-GO
{ALPS}

gol
GOL
General Operating Language. Subsystem of {DOCUS}. [Sammet 1969, p.678].

golden
[Probabaly from folklore's "golden egg"] When used to describe a magnetic medium (e.g. "golden disk", "golden tape"), describes one containing a tested, up-to-spec, ready-to-ship software version. Compare {platinum-iridium}.
[{Jargon File}]

golf ball printer
[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
GOM
Good Old MAD.
Don Boettner, U Mich. MAD for the IBM 360. Parts of the MTS {time-sharing} system were written in GOM.

gonk
[jargon] /gonk/ 1. To prevaricate or to embellish the truth beyond any reasonable recognition. In German the term is (mythically) "gonken"; in Spanish the verb becomes "gonkar". "You're gonking me. That story you just told me is a bunch of gonk." In German, for example, "Du gonkst mir" (You're pulling my leg).
See also {gonkulator}.
2. (British) To grab some sleep at an odd time.
Compare {gronk out}.
[{Jargon File}]
(1995-03-07)

gonkulator
/gon'kyoo-lay-tr/ (From "Hogan's Heroes", the TV series) A pretentious piece of equipment that actually serves no useful purpose. Usually used to describe one's least favourite piece of computer hardware.
See {gonk}.
[{Jargon File}]
(1995-03-07)

good
GOOD
{Graph-Oriented Object Database}

good thing
Good Thing
[convention] (From the 1930 Sellar and Yeatman parody "1066 And All That") Often capitalised; always pronounced as if capitalised.
1. Self-evidently wonderful to anyone in a position to notice: "The {Trailblazer}'s 19.2 K{baud} {PEP} mode with {on-the-fly} {Lempel-Ziv compression} is a Good Thing for sites relaying {netnews}".
2. Something that can't possibly have any ill side-effects and may save considerable grief later: "Removing the {self-modifying code} from that {shared library} would be a Good Thing".
3. When said of software tools or libraries, as in "{Yacc} is a Good Thing", specifically connotes that the thing has drastically reduced a programmer's work load.
Opposite: {Bad Thing}, compare {big win}.
[{Jargon File}]
(1995-05-07)

google
Google
[World-Wide Web] The {World-Wide Web} {search engine} that indexes the greatest number of web pages - over two billion by December 2001 and provides a free service that searches this index in less than a second.
The site's name is apparently derived from "{googol}", but note the difference in spelling.
The "Google" spelling is also used in "The Hitchhikers Guide to the Galaxy" by Douglas Adams, in which one of Deep Thought's designers asks, "And are you not," said Fook, leaning anxiously foward, "a greater analyst than the Googleplex Star Thinker in the Seventh Galaxy of Light and Ingenuity which can calculate the trajectory of every single dust particle throughout a five-week Dangrabad Beta sand blizzard?"
{Home (http://www.google.com/)}.
(2001-12-28)

googol
[mathematics] The number represented in base-ten by a one with a hundred zeroes after it.
According to Webster's Dictionary, the name was coined in 1938 by Milton Sirotta, the nine-year-old nephew of American mathematician, Edward Kasner.
See also {googolplex}.
(2001-03-29)

googolplex
[mathematics] The number represented in base-ten by a one with a {googol} zeroes after it.
(2001-03-29)

gopher
[networking, protocol] A {distributed} document retrieval system which started as a {Campus Wide Information System} at the {University of Minnesota}, and which was popular in the early 1990s.
Gopher is defined in {RFC 1436}. The protocol is like a primitive form of {HTTP} (which came later). Gopher lacks the {MIME} features of HTTP, but expressed the equivalent of a document's {MIME type} with a one-character code for the "{Gopher object type}". At time of writing (2001), all Web browers should be able to access gopher servers, although few gopher servers exist anymore.
{Tim Berners-Lee}, in his book "Weaving The Web" (pp.72-73), related his opinion that it was not so much the protocol limitations of gopher that made people abandon it in favor of HTTP/{HTML}, but instead the legal missteps on the part of the university where it was developed:
"It was just about this time, spring 1993, that the University of Minnesota decided that it would ask for a license fee from certain classes of users who wanted to use gopher. Since the gopher software being picked up so widely, the university was going to charge an annual fee. The browser, and the act of browsing, would be free, and the server software would remain free to nonprofit and educational institutions. But any other users, notably companies, would have to pay to use gopher server software.
"This was an act of treason in the academic community and the Internet community. Even if the university never charged anyone a dime, the fact that the school had announced it was reserving the right to charge people for the use of the gopher protocols meant it had crossed the line. To use the technology was too risky. Industry dropped gopher like a hot potato."
(2001-03-31)

gopher client
Gopher client
[networking] A program which runs on your local computer and provides a {user interface} to the {Gopher} {protocol} and to gopher servers. {Web browsers} can act as Gopher clients and simple Gopher-only clients are available for ordinary terminals, the {X Window System}, {GNU Emacs}, and other systems.
{(ftp://boombox.micro.umn.edu/)}.
(2001-03-31)

gopher object type
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}.
[{Jargon File}]

gorilla arm
The side-effect that destroyed touch-screens as a mainstream input technology despite a promising start in the early 1980s. It seems the designers of all those {spiffy} touch-menu systems failed to notice that humans aren't designed to hold their arms in front of their faces making small motions. After more than a very few selections, the arm begins to feel sore, cramped, and oversized - the operator looks like a gorilla while using the touch screen and feels like one afterward. This is now considered a classic cautionary tale to human-factors designers; "Remember the gorilla arm!" is shorthand for "How is this going to fly in *real* use?".

gorp
/gorp/ (CMU, perhaps from the canonical hiker's food, Good Old Raisins and Peanuts) Another {metasyntactic variable}, like {foo} and {bar}.

gosip
GOSIP
{Government OSI Profile}

gosling james
Gosling, James
{James Gosling}

gosmacs
GOSMACS
/goz'maks/ Gosling Emacs. The first {Emacs} implementation in {C}, predating but now largely eclipsed by {GNU} {Emacs}. Originally {freeware}; a commercial version is now modestly popular as {UniPress Emacs}. The author (James Gosling) went on to invent {NeWS}.
[{Jargon File}]

gosperism
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
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.
[{Jargon File}]
(1995-04-17)

goto
[programming] (Or "GOTO", "go to", "GO TO", "JUMP", "JMP") A construct and {keyword} found in several higher-level programming languages (e.g. {Fortran}, {COBOL}, {BASIC}, {C}) to cause an {unconditional jump} or transfer of {control} from one point in a program to another. The destination of the jump is usually indicated by a {label}.
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 programming}, and especially following the famous article "GOTO statement {considered harmful}". Since a GOTO is effectively an {assignment} to the {program counter}, it is tempting to make the generalisation "assignment considered harmful" and indeed, this is the basis of {functional programming}.
Nearly(?) all {machine language} {instruction sets} include a GOTO instruction, though in this context it is usually called branch or jump or some {mnemonic} based on these.
See also {COME FROM}.
(2000-12-13)

gottlob frege
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
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)

gp
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
GPF
{General Protection failure}/fault

gpib
GPIB
{IEEE 488}

gpl
GPL
1. {General Purpose Language}.
2. ["A Sample Management Application Program in a Graphical Data-driven Programming language", A.L. Davis et al, Digest of Papers, Compcon Spring 81, Feb 1981, pp. 162-167].
3. {Genken Programming Language}.
4. {General Public License}.
[{Jargon File}]

gpm
GPM
{General Purpose Macro-generator}

gprs
GPRS
{General Packet Radio Service}

gps
GPS
{Global Positioning System}

gpss
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
GPV
{General Public Virus}

gpx
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
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
Grace Hopper
[person] US Navy Rear Admiral Grace Brewster Hopper (1906-12-09 to 1992-01-01), nee 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
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
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
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
GRAIN
A pictorial {query language}.
["Pictorial Information Systems", S.K. Chang et al eds, Springer 1980].
(1995-01-23)

grain
{granularity}

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

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.

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

graphic display interface
Graphic Display Interface
[hardware] (GDI) {graphics adaptor}.
(1995-03-16)

graphic language
Graphic Language
For specifying graphic operations.
["A Problem Oriented Graphic Language", P.J. Schwinn, proc ACM 22nd Natl Conf, 1967].
[Sammet 1969, p. 677].

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)

graphical kernel system
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
Graphical User Interface
[operating system] (GUI) The use of pictures rather than just words to represent the input and output of a program. A program with a GUI runs under some {windowing system} (e.g. The {X Window System}, {MacOS}, {Microsoft Windows}, {Acorn} {RISC OS}, {NEXTSTEP}). The program displays certain {icons}, {buttons}, {dialogue boxes}, etc. in its {windows} on the screen and the user controls it mainly by moving a {pointer} on the screen (typically controlled by a {mouse}) and selecting certain objects by pressing buttons on the mouse while the pointer is pointing at them. This contrasts with a {command line interface} where communication is by exchange of strings of text.
Windowing systems started with the first {real}-time graphic display systems for computers, namely the {SAGE} Project [Dates?] and {Ivan Sutherland}'s {Sketchpad} (1963). {Douglas Engelbart}'s {Augmentation of Human Intellect} project at {SRI} in the 1960s developed the {On-Line System}, which incorporated a mouse-driven cursor and multiple windows. Several people from Engelbart's project went to Xerox PARC in the early 1970s, most importantly his senior engineer, {Bill English}. The Xerox PARC team established the {WIMP} concept, which appeared commercially in the {Xerox 8010} (Star) system in 1981.
Beginning in 1980(?), led by {Jef Raskin}, the {Macintosh} team at {Apple Computer} (which included former members of the Xerox PARC group) continued to develop such ideas in the first commercially successful product to use a GUI, the Apple Macintosh, released in January 1984. In 2001 Apple introduced {Mac OS X}.
{Microsoft} modeled the first version of {Windows}, released in 1985, on Mac OS. Windows was a GUI for {MS-DOS} that had been shipped with {IBM PC} and compatible computers since 1981. Apple sued Microsoft over infringement of the look-and-feel of the MacOS. The court case ran for many years.
[Wikipedia].
(2002-03-25)

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 Interchange Format
[graphics, file format] /gif/, occasionally /jif/ (GIF, GIF 89A) A standard for digitised {images} compressed with the {LZW} {algorithm}, defined in 1987 by {CompuServe} (CIS).
Graphics Interchange Format and GIF are service marks of {CompuServe} Incorporated. This only affects use of GIF within Compuserve, and pass-through licensing for software to access them, it doesn't affect anyone else's use of GIF. It followed from a 1994 legal action by {Unisys} against CIS for violating Unisys's {LZW} {software patent}. The CompuServe Vice President has stated that "CompuServe is committed to keeping the GIF 89A specification as an open, fully-supported, non-proprietary specification for the entire on-line community including the {World-Wide Web}".
{Filename extension}: .gif.
{File format (ftp://peipa.essex.ac.uk/ipa/info/file-formats)}.
{GIF89a specification (http://asterix.seas.upenn.edu/~mayer/lzw_gif/gif89a.html)}.
See also {progressive coding}, {animated GIF}.
(2000-09-12)

graphics interface format
Graphics Interface Format
[spelling] You mean "{Graphics Interchange Format}".
(1999-10-11)

graphics language object system
Graphics Language Object System
[graphics, language] (GLOS) A language with statements for describing graphics objects (line, circle, polygon, etc.), written by Michael J McLean and Brian Hicks at the University of Queensland, St. Lucia in 1978. New objects are defined using {procedures}. 2-D transformations are context dependent and may be nested.
[M.J. McLean, "The Semantics of Computer Drafting Languages", PhD thesis, University of Queensland, 1978].
[Hicks, B.W., and McLean, M.J. "A Graphic Language for Describing Line Objects", Proceedings of the DECUS-Australia August 1973 Symposium, Melbourne, 1973].
(2002-06-01)

graphoriented object database
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)

grapple
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
GRAS
A {public domain} {graph-oriented database} system for {software engineering} applications from {RWTH Aachen}.

graspada
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
GRASPIN
An Esprit project to develop a personal software engineering environment to support the construction and verification of distributed and non-sequential software systems.

grault
/grawlt/ Yet another {metasyntactic variable}, invented by Mike Gallaher and propagated by the {GOSMACS} documentation. See {corge}.
[{Jargon File}]

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

gray code
[hardware] A {binary} sequence with the property that only one {bit} changes between any two consecutive elements (the two codes have a {Hamming distance} of one).
The gray code originated when {digital logic} circuits were built from {vacuum tubes} and electromechanical {relays}. Counters generated tremendous power demands and noise spikes when many bits changed at once. E.g. when incrementing a register containing 11111111, the {back-EMF} from the relays' collapsing magnetic fields required copious noise suppression. Using gray code counters, any increment or decrement changed only one bit, regardless of the size of the number.
Gray code can also be used to convert the angular position of a disk to digital form. A radial line of sensors reads the code off the surface of the disk and if the disk is half-way between two positions each sensor might read its bit from both positions at once but since only one bit differs between the two, the value read is guaranteed to be one of the two valid values rather than some third (invalid) combination (a {glitch}).
One possible {algorithm} for generating a gray code sequence is to toggle the lowest numbered bit that results in a new code each time. Here is a four bit gray code sequence generated in this way:
0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0
The codes were patented in 1953 by Frank Gray, a {Bell Labs} researcher.
{(http://www.nist.gov/dads/HTML/graycode.html)}.
(2002-08-29)

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)

grayscale
gray-scale
[spelling] US spelling of "{grey-scale}".

grd
[gr&d]
[chat] Grinning, running and ducking.
See {emoticon}.
(1995-03-17)

gre
GRE
{Generic Routing Encapsulation}

great renaming
Great Renaming
[Usenet, history] The {flag day} in 1986 on which all of the non-local groups on the {Usenet} had their names changed from the net.- format to the current multiple-hierarchies scheme. Used especially in discussing the history of newsgroup names. "The oldest sources group is comp.sources.misc; before the Great Renaming, it was net.sources."
{FAQ (http://www.vrx.net/usenet/history/rename.html)}.
[{Jargon File}]
(2000-07-14)

great runes
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
Great Worm
{Internet Worm}

greater than
[character] "]" {ASCII} character 62.
Common names: {ITU-T}: greater than; ket ("[" = bra); right angle; right angle bracket; right broket. Rare: into, toward; write to; blow ("[" = suck); gozinta; out; zap (all from {Unix} {I/O redirection}); {INTERCAL}: right angle.
See also {less than}.
(1995-03-17)

greatest common divisor
[mathematics] (GCD) A function that returns the largest positive {integer} that both arguments are integer multiples of.
See also {Euclid's Algorithm}. Compare: {lowest common multiple}.
(1999-11-02)

greatest lower bound
[theory] (glb, meet, infimum) The greatest lower bound of two elements, a and b is an element c such that c [= a and c [= b and if there is any other lower bound c' then c' [= c.
The greatest lower bound of a set S is the greatest element b such that for all s in S, b [= s. The glb of mutually comparable elements is their minimum but in the presence of incomparable elements, if the glb exists, it will be some other element less than all of them.
glb is the dual to {least upper bound}.
(In {LaTeX} "[=" is written as {\sqsubseteq}, the glb of two elements a and b is written as a {\sqcap} b and the glb of set S as \bigsqcap S).
(1995-02-03)

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
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
Green Book
1. [publication] Informal name for one of the four standard references on {PostScript}. The other three official guides are known as the {Blue Book}, the {Red Book}, and the {White Book}.
["PostScript Language Program Design", Adobe Systems, Addison-Wesley, 1988 (ISBN 0-201-14396-8)].
2. [publication] Informal name for one of the three standard references on {SmallTalk}. Also associated with blue and red books.
["Smalltalk-80: Bits of History, Words of Advice", by Glenn Krasner (Addison-Wesley, 1983; QA76.8.S635S58; ISBN 0-201-11669-3)].
3. [publication] The "X/Open Compatibility Guide", which defines an international standard {Unix} environment that is a proper superset of {POSIX}/SVID. It also includes descriptions of a standard utility toolkit, systems administrations features, and the like. This grimoire is taken with particular seriousness in Europe. See {Purple Book}.
4. [publication] The {IEEE} 1003.1 {POSIX} Operating Systems Interface standard has been dubbed "The Ugly Green Book".
5. [publication] Any of the 1992 standards issued by the {ITU-T}'s tenth plenary assembly. These include, among other things, the dreadful {X.400} {electronic mail} standard and the Group 1 through 4 fax standards.
6. {Green Book CD-ROM}.
See also {book titles}.
[{Jargon File}]
(1996-12-03)

green book cdrom
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}.
[{Jargon File}]
(1994-11-02)

green card
[after the "IBM System/360 Reference Data" card] A summary of an assembly language, even if the colour is not green. Less frequently used now because of the decrease in the use of assembly language. "I'll go get my green card so I can check the {addressing mode} for that instruction." Some green cards are actually booklets.
The original green card became a yellow card when the System/370 was introduced, and later a yellow booklet. An anecdote from IBM refers to a scene that took place in a programmers' terminal room at Yorktown in 1978. A luser overheard one of the programmers ask another "Do you have a green card?" The other grunted and passed the first a thick yellow booklet. At this point the luser turned a delicate shade of olive and rapidly left the room, never to return.
[{Jargon File}]

green lightning
[IBM] 1. Apparently random flashing streaks on the face of 3278-9 terminals while a new symbol set is being downloaded. This hardware bug was left deliberately unfixed, as some genius within IBM suggested it would let the user know that "something is happening". That, it certainly does. Later microprocessor-driven IBM colour graphics displays were actually *programmed* to produce green lightning!
2. [proposed] Any bug perverted into an alleged feature by adroit rationalisation or marketing. "Motorola calls the CISC cruft in the 88000 architecture "compatibility logic", but I call it green lightning". See also {feature}.

green machine
A computer or peripheral device that has been designed and built to military specifications for field equipment (that is, to withstand mechanical shock, extremes of temperature and humidity, and so forth). Comes from the olive-drab "uniform" paint used for military equipment.
[{Jargon File}]

green monitor
{Advanced Power Management}

greens theorem
Green's Theorem
[humour] (TMRC) For any story, in any group of people there will be at least one person who has not heard the story. A refinement of the theorem states that there will be *exactly* one person (if there were more than one, it wouldn't be as bad to re-tell the story). The name of this theorem is a play on a fundamental theorem in calculus.
[{Jargon File}]
(1994-12-16)

greenwich mean time
Greenwich Mean Time
[time, standard] (GMT) The local time on the Greenwich meridian, based on the hypothetical mean sun (which averages out the effects of the Earth's elliptical orbit and its tilted axis). GMT is the basis of the civil time for the UK.
In 1925 the reference point was changed from noon to midnight and it was recommended that the term "{Universal Time}" should be used for the new GMT.
Authorities disagreed on whether GMT equates with {UT0} or {UT1}, however the differences between the two are of the order of thousandths of a second. GMT is no longer used for scientific purposes.
(2001-08-02)

greg olson
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}.
[{Jargon File}]

greyscale
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
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
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
GRIB
GRid In Binary.
The World Meteorological Organization's data format.
(1995-01-10)

grick
/grik/ ({WPI}, first used by Tim Haven to describe "grick trigonometry", a shortcut method of determing attack angles in grid-based games like Star Trek) Any integral increment of measurement. E.g. "Please turn the stereo up a few gricks".
(1995-01-31)

grilf
Girl-friend.
Like {newsfroup} and {filk}, a typo incarnated as a new word. Seems to have originated sometime in 1992.
[{Jargon File}]
(1995-01-31)

grim file reaper
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
GRIND
GRaphical INterpretive Display.
A graphics input language for the {PDP-9}.
["GRIND: A Language and Translator for Computer Graphics", A.P. Conn, Dartmouth, June 1969].
[{Jargon File}]
(1995-01-31)

grind
1. (MIT and Berkeley) To prettify hardcopy of code, especially LISP code, by reindenting lines, printing keywords and comments in distinct fonts (if available), etc. This usage was associated with the MacLISP community and is now rare; {prettyprint} was and is the generic term for such operations.
2. (Unix) To generate the formatted version of a document from the {nroff}, {troff}, {TeX}, or Scribe source.
3. To run seemingly interminably, especially (but not necessarily) if performing some tedious and inherently useless task. Similar to {crunch} or {grovel}. Grinding has a connotation of using a lot of CPU time, but it is possible to grind a disk, network, etc.
See also {hog}.
4. To make the whole system slow. "Troff really grinds a PDP-11."
5. "grind grind" excl. Roughly, "Isn't the machine slow today!"
[{Jargon File}]
(1994-12-16)

grind crank
A mythical accessory to a {terminal}. A crank on the side of a monitor, which when operated makes a zizzing noise and causes the computer to run faster. Usually one does not refer to a grind crank out loud, but merely makes the appropriate gesture and noise. See {grind}.
Historical note: At least one real machine actually had a grind crank - the R1, a research machine built toward the end of the days of the great vacuum tube computers, in 1959. R1 (also known as "The Rice Institute Computer" (TRIC) and later as "The Rice University Computer" (TRUC)) had a {single-step}/free-run switch for use when debugging programs. Since single-stepping through a large program was rather tedious, there was also a crank with a cam and gear arrangement that repeatedly pushed the single-step button. This allowed one to "crank" through a lot of code, then slow down to single-step for a bit when you got near the code of interest, poke at some registers using the console typewriter, and then keep on cranking.
[{Jargon File}]

grip
GRIP
Graph Reduction In Parallel.
Simon Peyton Jones's GRIP machine built at {UCL}, now at the {University of Glasgow}. It has many processors ({Motorola 68020} or other) on {Futurebus} with intelligent memory units.
(1994-12-14)

gripenet
[IBM] A wry (and thoroughly unofficial) name for {IBM}'s internal {VNET} system, deriving from its common use by IBMers to voice pointed criticism of IBM management that would be taboo in more formal channels.
[{Jargon File}]

gritch
/grich/ 1. A complaint (often caused by a {glitch}).
2. To complain. Often verb-doubled: "Gritch gritch".
3. A synonym for {glitch} (as verb or noun).
(1995-01-31)

grix
/griks/ ({WPI}) A meta-number, said to be an integer between 6 and 7. Used either alone or with {flib} or suffixes such as -ty, -teen, etc. to denote an arbitrary integer (see {N}). "This system will {bomb} if there are grixty-flib users on it."
(1995-01-31)

groff
GNU roff.
{GNU}'s implementation of {roff} in {C++}.
See also {nroff}, {troff}.
Version 1.07 by James J. Clark [jjc@jclark.com].
FTP groff-1.07.tar.z from a {GNU archive site}.
(1993-03-03)

grok
/grok/, /grohk/ (From the novel "Stranger in a Strange Land", by Robert A. Heinlein, where it is a Martian word meaning literally "to drink" and metaphorically "to be one with")
1. To understand, usually in a global sense. Connotes intimate and exhaustive knowledge.
Contrast {zen}, which is similar supernal understanding experienced as a single brief flash. See also {glark}.
2. Used of programs, may connote merely sufficient understanding. "Almost all C compilers grok the "void" type these days."
[{Jargon File}]
(1995-01-31)

gronk
/gronk/ Popularised by Johnny Hart's comic strip "B.C." but the word apparently predates that.
1. To clear the state of a {wedged} device and restart it. More severe than "to {frob}" (sense 2).
2. [TMRC] To cut, sever, smash, or similarly disable.
3. The sound made by many 3.5-inch diskette drives. In particular, the microfloppies on a Commodore {Amiga} go "grink, gronk".
[{Jargon File}]

gronked
1. Broken. "The teletype scanner was gronked, so we took the system down."
2. Of people, the condition of feeling very tired or (less commonly) sick. "I've been chasing that bug for 17 hours now and I am thoroughly gronked!" Compare {broken}, which means about the same as {gronk} used of hardware, but connotes depression or mental/emotional problems in people.

group
A group G is a non-empty {set} upon which a {binary} operator * is defined with the following properties for all a,b,c in G:
Closure: G is closed under *, a*b in G Associative: * is associative on G, (a*b)*c = a*(b*c) Identity: There is an identity element e such that a*e = e*a = a. Inverse: Every element has a unique inverse a' such that a * a' = a' * a = e. The inverse is usually written with a superscript -1.
(1998-10-03)

group 3
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
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
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
Group Separator
[character] (GS) {ASCII} character 29.
(1996-06-28)

groupsweeping scheduling
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
Groupware
See {CSCW}.

groupwise
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."
[{Jargon File}]

grunge
/gruhnj/ 1. That which is grungy, or that which makes it so.
2. [Cambridge] Code which is inaccessible due to changes in other parts of the program. The preferred term in North America is {dead code}.

gry
[puzzle] "Angry" and "hungry" are two words that end in "gry". There are three words in the English language. What is the third word? Everyone knows what it means and everyone uses it every day. Look closely and I have already given you the third word. What is it?
Answer: "language".
This puzzle has circulated widely on the Internet for some years, but usually in an abbreviated form such as "Name three common English words ending in 'gry'", which has no good third answer.
{(http://www.word-detective.com/gry.html)}.
(2001-04-09)

gs
[networking] The {country code} for South Georgia and the South Sandwich Islands.
(1999-01-27)

gs
GS
{Group Separator}

gsbl
GSBL
[language]
["GSBL: An Algebraic Specification Language Based on Inheritance", S. Clerici et al in ECOOP '88, S. Gjessing et al eds, LNCS 322, Springer 1988, pp.78-92].
(2003-06-02)

gsi
GSI
{Gensym Standard Interface}

gsl
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
GSM
{Global System for Mobile Communications}

gspl
GSPL
[language] {Greenberg's System Programming Language}.
Bernard Greenberg.
(1995-05-09)

gss
GSS
[storage] {Group-Sweeping Scheduling}.
(1995-11-12)

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

gtl
GTL
{Gunning Transceiver Logic}

gtsql
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
Guarded Horn Clauses
[language] (GHC) A parallel dialect of {Prolog} by K. Ueda in which each {clause} has a {guard}. GHC is similar to {Parlog}. When several clauses match a {goal}, their guards are evaluated in parallel and the first clause whose guard is found to be true is used and others are rejected. It uses {committed-choice nondeterminism}.
See also {FGHC}, {KL1}.
(1995-05-09)

gubbish
[jargon] /guhb'*sh/ (A portmanteau of "garbage" and "rubbish" which may have originated with SF author Philip K. Dick) Garbage; crap; nonsense. "What is all this gubbish?" The opposite portmanteau "rubbage" is also reported.
[{Jargon File}]
(1995-05-09)

gui
GUI
{Graphical User Interface}

guide
GUIDE
{Graphical User Interface} Development Environment from {Sun}.

guide
Guide
A {hypertext} system from the University of Kent (GB) and {OWL} for displaying on-line documentation.

guide to available mathematical software
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.
[{Jargon File}]

gun
[jargon] ({ITS}, from the ":GUN" command) To forcibly terminate a program or job (computer, not career). "Some idiot left a background process running soaking up half the cycles, so I gunned it."
Compare {can}.
(1995-02-27)

gunch
/guhnch/ [jargon] ({TMRC}) To push, prod, or poke at a device that has almost (but not quite) produced the desired result. Implies a threat to {mung}.
[{Jargon File}]
(1995-02-27)

gunning transceiver logic
Gunning Transceiver Logic
[electronics, hardware, integrated circuit, standard] (GTL) A {standard} for electrical signals in {CMOS} circuits used to provide higher data transfer speeds with smaller voltage swings [compared with what?].
The GTL signal swings between 0.4 volts and 1.2 volts with a reference voltage of about 0.8 volts. Only a small deviation of 0.4 volts (or thereabouts) from the reference voltage is required to switch between on and off states. Therefore, a GTL signal is said to be a low voltage swing logic signal.
Gunning Transceiver Logic has several advantages. The {resistive termination} of a GTL signal provides a clean signalling environment [what?]. Moreover, the low terminating voltage of 1.2 volts results in reduced voltage drops across the resistive elements. GTL has low power dissipation and can operate at high frequency and causes less {electromagnetic interference} (EMI).
{GTL/BTL: A Low-Swing Solution for High-Speed Digital Logic (http://www.edtn.com/scribe/reference/appnotes/md003ecc.htm)}.
(2000-01-16)

gunzip
[tool, compression] The decompression utility corresponding to {gzip}. In operating systems with links, gunzip is just a link to gzip and its function can be invoked by passing a "-d" flag to gzip.
(1996-01-03)

gupta corporation
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}.
[{Jargon File}]
(1996-06-01)

guru
[job] An expert, especially in "{Unix} guru". Implies not only {wizard} skill but also a history of being a knowledge resource for others. Less often, used (with a qualifier) for other experts on other systems, as in "VMS guru".
See {source of all good bits}.
[{Jargon File}]
(1996-06-01)

guru meditation
[operating system, exception] The {Amiga} equivalent of {Unix}'s {panic} (sometimes just called a "guru" or "guru event"). When the system crashes, a cryptic message of the form "GURU MEDITATION #XXXXXXXX.YYYYYYYY" may appear, indicating what the problem was. An Amiga guru can figure things out from the numbers.
In the earliest days of the Amiga, there was a device called a "Joyboard" which was basically a plastic board built onto a joystick-like device; it was sold with a skiing game cartridge for the Atari game machine. It is said that whenever the prototype OS crashed, the system programmer responsible would concentrate on a solution while sitting cross-legged, balanced on a Joyboard, resembling a meditating guru. Sadly, the joke was removed in AmigaOS 2.04.
The {Jargon File} claimed that a {guru} event had to be followed by a {Vulcan nerve pinch} but, according to a correspondent, a mouse click was enough to start a reboot.
(2002-06-25)

guy lewis steele jr
Guy Lewis Steele, Jr.
[person] (GLS) A software engineer whose most notable contributions to the art of computing include the design of {Scheme} (in cooperation with {Gerald Sussman}) and the design of the original command set of {Emacs}. He is also known for his contribution to the {Jargon File} and for being the first to port {TeX} (from {WAITS} to {ITS}). He wrote the book "Common Lisp", which virtually defines the language.
He was working at {Sun Microsystems, Inc.} from 1996 to the present (June 2001).
(2001-06-14)

guy steele
Guy Steele
{Guy Lewis Steele, Jr.}

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

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

gwbasic
GW-BASIC
[language] An early version of {MS-BASIC}.
(1995-05-12)

gweep
/gweep/ To {hack}, usually at night, or one who does so. At {WPI}, from 1977 onward, gweeps could often be found at the College Computing Center punching cards or crashing the {PDP-10} or, later, the {DEC-20}. The term has survived the demise of those technologies, however, and is still alive in late 1991. "I'm going to go gweep for a while. See you in the morning." "I gweep from 8 PM till 3 AM during the week."
"Gweep" originated as an onomatopeiac term, evoking the sound of the (once-ubiquitous) {Hazeltine 9000} terminals' bell on WPI campus.
A gweep is one step above a {fweep}.
[{Jargon File}]
(1995-01-31)

gwhis
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
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
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 (gnu.org/pub/gnu) are in gzip format and their names end in ".gz" (as opposed to "compress"-compressed files, which end in ".Z").
Gzip can uncompress "compress"-compressed files and "pack" files (which end in ".z"). The decompression algorithms are not patented, only compression is.
The gzip program is available from any {GNU archive site} in {shar}, {tar}, or gzipped tar format (for those who already have a prior version of gzip and want faster data transmission). It works on virtually every {Unix} system, {MS-DOS}, {OS/2} and {VMS}.

h
1. A simple {markup} language intended for quick conversion of existing text to {hypertext}.
2. A method of marking common words to call attention to the fact that they are being used in a nonstandard, ironic, or humorous way. Originated in the fannish catchphrase "Bheer is the One True Ghod!" from decades ago. H-infix marking of "Ghod" and other words spread into the 1960s counterculture via underground comix, and into early hackerdom either from the counterculture or from SF fandom (the three overlapped heavily at the time). More recently, the h infix has become an expected feature of benchmark names (Dhrystone, Rhealstone, etc.); this follows on from the original Whetstone (the name of a laboratory) but may have been influenced by the fannish/counterculture h infix.
[{Jargon File}]
(1994-11-04)

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

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

ha ha only serious
(SF fandom, originally as mutation of HHOK, "Ha Ha Only Kidding") A phrase (often seen abbreviated as HHOS) that aptly captures the flavour of much hacker discourse. Applied especially to parodies, absurdities, and ironic jokes that are both intended and perceived to contain a possibly disquieting amount of truth, or truths that are constructed on in-joke and self-parody.
The {Jargon File} contains many examples of ha-ha-only-serious in both form and content. Indeed, the entirety of hacker culture is often perceived as ha-ha-only-serious by hackers themselves; to take it either too lightly or too seriously marks a person as an outsider, a {wannabee}, or in {larval stage}. For further enlightenment on this subject, consult any Zen master. See also {AI koan}.
[{Jargon File}]

habitat
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}.
[{Jargon File}]
(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.
[{Jargon File}]
(1996-08-26)

hack mode
[jargon] Engaged in {hack}ing. A Zen-like state of total focus on The Problem that may be achieved when one is hacking (this is why every good hacker is part mystic). Ability to enter such concentration at will correlates strongly with wizardliness; it is one of the most important skills learned during {larval stage}. Sometimes amplified as "deep hack mode".
Being yanked out of hack mode (see {priority interrupt}) may be experienced as a physical shock, and the sensation of being in hack mode is more than a little habituating. The intensity of this experience is probably by itself sufficient explanation for the existence of hackers, and explains why many resist being promoted out of positions where they can code. See also {cyberspace}.
Some aspects of hackish etiquette will appear quite odd to an observer unaware of the high value placed on hack mode. For example, if someone appears at your door, it is perfectly okay to hold up a hand (without turning one's eyes away from the screen) to avoid being interrupted. One may read, type, and interact with the computer for quite some time before further acknowledging the other's presence (of course, he or she is reciprocally free to leave without a word). The understanding is that you might be in {hack mode} with a lot of delicate state in your head, and you dare not {swap} that context out until you have reached a good point to pause. See also {juggling eggs}.
[{Jargon File}]
(1996-07-31)

hack on
To {hack}; implies that the subject is some pre-existing hunk of code that one is evolving, as opposed to something one might {hack up}.
[{Jargon File}]

hack together
[jargon] To throw something together so it will work. Unlike "kluge together" or "cruft together", this does not necessarily have negative connotations.
(2003-09-02)

hack up
[jargon] To {hack}, but generally implies that the result is a quick hack. Contrast this with {hack on}. To "hack up on" implies a {quick-and-dirty} modification to an existing system. Contrast {hacked up}; compare {kluge up}, {monkey up}, cruft together.
[{Jargon File}]
(2003-09-02)

hack value
Often adduced as the reason or motivation for expending effort toward a seemingly useless goal, the point being that the accomplished goal is a hack. For example, MacLISP had features for reading and printing Roman numerals, which were installed purely for hack value. See {display hack} for one method of computing hack value, but this cannot really be explained, only experienced. As Louis Armstrong once said when asked to explain jazz: "Man, if you gotta ask you'll never know." (Feminists please note Fats Waller's explanation of rhythm: "Lady, if you got to ask you ain't got it.")

hacked off
[jargon] (Analogous to "pissed off") Said of {system administrators} who have become annoyed, upset, or touchy owing to suspicions that their sites have been or are going to be victimised by {crackers}, or used for inappropriate, technically illegal, or even overtly criminal activities. For example, having unreadable files in your home directory called "worm", "lockpick", or "goroot" would probably be an effective (as well as impressively obvious and stupid) way to get your sysadmin hacked off at you.
[{Jargon File}]
(1996-08-26)

hacked up
[jargon, programming] Sufficiently {patched}, {kluge}d, and {tweaked} that the surgical scars are beginning to crowd out normal tissue (compare {critical mass}). Not all programs that are hacked become "hacked up"; if modifications are done with some eye to coherence and continued maintainability, the software may emerge better for the experience.
Contrast {hack up}.
[{Jargon File}]
(1996-08-26)

hacker
[person, jargon] (Originally, someone who makes furniture with an axe) 1. A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary.
2. One who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming.
3. A person capable of appreciating {hack value}.
4. A person who is good at programming quickly.
5. An expert at a particular program, or one who frequently does work using it or on it; as in "a {Unix} hacker". (Definitions 1 through 5 are correlated, and people who fit them congregate.)
6. An expert or enthusiast of any kind. One might be an astronomy hacker, for example.
7. One who enjoys the intellectual challenge of creatively overcoming or circumventing limitations.
8. (Deprecated) A malicious meddler who tries to discover sensitive information by poking around. Hence "password hacker", "network hacker". The correct term is {cracker}.
The term "hacker" also tends to connote membership in the global community defined by the net (see {The Network} and {Internet address}). It also implies that the person described is seen to subscribe to some version of the {hacker ethic}.
It is better to be described as a hacker by others than to describe oneself that way. Hackers consider themselves something of an elite (a meritocracy based on ability), though one to which new members are gladly welcome. Thus while it is gratifying to be called a hacker, false claimants to the title are quickly labelled as "bogus" or a "{wannabee}".
9. (University of Maryland, rare) A programmer who does not understand proper programming techniques and principles and doesn't have a Computer Science degree. Someone who just bangs on the keyboard until something happens. For example, "This program is nothing but {spaghetti code}. It must have been written by a hacker".
[{Jargon File}]
(1996-08-26)

hacker ethic
[philosophy] 1. The belief that information-sharing is a powerful positive good, and that it is an ethical duty of hackers to share their expertise by writing free software and facilitating access to information and to computing resources wherever possible.
2. The belief that system-cracking for fun and exploration is ethically OK as long as the cracker commits no theft, vandalism, or breach of confidentiality.
Both of these normative ethical principles are widely, but by no means universally, accepted among hackers. Most hackers subscribe to the hacker ethic in sense 1, and many act on it by writing and giving away free software. A few go further and assert that *all* information should be free and *any* proprietary control of it is bad; this is the philosophy behind the {GNU} project.
Sense 2 is more controversial: some people consider the act of cracking itself to be unethical, like breaking and entering. But the belief that "ethical" cracking excludes destruction at least moderates the behaviour of people who see themselves as "benign" crackers (see also {samurai}). On this view, it may be one of the highest forms of hackerly courtesy to (a) break into a system, and then (b) explain to the sysop, preferably by e-mail from a {superuser} account, exactly how it was done and how the hole can be plugged - acting as an unpaid (and unsolicited) {tiger team}.
The most reliable manifestation of either version of the hacker ethic is that almost all hackers are actively willing to share technical tricks, software, and (where possible) computing resources with other hackers. Huge cooperative networks such as {Usenet}, {FidoNet} and Internet (see {Internet address}) can function without central control because of this trait; they both rely on and reinforce a sense of community that may be hackerdom's most valuable intangible asset.
(1995-12-18)

hacker humour
A distinctive style of shared intellectual humour found among hackers, having the following marked characteristics:
1. Fascination with form-vs.-content jokes, paradoxes, and humour having to do with confusion of metalevels (see {meta}). One way to make a hacker laugh: hold a red index card in front of him/her with "GREEN" written on it, or vice-versa (note, however, that this is funny only the first time).
2. Elaborate deadpan parodies of large intellectual constructs, such as specifications (see {write-only memory}), standards documents, language descriptions (see {INTERCAL}), and even entire scientific theories (see {quantum bogodynamics}, {computron}).
3. Jokes that involve screwily precise reasoning from bizarre, ludicrous, or just grossly counter-intuitive premises.
4. Fascination with puns and wordplay.
5. A fondness for apparently mindless humour with subversive currents of intelligence in it - for example, old Warner Brothers and Rocky & Bullwinkle cartoons, the Marx brothers, the early B-52s, and Monty Python's Flying Circus. Humour that combines this trait with elements of high camp and slapstick is especially favoured.
6. References to the symbol-object antinomies and associated ideas in Zen Buddhism and (less often) Taoism. See {has the X nature}, {Discordianism}, {zen}, {ha ha only serious}, {AI koan}.
See also {filk} and {retrocomputing}. If you have an itchy feeling that all 6 of these traits are really aspects of one thing that is incredibly difficult to talk about exactly, you are (a) correct and (b) responding like a hacker. These traits are also recognizable (though in a less marked form) throughout {science-fiction fandom}.
(1995-12-18)

hacking run
[jargon] (Analogy with "bombing run" or "speed run") A hack session extended long outside normal working times, especially one longer than 12 hours. May cause you to "change {phase} the hard way".
[{Jargon File}]
(1996-08-26)

hacking x for y
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).
[{Jargon File}]

hackintosh
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}.
[{Jargon File}]
(1995-03-08)

hackishness
[jargon] The quality of being or involving a {hack}. This term is considered mildly silly.
Synonym {hackitude}.
[{Jargon File}]
(1995-03-08)

hackitude
[jargon] An even sillier word for {hackishness}.
[{Jargon File}]
(1995-03-08)

hair
[back-formation from {hairy}] The complications that make something hairy. "Decoding {TECO} commands requires a certain amount of hair." Often seen in the phrase "infinite hair", which connotes extreme complexity. Also in "hairiferous" (tending to promote hair growth): "GNUMACS elisp encourages {lusers} to write complex editing modes." "Yeah, it's pretty hairiferous all right." (Or just: "Hair squared!")

hairy
1. Annoyingly complicated. "{DWIM} is incredibly hairy."
2. Incomprehensible. "{DWIM} is incredibly hairy."
3. Of people, high-powered, authoritative, rare, expert, and/or incomprehensible. Hard to explain except in context: "He knows this hairy lawyer who says there's nothing to worry about." See also {hirsute}.
The adjective "long-haired" is well-attested to have been in slang use among scientists and engineers during the early 1950s; it was equivalent to modern "hairy" and was very likely ancestral to the hackish use. In fact the noun "long-hair" was at the time used to describe a hairy person. Both senses probably passed out of use when long hair was adopted as a signature trait by the 1960s counterculture, leaving hackish "hairy" as a sort of stunted mutant relic.
4. [topology] {hairy ball}.
[{Jargon File}]
(2001-03-29)

hairy ball
[topology] A result in {topology} stating that a continuous {vector field} on a sphere is always zero somewhere. The name comes from the fact that you can't flatten all the hair on a hairy ball, like a tennis ball, there will always be a tuft somewhere (where the tangential projection of the hair is zero). An immediate corollary to this theorem is that for any {continuous map} f of the sphere into itself there is a point x such that f(x)=x or f(x) is the {antipode} of x. Another corollary is that at any moment somewhere on the Earth there is no wind.
(2002-01-07)

hakmem
HAKMEM
[publication] /hak'mem/ MIT AI Memo 239 (February 1972). A legendary collection of neat mathematical and programming hacks contributed by many people at MIT and elsewhere. (The title of the memo really is "HAKMEM", which is a 6-letterism for "hacks memo".) Some of them are very useful techniques, powerful theorems, or interesting unsolved problems, but most fall into the category of mathematical and computer trivia. Here is a sampling of the entries (with authors), slightly paraphrased:
Item 41 (Gene Salamin): There are exactly 23,000 prime numbers less than 2^18.
Item 46 (Rich Schroeppel): The most *probable* suit distribution in bridge hands is 4-4-3-2, as compared to 4-3-3-3, which is the most *evenly* distributed. This is because the world likes to have unequal numbers: a thermodynamic effect saying things will not be in the state of lowest energy, but in the state of lowest disordered energy.
Item 81 (Rich Schroeppel): Count the magic squares of order 5 (that is, all the 5-by-5 arrangements of the numbers from 1 to 25 such that all rows, columns, and diagonals add up to the same number). There are about 320 million, not counting those that differ only by rotation and reflection.
Item 154 (Bill Gosper): The myth that any given programming language is machine independent is easily exploded by computing the sum of powers of 2. If the result loops with period = 1 with sign +, you are on a sign-magnitude machine. If the result loops with period = 1 at -1, you are on a twos-complement machine. If the result loops with period greater than 1, including the beginning, you are on a ones-complement machine. If the result loops with period greater than 1, not including the beginning, your machine isn't binary - the pattern should tell you the base. If you run out of memory, you are on a string or bignum system. If arithmetic overflow is a fatal error, some fascist pig with a read-only mind is trying to enforce machine independence. But the very ability to trap overflow is machine dependent. By this strategy, consider the universe, or, more precisely, algebra: Let X = the sum of many powers of 2 = ...111111 (base 2). Now add X to itself: X + X = ...111110. Thus, 2X = X - 1, so X = -1. Therefore algebra is run on a machine (the universe) that is two's-complement.
Item 174 (Bill Gosper and Stuart Nelson): 21963283741 is the only number such that if you represent it on the {PDP-10} as both an integer and a {floating-point} number, the bit patterns of the two representations are identical.
Item 176 (Gosper): The "banana phenomenon" was encountered when processing a character string by taking the last 3 letters typed out, searching for a random occurrence of that sequence in the text, taking the letter following that occurrence, typing it out, and iterating. This ensures that every 4-letter string output occurs in the original. The program typed BANANANANANANANA.... We note an ambiguity in the phrase, "the Nth occurrence of." In one sense, there are five 00's in 0000000000; in another, there are nine. The editing program TECO finds five. Thus it finds only the first ANA in BANANA, and is thus obligated to type N next. By Murphy's Law, there is but one NAN, thus forcing A, and thus a loop. An option to find overlapped instances would be useful, although it would require backing up N - 1 characters before seeking the next N-character string.
Note: This last item refers to a {Dissociated Press} implementation. See also {banana problem}.
HAKMEM also contains some rather more complicated mathematical and technical items, but these examples show some of its fun flavour.
HAKMEM is available from MIT Publications as a {TIFF} file.
{(ftp://ftp.netcom.com/pub/hb/hbaker)}.
(1996-01-19)

hakspek
[jargon] /hak'speek/ A shorthand method of spelling found on many British academic bulletin boards and {chat} systems. Syllables and whole words in a sentence are replaced by single {ASCII} characters the names of which are phonetically similar or equivalent, while multiple letters are usually dropped. Hence, "for" becomes "4"; "two", "too", and "to" become "2"; "ck" becomes "k". "Before I see you tomorrow" becomes "b4 i c u 2moro". First appeared in London about 1986, and was probably caused by the slowness of available {talk} systems, which operated on archaic machines with outdated {operating systems} and no standard methods of communication. Has become rarer since.
See also {chat}, {B1FF}, {ASCIIbonics}.
[{Jargon File}]
(1998-01-25)

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

halfduplex
half-duplex
[communications] (hdx, from {telegraphy}) 1. A type of communication channel using a single circuit which can carry data in either direction but not both directions at once.
Compare: {simplex}, {full-duplex}.
2. An obsolete term for {local echo}.
(2001-07-21)

halftone
[graphics] The reproducion of {greyscale} {images} using dots of a single shade but varying size to simulate the different shades of grey.
{Laser printers} that cannot print different sized dots, halftones are produced by varying the numbers of dots in a given area.
This process is also used to produce a black and white version of a colour original using shades of grey in place of colours.
See also {device independent bitmap}.
(1996-09-20)

halgol
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
HALMAT
Intermediate language used by {HAL/S}.

hals
Hal/S
[language] (Hal/Shuttle) A {real-time} {high-level language} for flight control applications. Hal was developed for {NASA} by {Intermetrics, Inc.} in the 1970s for on-board {software}. The initial version was a {Fortran} {preprocessor}, written in Fortran. In 1972, as the space shuttle project advanced, the language was renamed Hal/S and made more adaptable to {architecture} of different computers by using {XPL}. In all, 11 different implementations, mostly based on {IBM 360}, were created. Applications also included projects by {JPL} (Galileo probe, Deep Space network).
["Two-Dimensional Characteristics of HAL, A Language for Spaceflight Applications", J.S. Miller, SIGPLAN Notices 7(10), Oct 1972].
["Space Station Flight Software: Hal/S or Ada?", Allan R. Klumpp, "Computer", March 1985].
(2002-07-13)

halt and catch fire
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
Hamilton
{William Hamilton}

hamiltonian cycle
Hamiltonian cycle
{Hamiltonian problem}

hamiltonian path
Hamiltonian path
{Hamiltonian problem}

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 tour
{Hamiltonian problem}

hamiltons problem
Hamilton's problem
{Hamiltonian problem}

hammer
Commonwealth hackish synonym for {bang on}.
[{Jargon File}]
(1995-02-16)

hamming code
Hamming code
[algorithm] Extra, redundant bits added to stored or transmitted data for the purposes of {error detection and correction}.
Named after the mathematician {Richard Hamming}, Hamming codes greatly improve the reliability of data, e.g. from distant space probes, where it is impractical, because of the long transmission delay, to correct errors by requesting retransmission.
[Detail? Connection with {Hamming Distance}?]
(2002-07-02)

hamming distance
Hamming distance
[data] The minimum number of {bits} that must be changed in order to convert one {bit string} into another.
Named after the mathematician {Richard Hamming}.
[Connection with {Hamming code}?].
(2002-07-02)

hamming richard
Hamming, Richard
{Richard Hamming}

hamster
1. [programming] (From {Fairchild}) A particularly slick little piece of code that does one thing well; a small, self-contained hack. The image is of a hamster {happily} spinning its exercise wheel.
2. [hardware] A tailless mouse; that is, one with an infrared link to a receiver on the machine, as opposed to the conventional cable.
3. [product] (UK) Any item of hardware made by {Amstrad}, a company famous for its cheap plastic PC-almost-compatibles.
[{Jargon File}]
(1995-02-16)

han character
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)

han unification
Han Unification
{Han character}

hand
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".
[{Jargon File}]
(1995-02-16)

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

handhacking
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.
[{Jargon File}]
(1995-02-16)

handheld personal computer
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}.
[{Jargon File}]
(1995-02-28)

handroll
hand-roll
[jargon] (From mainstream slang "hand-rolled cigarette" in opposition to "ready-made") To perform a normally automated software installation or configuration process {by hand}; implies that the normal process failed due to bugs or was defeated by something exceptional in the local environment. "The worst thing about being a gateway between four different nets is having to hand-roll a new sendmail configuration every time any of them upgrades."
[{Jargon File}]
(1995-02-28)

handshake
{handshaking}

handshaking
1. Predetermined hardware or software activity designed to establish or maintain two machines or programs in synchronisation. Handshaking often concerns the exchange of messages or {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 {EIA-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.
[{Jargon File}]
(1995-01-13)

handwave
[possibly from gestures characteristic of stage magicians] To gloss over a complex point; to distract a listener; to support a (possibly actually valid) point with blatantly faulty logic.
If someone starts a sentence with "Clearly..." or "Obviously..." or "It is self-evident that...", it is a good bet he is about to handwave (alternatively, use of these constructions in a sarcastic tone before a paraphrase of someone else's argument suggests that it is a handwave). The theory behind this term is that if you wave your hands at the right moment, the listener may be sufficiently distracted to not notice that what you have said is wrong. Failing that, if a listener does object, you might try to dismiss the objection with a wave of your hand.
The use of this word is often accompanied by gestures: both hands up, palms forward, swinging the hands in a vertical plane pivoting at the elbows and/or shoulders (depending on the magnitude of the handwave); alternatively, holding the forearms in one position while rotating the hands at the wrist to make them flutter. In context, the gestures alone can suffice as a remark; if a speaker makes an outrageously unsupported assumption, you might simply wave your hands in this way, as an accusation, far more eloquent than words could express, that his logic is faulty.
[{Jargon File}]

hang
1. To wait for an event that will never occur. "The system is hanging because it can't read from the crashed drive". See {wedged}, {hung}.
2. To wait for some event to occur; to hang around until something happens. "The program displays a menu and then hangs until you type a character." Compare {block}.
3. To attach a peripheral device, especially in the construction "hang off": "We're going to hang another tape drive off the file server." Implies a device attached with cables, rather than something that is strictly inside the machine's chassis.

hanja
{Han characters}

hanoi
Hanoi
{Towers of Hanoi}

hanzi
{Han characters}

happily
Of software, used to emphasise that a program is unaware of some important fact about its environment, either because it has been fooled into believing a lie, or because it doesn't care. The sense of "happy" here is not that of elation, but rather that of blissful ignorance. "The program continues to run, happily unaware that its output is going to /dev/null."
[{Jargon File}]

happy
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.
[{Jargon File}]
(1995-02-22)

hard boot
[operating system] A {boot} which resets the entire {system}.
The phrase has connations of hostility toward, or frustration with, the computer being booted. For example, "I'll have to hard boot this {losing} {Sun}", or "I recommend booting it hard".
Hard boots are often performed with a {power cycle}.
Contrast {soft boot}. See also {cold boot} and {reboot}
[{Jargon File}]
(1995-11-27)

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

hardcoded
hard-coded
[jargon] (By analogy with "{hard-wired}") Said of a data value or behaviour written directly into a program, possibly in multiple places, where it cannot be easily modified. There are several alternatives, depending on how often the value is likely to change. It may be replaced with a {compile-time} constant, such as a {C} "#define" {macro}, in which case a change will still require recompilation; or it may be read at {run time} from a {profile}, resource (see {de-rezz}), or {environment variable} that a {user} can easily modify; or it may be read as part of the program's input data.
To change something hard-coded requires recompilation (if using a compiled language of course) but, more seriously, it requires sufficient understanding of the implementation to be sure that the change will not introduce inconsistency and cause the program to fail.
For example, "The line terminator is hard-coded as newline; who in their right mind would use anything else?"
See {magic number}.
[{Jargon File}]
(1999-10-18)

hardcopy
[jargon] A paper printout of data displayed on a screen.
Contrast {softcopy}.
(1995-08-31)

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
Hardware Abstraction Layer
[operating system] (HAL) The layer of {Microsoft} {Windows NT} where they have isolated their {assembly language} code.
(1995-04-17)

hardware circular buffer
[programming, hardware] {digital signal processors} which support hardware {circular buffers} automatically generate and increment {pointers} for {memory} accesses which wrap to the beginning of the {buffer} when its end is reached, thus saving the time and instructions otherwise needed to ensure that the address pointer stays within the boundary of the buffer, and speeding the execution of repetitive DSP algorithms.
{Digital Signal Processor For Digital Audio Applications
(http://www.analog.com/publications/documentation/21065L_Audio_Tutorial.PDF)}.
(2000-06-17)

hardware description language
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 {EIA-232} {serial line}.
The alternative, {software handshaking}, uses two special characters inserted into the data stream to carry the same information.
(1995-01-23)

hardwarily
/hard-weir'*-lee/ In a way pertaining to hardware. "The system is hardwarily unreliable." The adjective "hardwary" is *not* traditionally used, though it has recently been reported from the U.K.
See {softwarily}.
[{Jargon File}]
(1995-01-23)

hardwired
hard-wired
1. [electronics] An aspect of an electronic circuit which is determined by the wiring of the hardware, as opposed to being programmable in software or controlled by a switch.
2. [software, jargon] In software, a synonym for {hard-coded}.
3. By extension, anything that is not modifiable, especially in the sense of customisable to one's particular needs or tastes.
[{Jargon File}]
(1999-10-18)

harris semiconductor ltd
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
Harvard Graphics
[graphics, tool] A presentation graphics product by {Software Publishing Corporation} (SPC) for creating presentations, speeches, slides, etc..
(1998-07-20)

harvard mark ii machine
Harvard Mark II Machine
[computer, history] A {relay}-based computer designed and built by {Howard Aiken}, with support from {IBM}, for the United States Navy's Naval Proving Ground, between 1942 - 1947. The Harvard Mark II was the second in a series of four {electro-mechanical} computers that were forerunners of the {ENIAC}.
{Harvard machines
(http://hoc.co.umist.ac.uk/storylines/compdev/electromechanical/harvardmarkmachines.html)}.
(2003-09-13)

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

has the x nature
has the X nature
(From Zen Buddhist koans of the form "Does an X have the Buddha-nature?") Common hacker construction for "is an X", used for humorous emphasis. "Anyone who can't even use a program with on-screen help embedded in it truly has the {loser} nature!" See also {the X that can be Y is not the true X}.
[{Jargon File}]
(1995-01-11)

hash
1. [character] {hash character}.
2. [programming] {hash coding}.
3. The preferred term for a {Perl} {associative array}.
(1995-03-06)

hash bucket
{hash coding}

hash character
[character] "#", {ASCII} character 35.
Common names: number sign; pound; pound sign; hash; sharp; {crunch}; hex; {INTERCAL}: mesh. Rare: grid; crosshatch; octothorpe; flash; {ITU-T}: square, pig-pen; tictactoe; scratchmark; thud; thump; {splat}.
The pronunciation of "#" as "pound" is common in the US but a bad idea; {Commonwealth Hackish} has its own, rather more apposite use of "pound sign" (confusingly, on British keyboards the pound graphic happens to replace "#"; thus Britishers sometimes call "#" on a US-ASCII keyboard "pound", compounding the American error). The US usage derives from an old-fashioned commercial practice of using a "#" suffix to tag pound weights on bills of lading. The character is usually pronounced "hash" outside the US.
The name "octothorpe" was made up by a {Bell Labs} supervisor, Don Macpherson.
{Octothorpe story (http://www.sigtel.com/tel_tech_octothorpe.html)}.
(2003-07-05)

hash coding
[programming, algorithm] (Or "hashing") A scheme for providing rapid access to data items which are distinguished by some {key}. Each data item to be stored is associated with a key, e.g. the name of a person. A {hash function} is applied to the item's key and the resulting hash value is used as an index to select one of a number of "hash buckets" in a hash table. The table contains pointers to the original items.
If, when adding a new item, the hash table already has an entry at the indicated location then that entry's key must be compared with the given key to see if it is the same. If two items' keys hash to the same value (a "{hash collision}") then some alternative location is used (e.g. the next free location cyclically following the indicated one). For best performance, the table size and {hash function} must be tailored to the number of entries and range of keys to be used. The hash function usually depends on the table size so if the table needs to be enlarged it must usually be completely rebuilt.
When you look up a name in the phone book (for example), you typically hash it by extracting its first letter; the hash buckets are the alphabetically ordered letter sections.
See also: {btree}, {checksum}, {CRC}, {pseudorandom number}, {random}, {random number}, {soundex}.
(1997-08-03)

hash collision
[programming] (Or "hash clash") When two different keys hash to the same value, i.e. to the same location in a {hash table}.
{ESR} once asked a friend what he expected Berkeley to be like. The friend replied, "Well, I have this mental picture of naked women throwing Molotov cocktails, but I think that's just a collision in my hash tables."
[{Jargon File}]
(1995-01-23)

hash function
[programming] A {hash coding} {function} which assigns a data item distinguished by some "key" into one of a number of possible "hash buckets" in a hash table. The hash function is usually combined with another more precise function.
For example a program might take a string of letters and put it in one of twenty six lists depending on its first letter. Ideally, a hash function should distribute items evenly between the buckets to reduce the number of {hash collisions}. If, for example, the strings were names beginning with "Mr.", "Miss" or "Mrs." then taking the first letter would be a very poor hash function because all names would hash the same.
(1997-08-03)

hash table
{hash coding}

hashing
{hash coding}

haskell
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
Haskell B
[language] An early version of {Haskell} by Lennart Augustsson [augustss@cs.chalmers.se] from {Chalmers}. Haskell B evolved into a full-featured implementation of Haskell 1.2, with quite a few extensions.
Ports exist for many {platforms} including {Sun}, {DEC}, {Sequent}, {IBM PC}, {Symmetry} and unsupported versions for {NS32000}, {IBM RT/PC}, {Cray}, {Sun-3}, {Vax}, {ARM}, and {RS/6000}.
Version 0.999.5 included a compiler, interpreter, library, documentation, and examples.
{(ftp://ftp.cs.chalmers.se/pub/haskell/chalmers/)}.
Mailing list: [haskell-request@cs.yale.edu].
E-mail: [hbc@cs.chalmers.se].
(1996-08-21)

haskell curry
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 users gofer system
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
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
HASP
{Houston Automatic Spooling Program}

hat
A common (spoken) name for the circumflex ("^", ASCII 94) character.
See {ASCII} for other synonyms.
[{Jargon File}]

hayes
Hayes
A {modem} manufacturer.

{(gopher://leapfrog.almac.co.uk:70/00/business/comms/hayes/corporat.txt)}.
Address: Atlanta, Georgia, USA.
(1995-01-30)

hayescompatible
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
HBOOK
A histogramming package in the CERN program library.

hc
The compiler for the {h} {hyperbook} language.

hcf
HCF
1. [operating system] {Host Command Facility}.
2. [architecture] {Halt and Catch Fire}.
[{Jargon File}]
(1999-01-24)

hci
HCI
1. {Human-Computer Interaction}.
2. {Human-Computer Interface}.
3. {Host Control Interface}.
(2002-06-21)

hclp
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
"HCPRVR: An Interpreter for Logic Programs", D. Chester in Proc First Natl Conf on AI, Stanford, 1980.

hcs
HCS
{Heterogeneous Computer System}
A {distributed system} project.
[Where? When? What?]
(1995-02-01)

hd
HD
{high density}

hd6309
HD6309
{Hitachi 6309}

hda
HDA
{Head Disk Assembly}

hdc
HDC
{Disk Controller}

hdd
HDD
{hard disk drive}

hdf
HDF
{Hierarchical Data Format}

hdfl
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
HDL
{Hardware Description Language}

hdlc
HDLC
{High-level Data Link Control}

hdm
HDM
See SPECIAL.

hdsl
HDSL
{High bit-rate Digital Subscriber Line}

hdtv
HDTV
{High Definition Television}

hdx
{half-duplex}

head disk assembly
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)

head normal form
Head Normal Form
[theory, reduction] (HNF) A term describing a {lambda expression} whose top level is either a variable, a data value, a built-in function applied to too few arguments, or a {lambda abstraction} whose body is not reducible. I.e. the top level is neither a {redex} nor a lambda abstraction with a reducible body.
An expression in HNF may contain redexes in argument postions whereas a {normal form} may not.
Compare {Weak Head Normal Form}.
(2003-01-08)

head normalisation theorem
Under the typed lambda-calculus, beta/delta reduction of the left-most redex (normal order reduction) is guaranteed to terminate with a head normal form if one exists. See also Church-Rosser theorem.

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.

heads down
[Sun] Concentrating, usually so heavily and for so long that everything outside the focus area is missed. See also {hack mode} and {larval stage}, although this mode is hardly confined to fledgling hackers.
[{Jargon File}]

headstrict
head-strict
[theory] A head-strict function will not necessarily evaluate every {cons} cell of its (list) argument, but whenever it does evaluate a cons cell it will also evaluate the element in the head of that cell. An example of a head-strict function is
beforeZero :: [Int] -] [Int] beforeZero [] = [] beforeZero (0:xs) = [] beforeZero (x:xs) = x : beforeZero xs
which returns a list up to the first zero.
This pattern of evaluation is important because it is common in functions which operate on a list of inputs.
See also {tail-strict}, {hyperstrict}.
(1995-05-11)

heap
1. [programming] An area of memory used for {dynamic memory allocation} where blocks of memory are allocated and freed in an arbitrary order and the pattern of allocation and size of blocks is not known until {run time}. Typically, a program has one heap which it may use for several different purposes.
Heap is required by languages in which functions can return arbitrary data structures or functions with {free variables} (see {closure}). In {C} functions {malloc} and {free} provide access to the heap.
Contrast {stack}. See also {dangling pointer}.
2. [programming] A data structure with its elements partially ordered (sorted) such that finding either the minimum or the maximum (but not both) of the elements is computationally inexpensive (independent of the number of elements), while both adding a new item and finding each subsequent smallest/largest element can be done in O(log n) time, where n is the number of elements.
Formally, a heap is a {binary tree} with a key in each {node}, such that all the {leaves} of the tree are on two adjacent levels; all leaves on the lowest level occur to the left and all levels, except possibly the lowest, are filled; and the key in the {root} is at least as large as the keys in its children (if any), and the left and right subtrees (if they exist) are again heaps.
Note that the last condition assumes that the goal is finding the minimum quickly.
Heaps are often implemented as one-dimensional {arrays}. Still assuming that the goal is finding the minimum quickly the {invariant} is
heap[i] [= heap[2*i] and heap[i] [= heap[2*i+1] for all i,
where heap[i] denotes the i-th element, heap[1] being the first. Heaps can be used to implement {priority queues} or in {sort} algorithms.
(1996-02-26)

heartbeat
1. [networking] The signal emitted by a Level 2 Ethernet transceiver at the end of every {packet} to show that the collision-detection circuit is still connected.
2. A periodic synchronisation signal used by software or hardware, such as a {bus} clock or a periodic {interrupt}.
3. The "natural" oscillation frequency of a computer's clock crystal, before frequency division down to the machine's clock rate.
4. A signal emitted at regular intervals by software to demonstrate that it is still alive. Sometimes hardware is designed to reboot the machine if it stops hearing a heartbeat. See also {breath-of-life packet}, {watchdog}.
[{Jargon File}]
(1996-03-12)

heat sink
[hardware] /heet sink/ (from "sink", electronics jargon for something which takes in current) A piece of thermally conductive metal attached to a {semiconductor} or other electronic device and designed to prevent it from overheating by conducting heat away from it and radiating it to the environment. Heat sinks often have fins to increase their surface area. They occasionally have fans attached. Heat sink compound can be smeared between the device and the heat sink to improve thermal conduction.
(1997-06-10)

heat slug
[hardware, processor] A metal plate that helps dissipate heat away from the {silicon} {core} of a {processor} to the packaging or {heat-sink}.
(2000-08-26)

heatseeker
[person, jargon] (IBM) A customer who can be relied upon to buy, without fail, the latest version of an existing product (not quite the same as a member of the {lunatic fringe}). A 1993 example of a heatseeker is someone who, owning a 286 PC and Windows 3.0, goes out and buys {Windows 3.1} (which offers no worthwhile benefits unless you have a 386). If all customers were heatseekers, vast amounts of money could be made by just fixing the bugs in each release (n) and selling it to them as release (n+1).
[{Jargon File}]
(1996-03-12)

heavy metal
{big iron}

heavy wizardry
Code or designs that trade on a particularly intimate knowledge or experience of a particular operating system or language or complex application interface. Distinguished from {deep magic}, which trades more on arcane *theoretical* knowledge. Writing device drivers is heavy wizardry; so is interfacing to {X} (sense 2) without a toolkit. Especially found in source-code comments of the form "Heavy wizardry begins here".
Compare {voodoo programming}.
[{Jargon File}]

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)

hebbian
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}.
[{Jargon File}]
(1995-02-28)

helen keller mode
Helen Keller mode
1. State of a hardware or software system that is deaf, dumb, and blind, i.e. accepting no input and generating no output, usually due to an infinite loop or some other excursion into {deep space}. (Unfair to the real Helen Keller, whose success at learning speech was triumphant.) See also {go flatline}, {catatonic}.
2. On {IBM PCs} under {MS-DOS}, refers to a specific failure mode in which a screen saver has kicked in over an {ill-behaved} application which bypasses the very interrupts the screen saver watches for activity. Your choices are to try to get from the program's current state through a successful save-and-exit without being able to see what you're doing, or to {re-boot} the machine. This isn't (strictly speaking) a crash.
[{Jargon File}]

helix
Helix
A {hardware description language} from {Silvar-Lisco}.

hello packet
[networking, communications] An {OSPF} {packet} sent periodically on each {network interface}, real or {virtual}, to discover and test connections to neighbours. Hello packets are multicast on physical networks capable of {multicasting} or {broadcasting} to enable dynamic {router} discovery. They include the parameters that routers connected to a common network must agree on.
Hello packets increase network resilience by, e.g., allowing a router to establish a secondary connection when a primary connection fails.
(1999-11-02)

hello sailor
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.
[{Jargon File}]

hello world
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
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
HENSA
{Higher Education National Software Archive}

hep
HEP
High Energy (Particle) Physics.

hepdb
HEPDB
A {database management system} for {HEP}.

hepix
HEPiX
A recently formed collaboration among various HEP institutes aiming at providing "compatible" versions of the Unix operating system at their sites.

hepnet
HEPnet
An association concerned with networking requirements for high energy physicists.

hepvm
HEPVM
A collaboration among various HEP institutes to implement "compatible" versions of IBM's VM-CMS operating system at their sites.

heqs
HEQS
E. Derman. Constraint language for financial modelling. Uses an extension of the equation solver in IDEAL. "A Simple Equation Solver and Its Application to Financial Modeling", E. Derman et al, Soft Prac & Exp 14(12):1169-1181 (Dec 1984).

hera
HERA
An electron-proton collider at DESY, W. Germany.

heraklit
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
Herman Hollerith
[person] The promulgator of the {punched card}. Hollerith was born on 1860-02-29 and died on 1929-11-17. He graduated from Columbia University, NewYork, NY, USA. He joined the US Census Bureau as a statistician where he used a punched card device to help analyse the 1880 US census data. This punched card system stored data in 80 columns. This "80-column" concept has carried forward in various forms into modern applications.
In 1896, Hollerith founded the {Tabulating Machine Company} to exploit his invention and in 1924 his firm became part of {IBM}. The Hollerith system was used for the 1911 UK census.
A correspondant writes:
Wasn't Hollerith's original machine first used for the 1990 US census? And I think I am right in saying that the physical layout was a 20x12 grid of round holes. The one I have seen (picture only, unfortunately, not the real thing) did not use 'columns' as such but holes were grouped into irregularly-shaped fields, such that each hole had a more-or-less independent function.
(2001-08-30)

hermes
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
Hesiod
[project] The {name server} of the {Athena} project.
[Details?]
(1997-10-27)

heterogeneous
Composed of unrelated parts, different in kind.
Often used in the context of {distributed systems} that may be running different {operating systems} or network {protocols} (a {heterogeneous network}).
For examples see: {interoperable database}, {middleware}.
Constrast {homogeneous}.
(1999-05-06)

heterogeneous network
[networking] A {network} running multiple {network layer} {protocols} such as {DECnet}, {IP}, {IPX}, {XNS}.
(1997-10-27)

heterogenous
[spelling] It's spelled {heterogeneous}.
(1999-06-10)

heuristic
1. [programming] A rule of thumb, simplification, or educated guess that reduces or limits the search for solutions in domains that are difficult and poorly understood. Unlike {algorithms}, heuristics do not guarantee optimal, or even {feasible}, solutions and are often used with no theoretical guarantee.
2. [algorithm] {approximation algorithm}.
(2001-04-12)

heuristics testing
{failure-directed testing}

hewlett packard multi processing executive
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: MPE/IX Version 5.5.04, as of 1998-02-17.
(1998-02-17)

hewlett packard precision architecture
Hewlett Packard Precision Architecture
(HP-PA) {Hewlett Packard}'s range of RISC processors.
[Details?]
(1995-02-22)

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

hewlettpackard graphics language
Hewlett-Packard Graphics Language
[graphics, language] (HP-GL) A {vector graphics} language used by {HP} plotters.
[Details? On-line spec?]
(1994-10-27)

hewlettpackard interface bus
Hewlett-Packard Interface Bus
{IEEE 488}

hewlettpackard visual engineering environment
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.
[{Jargon File}]
(1995-03-06)

hexadecimal
[mathematics] (Or "hex") {Base} 16. A number representation using the digits 0-9, with their usual meaning, plus the letters A-F (or a-f) to represent hexadecimal digits with values of (decimal) 10 to 15. The right-most digit counts ones, the next counts multiples of 16, then 16^2 = 256, etc.
For example, hexadecimal BEAD is decimal 48813:
digit weight value B = 11 16^3 = 4096 11*4096 = 45056 E = 14 16^2 = 256 14* 256 = 3584 A = 10 16^1 = 16 10* 16 = 160 D = 13 16^0 = 1 13* 1 = 13 ----- BEAD = 48813
There are many conventions for distinguishing hexadecimal numbers from decimal or other bases in programs. In {C} for example, the prefix "0x" is used, e.g. 0x694A11.
Hexadecimal is more succinct than {binary} for representing {bit-masks}, machines addresses, and other low-level constants but it is still reasonably easy to split a hex number into different bit positions, e.g. the top 16 bits of a 32-bit word are the first four hex digits.
The term was coined in the early 1960s to replace earlier "sexadecimal", which was too racy and amusing for stuffy {IBM}, and later adopted by the rest of the industry.
Actually, neither term is etymologically pure. If we take "binary" to be paradigmatic, the most etymologically correct term for base ten, for example, is "denary", which comes from "deni" (ten at a time, ten each), a Latin "distributive" number; the corresponding term for base sixteen would be something like "sendenary". "Decimal" is from an ordinal number; the corresponding prefix for six would imply something like "sextidecimal". The "sexa-" prefix is Latin but incorrect in this context, and "hexa-" is Greek. The word {octal} is similarly incorrect; a correct form would be "octaval" (to go with decimal), or "octonary" (to go with binary). If anyone ever implements a base three computer, computer scientists will be faced with the unprecedented dilemma of a choice between two *correct* forms; both "ternary" and "trinary" have a claim to this throne.
[{Jargon File}]
(1996-03-09)

hexidecimal
[spelling] Mis-spelling of "{hexadecimal}".
(1998-03-03)

hexit
[jargon] /hek'sit/ A {hexadecimal} digit (0-9, and A-F or a-f). Used by people who claim that there are only *ten* digits, sixteen-fingered human beings being rather rare, despite what some keyboard designs might seem to imply (see {space-cadet keyboard}).
[{Jargon File}]
(1996-03-09)

hfc
HFC
1. [networking] {Hybrid Fiber Coax}.
2. [hardware] {hydrofluorocarbon}.
(1999-11-02)

hhcp
HHCP
{Host Host Copy}

hhoj
HHOJ
[chat] ha ha only joking.
Contrast {ha ha only serious}.
(1998-01-18)

hhok
HHOK
ha ha only kidding. See {ha ha only serious}.
[{Jargon File}]

hhos
HHOS
{ha ha only serious}

hibol
HIBOL
A variant of {DIBOL}, used in {Infotec} computers.
(1994-11-24)

hid
HID
{Human Interface Device}

hidden flag
(scientific computation) An extra option added to a routine without changing the calling sequence. For example, instead of adding an explicit input variable to instruct a routine to give extra diagnostic output, the programmer might just add a test for some otherwise meaningless feature of the existing inputs, such as a negative mass. The use of hidden flags can make a program very hard to debug and understand, but is all too common wherever programs are hacked in a hurry.
[{Jargon File}]
(1994-11-24)

hierarchical data format
Hierarchical Data Format
[file format, data] (HDF) A {library} and multi-object file format for the transfer of graphical and numerical data between computeres. The freely available HDF distribution consists of the library, command line utilities, test suite source, {Java} interface, and the Java-based HDF Viewer (JHV).
HDF supports several different {data models}, including multidimensional {arrays}, {raster images}, and tables. Each defines a specific aggregate data type and provides an {API} for reading, writing, and organising the data and {metadata}. New data models can be added by the HDF developers or users.
HDF is self-describing, allowing an application to interpret the structure and contents of a file without any outside information.
One HDF file can hold a mixture of related objects which can be accessed as a group or as individual objects. Users can create their own grouping structures called "vgroups".
HDF files can be shared across most common {platforms}, including many workstations and high performance computers. An HDF file created on one computer can be read on a different system without modification.
{Home (http://hdf.ncsa.uiuc.edu/)}.
(2001-07-02)

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
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}.
[{Jargon File}]

high bitrate digital subscriber line
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}

high memory area
[storage] (HMA) The first 64 {kilobytes} (minus 16 byte) of the {extended memory} on an {IBM PC}. By a strange design glitch the {Intel 80x86} processors can actually address 17*64 kbyte minus 16 byte of memory (from 0000:0000 to ffff:ffff) in real mode. In the {Intel 8086} and {Intel 8088} processors, unable to handle more than 1 {megabyte} of memory, addressing wrapped around, that is, address ffff:0010 was equivalent to 0000:0000. For compatibility reasons, later processors still wrapped around by default, but this feature could be switched off. Special programs called {A20 handlers} can control the addressing mode dynamically, thereby allowing programs to load themselves into the 1024--1088 kbyte region and run in {real mode}. From version 5.0 parts of {MS-DOS} can be loaded into HMA as well freeing up to 46 kbytes of {conventional memory}.
(1995-01-10)

high moby
/hi:' mohb'ee/ The high half of a 512K {PDP-10}'s physical address space; the other half was of course the low moby. This usage has been generalised in a way that has outlasted the {PDP-10}; for example, at the 1990 Washington D.C. Area Science Fiction Conclave (Disclave), when a miscommunication resulted in two separate wakes being held in commemoration of the shutdown of MIT's last {ITS} machines, the one on the upper floor was dubbed the "high moby" and the other the "low moby". All parties involved {grok}ked this instantly. See {moby}.
[{Jargon File}]

high performance computing and communications
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
High Performance File System
[file system] (HPFS) The {native} {file system} for {IBM}'s {OS/2}.
(1995-03-06)

high performance fortran
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
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
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
High Performance Serial Bus
[bus, standard] (Or "{IEEE} 1394", "FireWire", "I-Link") A 1995 {Macintosh}/{IBM PC} serial bus interface standard offering high-speed communications and {isochronous} {real-time} data services.
1394 can transfer data between a computer and its {peripherals} at 100, 200, or 400 {Mbps}, with a planed increase to 2 {Gbps}. Cable length is limited to 4.5 m but up to 16 cables can be daisy-chained yielding a total length of 72 m.
It can {daisy-chain} together up to 63 peripherals in a tree-like structure (as opposed to {SCSI}'s linear structure). It allows peer-to-peer device communication, such as communication between a {scanner} and a {printer}, to take place without using system memory or the {CPU}. It is designed to support {plug-and-play} and {hot swapping}. Its six-wire cable is not only more convenient than SCSI cables but can supply up to 60 watts of power, allowing low-consumption devices to operate without a separate power cord.
Some expensive camcorders have included this bus since Autumn 1995. It is expected to be used to carry {SCSI}, with possible application to {home automation} using {repeaters}.
See also {Universal Serial Bus}, {FC-AL}.
(2000-09-03)

high speed circuit switched data
High Speed Circuit Switched Data
[communications] (HSCSD) A planned feature of {GSM Phase 2} defining a standard for {circuit switched} data transmission over a {GSM} link at up to 57.6 (78.8?) {kbps}. This is achieved by concatenating up to four consecutive GSM {timeslots}, each of which is capable of 14.4 kbit/s. It uses {multiplexing} and {compression} or filtering.
The following services toward the fixed network are supported: {V.34} up to 28.8 kbps and {V.110} with rate adaptation up to 38.4 kbps.
HSCSD is aimed at {mobile workstation} users. As it is circuit switched, it is suited to {streaming} applications such as {video conferencing} and {multimedia}. {Bursty} applications like {electronic mail}, are more suited to {packet switched} data (as in {GPRS}).
{Ericsson
(http://www.ericsson.com/wireless/products/mobsys/gsm/subpages/wise/subpages/hscsd.shtml)}.
{(http://www.gsmworld.com/)}.
(1999-12-04)

high speed connect
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
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)

higher education national software archive
Higher Education National Software Archive
(HENSA)
{Home (http://www.hensa.ac.uk/)}.
(1995-01-06)

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

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

highlevel data link control
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)

highlevel language
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)

higz
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
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
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}.
[{Jargon File}]
(1994-12-07)

hint
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
HiPAC
An active DBMS from Xerox Advanced Information Technology.

hippi
HIPPI
{High Performance Parallel Interface}

hiragana
[Japanese] The cursive formed Japanese {kana} syllabary. Hiragana is mostly used for grammatical particles, verb-inflection, and Japanese words which are not written in {kanji} or which are too difficult for an educated person to read or write in {kanji}. Hiragana are also used for {furigana}.
(2001-03-18)

hirsute
Occasionally used as a humorous synonym for {hairy}.
[{Jargon File}]

historian
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.
3. [jargon] To press and release a key on the keyboard. Some prefer the less aggressive "tap".
(2000-02-20)

hit rate
[architecture] The fraction of all memory reads which are satisfied from the {cache}.
(1997-01-21)

hitachi 6309
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.techref)}.
(1997-03-21)

hitachi hd64180
Hitachi HD64180
[processor] A processor family which adds peripherals and an {MMU} to the {Zilog Z80}.
(1995-10-06)

hitl
HITL
{Human Interface Technology Laboratory}

hk
[networking] The {country code} for Hong Kong.
(1999-01-27)

hl7
HL7
[protocol] An information exchange {protocol} used in medicine, and possibly elsewhere. It is different from {DICOM}.
[Details?]
(1998-12-23)

hlisp
HLISP
"Monocopy and Associative Algorithms in an Extended Lisp", E. Goto, U Tokyo May 1974.

hll
HLL
{high-level language}

hllapi
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
HMA
{High Memory Area}

hmac
HMAC
{Keyed-Hashing Message Authentication}

hmp
HMP
{hybrid multiprocessing}

hmsl
HMSL
{Hierarchical Music Specification Language}

hmtl
HMTL
[spelling] Do you mean {HTML}?
(1998-06-30)

hn
[networking] The {country code} for Honduras.
(1999-01-27)

hoare powerdomain
Hoare powerdomain
{powerdomain}

hobbit
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}.
[{Jargon File}]

hog
1. Favoured term to describe programs or hardware that seem to eat far more than their share of a system's resources, especially those which noticeably degrade interactive response. *Not* used of programs that are simply extremely large or complex or that are merely painfully slow themselves (see {pig, run like a}). More often than not encountered in qualified forms, e.g. "memory hog", "core hog", "hog the processor", "hog the disk". "A controller that never gives up the I/O bus gets killed after the bus-hog timer expires."
2. Also said of *people* who use more than their fair share of resources (particularly disk, where it seems that 10% of the people use 90% of the disk, no matter how big the disk is or how many people use it). Of course, once disk hogs fill up one file system, they typically find some other new one to infect, claiming to the sysadmin that they have an important new project to complete.

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

hol88
HOL-88
An implementation of {HOL} built on {ML} by Mike Gordon [mjcg@cl.cam.ac.uk].

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

hollerith herman
Hollerith, Herman
{Herman Hollerith}

hollerithabetical order
Hollerithabetical order
[algorithm] Sorted into the order a standard {Hollerith} {card sorting machine} produces, with special characters interleaved within the alphabet.
(1997-02-11)

hollywired
Hollywired
{Siliwood}

holunity
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}.
[{Jargon File}]

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.
[{Jargon File}]

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)

home phoneline networking alliance
Home Phoneline Networking Alliance
[communications, networking, protocol, standard] (HomePNA) A non-profit association of more than 100 technology companies working together to ensure adoption of a phone line {networking} standard which should provide high-speed, affordable home networking.
The Home Phoneline Networking Alliance (HomePNA) was founded in June 1998 by {3Com}, {AMD}, {AT&T Wireless Services}, {Compaq}, Conexant, Epigram, {Hewlett-Packard}, {IBM}, {Intel}, {Lucent Technologies}, Rockwell Semiconductor Systems, and Tut Systems. The membership now spans the networking, telecommunications, {hardware}, {software}, and consumer electronics industries.
The alliance was originally formed because of the increasing demand for home networking caused by the growing number of homes with multiple PCs (and other devices) to connect together to provide facilities such as shared {Internet} access, {networked gaming}, and sharing of {peripherals}, {files} and {applications}.
The member companies aimed to develop {open standards} to ensure compatibility between different manufacturers' products. They also decided that this should be done using the phone wiring that already existed in people's homes. The concept of "no new wires" networking meant installation was simpler.
HomePNA's original specifications could be used to create a 1 {Mbps} (megabits per second) {Ethernet}-compatible {LAN} with no {hubs}, {routers}, {splitters} or {terminations}. Adapters would allow any computer (or other device) with an Ethernet port to be linked to the home network. Up to 25 PCs, peripherals and network devices can be connected to such a network.
On 1999-12-01, the HomePNA announced a new release of its networking technology specification, called Home PNA 2.0. Like the first specification, it uses existing phone lines, but it can operate at speeds up to 10 Mbps. The new version is {backwardly compatible} with the original 1 Mbps HomePNA technology, and is designed to provide faster networks suitable for future voice, video and data applications.
{HomePNA.org (http://www.homepna.org/)}. {HomePNA.Com (http://www.HomePNA.com/)}.
(2000-03-24)

homepna
HomePNA
{Home Phoneline Networking Alliance}

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.

honeywell800 business compiler
Honeywell-800 Business Compiler
Another name for FACT. Sammet 1969, p.327.

hood
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
HOOK
? Object Oriented Kernel. Delphia. An object-oriented extension of Delphia Prolog.
[{Jargon File}]

hook
[programming] A {software} or {hardware} feature included in order to simplify later additions or changes by a user.
For example, a simple program that prints numbers might always print them in base 10, but a more flexible version would let a variable determine what base to use; setting the variable to 5 would make the program print numbers in base 5. The variable is a simple hook. An even more flexible program might examine the variable and treat a value of 16 or less as the base to use, but treat any other number as the address of a user-supplied routine for printing a number. This is a {hairy} but powerful hook; one can then write a routine to print numbers as Roman numerals, say, or as Hebrew characters, and plug it into the program through the hook.
Often the difference between a good program and a superb one is that the latter has useful hooks in judiciously chosen places. Both may do the original job about equally well, but the one with the hooks is much more flexible for future expansion of capabilities.
{Emacs}, for example, is *all* hooks.
The term "user exit" is synonymous but much more formal and less hackish.
(1997-06-25)

hop
1. [messaging] One point-to-point transmission in a series required to get a message from point A to point B on a {store and forward} network. On such networks (including {UUCPNET} and {FidoNet}), an important inter-machine metric is the hop count of the shortest path between them. This can be more significant than their geographical separation.
Each {exclamation mark} in a {bang path} represents one hop.
2. [networking] One direct host-to-host connection forming part of the route between two hosts in a {routed} {network} such as the {Internet}. Some {protocols} place an upper limit on the hop count in order to detect routing loops.
3. [jargon, networking] To {log in} to a {remote} computer, especially via {rlogin} or {telnet}. "I'll hop over to foovax to FTP that."
[{Jargon File}]
(1997-06-25)

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

hopec
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 model
{Hopfield network}

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
Horn clause
[logic] A set of {atomic literals} with at most one {positive literal}. Usually written
L [- L1, ..., Ln or [- L1, ..., Ln
where n]=0. If L is false the clause is regarded as a goal. Horn clauses can express a subset of statements of {first order logic}.
The name "Horn Clause" comes from the logician Alfred Horn, who first pointed out the significance of such clauses in 1951, in the article "On sentences which are true of direct unions of algebras", Journal of Symbolic Logic, 16, 14-21.
A {definite clause} is a Horn clause that has exactly one positive literal.
(2000-01-24)

hose
1. To make non-functional or greatly degraded in performance. "That big ray-tracing program really hoses the system." See {hosed}.
2. A narrow channel through which data flows under pressure. Generally denotes data paths that represent performance bottlenecks.
3. Cabling, especially {thick Ethernet cable}. This is sometimes called "bit hose" or "hosery" (a play on "hosiery") or "etherhose". See also {washing machine}.
[{Jargon File}]

hosed
[jargon] A somewhat humorous variant of "{down}", used primarily by {Unix} {hackers}. "Hosed" implies a condition thought to be relatively easy to reverse. It is also widely used of people in the mainstream sense of "in an extremely unfortunate situation". The term was popularised by fighter pilots refering to being hosed by machine gun fire (date?). Usage in hackerdom dates back to {CMU} in the 1970s or earlier.
{"Acronyms and Abbreviations" from UCC, Ireland (http://www.ucc.ie/cgi-bin/acronym)} expands it as "Hardware Or Software Error Detected", though this is probably a back-formation.
The {Jargon File} version 4.1.4 1999-06-17 says that it was probably derived from the Canadian slang "hoser" (meaning "a man, esp. one who works at a job that uses physical rather than mental skills and whose habits are slightly offensive but amusing").
One correspondant speculates about an allusion to a hose-like body part.
Once upon a time, a {Cray} that had been experiencing periodic difficulties crashed, and it was announced to have been hosed. It was discovered that the crash was due to the disconnection of some coolant hoses. The problem was corrected, and users were then assured that everything was OK because the system had been rehosed. See also {dehose}.
See also: {hose}.
(1999-10-28)

hosstpl
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
Host Command Facility
[operating system] (HCF) Used to access {IBM S/36} and {AS/400} computers from a {mainframe}.
[What is it?]
(1999-01-24)

host control interface
Host Control Interface
[hardware, wireless communications] (HCI) A {network layer} in the {Bluetooth} {Core Protocol Stack}, lying between the {software} and the {hardware} stacks and serving as the {interface} through which the {software} controls two of {Bluetooth}�s four core {protocols}.
(2002-06-28)

host number
[networking] The host part of an {Internet address}. The rest is the {network number}.
(1994-10-27)

hosthost layer
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)

hot fix
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)

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.
[{Jargon File}]
(1995-02-16)

hot swapable routing protocol
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)

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

hotline
Hotline
1. [company] {Hotline Communications Ltd.}.
2. [messaging] {Hotline Connect}.
(1999-12-07)

hotline communications ltd
Hotline Communications Ltd.
[company] The company that developes and distributes {Hotline Connect}.
{Home (http://www.BigRedH.com/index2.html)}.
(1999-12-07)

hotline connect
Hotline Connect
[messaging] A suite of communication products developed by {Hotline Communications Ltd.} Hotline Connect is a {real-time}, {multi-platform Internet}/{Intranet} communication suite, that operates independent of the {World-Wide Web}. It provides easy-to-use private and public {virtual community} building and live interaction with real-time {chat}, conferencing, {messaging}, {data warehousing}, {file transfer}, and viewing.
Version: 1.7.2, as of 1999-12-07.
(1999-12-07)

hotlink
A mechanism for sharing data between two {application 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)

hott
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.
[{Jargon File}]
(1995-02-16)

houston automatic spooling program
Houston Automatic Spooling Program
[operating system] (HASP) A program developed by {IBM} for {NASA} in the 1960s to {SPOOL} output on {OS/MFT} and {OS/MVT} to improve job processing performance.
(2003-05-19)

hp
HP
{Hewlett-Packard}

hp vee
HP VEE
{Hewlett-Packard Visual Engineering Environment}

hp2ps
[tool] An {HP-GL} {interpreter} written in {PostScript} by Alun Jones. hp2ps runs on the printer itself. Version 1.9c.
(1999-11-23)

hpc
H/PC
{Hand-held Personal Computer}

hpcc
HPCC
{High Performance Computing and Communications}

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

hpcodeplus
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
HPF
{High Performance Fortran}

hpfs
HPFS
{High Performance File System}

hpgl
HP-GL
{Hewlett-Packard Graphics Language}

hpgl2
HP-GL/2
"HP-GL/2 Programmer's Guide", No. 5959-9733, HP. (See PCL.)

hpib
HP-IB
{IEEE 488}

hpl
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
HPLOT
A graphical output facility for {HBOOK}.
(1995-02-22)

hpmpe
HP-MPE
{Hewlett Packard Multi Processing Executive}

hppa
HP-PA
{Hewlett Packard Precision Architecture}

hppi
HPPI
{High Performance Parallel Interface}

hpr
HPR
{High Performance Routing}

hpsux
HP-SUX
[abuse, operating system] /H-P suhks/ An unflattering hackerism for {HP-UX} which features some truly unique bogosities in the {file system} internals and elsewhere (these occasionally create portability problems). HP-UX is often referred to as "hockey-pux" inside HP, and one respondent claims that the proper pronunciation is /H-P ukkkhhhh/ as though one were about to spit. Another such alternate spelling and pronunciation is "H-PUX" /H-puhks/. Hackers at HP/Apollo (the former Apollo Computers which was swallowed by HP in 1989) have been heard to complain that Mr. Packard should have pushed to have his name first, if for no other reason than the greater eloquence of the resulting acronym.
Compare {AIDX}, {buglix}, {Telerat}, {Open DeathTrap}, {ScumOS}, {sun-stools}.
[{Jargon File}]
(1997-05-12)

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

hqx
{binhex}

hr
[networking] The {country code} for Croatia.
(1999-01-27)

hs
{Haskell}

hsb
HSB
{hue, saturation, brightness}

hsc
HSC
{High Speed Connect}

hscsd
HSCSD
{High Speed Circuit Switched Data}

hslfx
HSL-FX
{Hierarchical Specification Language - Function Extension}

hsm
HSM
{Hierarchical Storage Management}

hsrp
HSRP
{Hot Swapable Routing Protocol}

hssi
HSSI
{high speed serial interface}

hsv
HSV
{hue, saturation, value}

ht
HT
{horizontal tabulation}

ht
[networking] The {country code} for Haiti.
(1999-01-27)

hth
HTH
[chat] Hope This Helps. Often used sarcastically, see {HAND}.
(1998-03-06)

htlm
HTLM
Do you mean {HTML}?

html
HTML
{Hypertext Markup Language}

html
HTML+
[hypertext, standard] A proposed successor to {HTML}. HTML+ was a superset of HTML designed to extend the capabilities of the language to incorporate better support for {multimedia} objects in documents.
(1994-10-27)

httl
HTTL
Do you mean {HTTP} or {HTML}?

http
HTTP
{Hypertext Transfer Protocol}

http cookie
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)

http server
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)

http10
HTTP/1.0
{Hypertext Transfer Protocol} version 1.0.

httpd
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
HTTPS
{HyperText Transmission Protocol, Secure}

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
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
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
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}.
[{Jargon File}]
(1994-12-23)

huffman coding
Huffman coding
[algorithm] A {data compression} technique which varies the length of the encoded symbol in proportion to its information content, that is the more often a symbol or token is used, the shorter the binary string used to represent it in the compressed stream. Huffman codes can be properly decoded because they obey the prefix property, which means that no code can be a prefix of another code, and so the complete set of codes can be represented as a binary tree, known as a Huffman tree. Huffman coding was first described in a seminal paper by D.A. Huffman in 1952.
(1994-12-23)

hugo
HUGO
A {bytecode}-interpreted {transaction handler} from {Geac}.
(1994-12-23)

hugs
HUGS
{Haskell User's Gofer System}

human interface device
Human Interface Device
[hardware] (HID) Any device to interact directly with humans (mostly input) like {keyboard}, {mouse}, {joystick}, or {graphics tablet}.
(2001-03-29)

human interface technology laboratory
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)

humancomputer interaction
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)

humancomputer interface
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)

humanist technology
[philosophy] Technology centered around the interests, needs, and well-being of humans.
(2002-07-16)

humma
[chat] A filler word used on various "chat" and "talk" programs when you had nothing to say but felt that it was important to say something.
The word apparently originated (at least with this definition) on the MECC Timeshare System (MTS, a now-defunct educational {time-sharing} system running in Minnesota during the 1970s and the early 1980s) but was later sighted on early Unix systems.
[{Jargon File}]
(1999-02-27)

humor
{hacker humour}

humour
{hacker humour}

hung
["hung up"] Equivalent to {wedged}, but more common at Unix/C sites. Not generally used of people. Synonym with {locked up}, {wedged}; compare {hosed}. See also {hang}. A hung state is distinguished from {crash}ed or {down}, where the program or system is also unusable but because it is not running rather than because it is waiting for something. However, the recovery from both situations is often the same.
[{Jargon File}]

hungarian notation
Hungarian Notation
[language, convention] A linguistic convention requiring one or more letters to be added to the start of {variable} names to denote {scope} and/or {type}.
Hungarian Notation is mainly confined to {Microsoft Windows} programming environments, such as Microsoft {C}, {C++} and {Visual Basic}. It was originally devised by {Charles Simonyi}, a Hungarian, who was a senior programmer at {Microsoft} for many years. He disliked the way that names in C programs gave no clue as to the type, leading to frequent programmer errors.
According to legend, fellow programmers at Microsoft, on seeing the convoluted, vowel-less variable names produced by his scheme, said, "This might as well be in Greek - or even Hungarian!". They made up the name "Hungarian notation" (possibly with "{reverse Polish notation}" in mind).
Hungarian Notation is not really necessary when using a modern {strongly-typed language} as the {compiler} warns the programmer if a variable of one type is used as if it were another type. It is less useful in {object-oriented programming} languages such as {C++}, where many variables are going to be instances of {classes} and so begin with "obj".
In addition, variable names are essentially only {comments}, and thus are just as susceptible to becoming out-of-date and incorrect as any other comment. For example, if a {signed} {short} {int} becomes an unsigned {long} int, the variable name, and every use of it, should be changed to reflect its new type.
A variable's name should describe the values it holds. Type and scope are aspects of this, but Hungarian Notation overemphasises their importance by allocating so much of the start of the name to them. Furthermore, type and scope information can be found from the variable's declaration. Ironically, this is particularly easy in the development environments in which Hungarian Notation is typically used.
{Simonyi's original monograph (http://msdn.microsoft.com/library/techart/hunganotat.htm)}.
{Microsoft VB Naming Conventions (http://support.microsoft.com/support/kb/articles/Q110/2/64.asp)}.
(2003-09-11)

hungry programmers
Hungry Programmers
[body] A group of programmers producing {free software}.
{Home (http://www.hungry.com/)}.
(1995-03-20)

hungry puppy
Synonym {slopsucker}.
[{Jargon File}]

hungry viewkit
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."
[{Jargon File}]
(1999-01-26)

hunt the wumpus
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
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
HVD
{High Voltage Differential}

hybrid
Hybrid
A {concurrent} {object-oriented} language.
["Active Objects in Hybrid", O.M. Nierstrasz, SIGPLAN Notices 22(12):243-253 (OOPSLA '87) (Dec 1987)].
(1994-12-07)

hybrid fiber coax
Hybrid Fiber Coax
[networking] (HFC) A kind of physical connection used in networks for audio, video, and data. DVB (Digital Video Broadcast) is used in Europe and DOCSIS is used in N America.
[What is the relationship between HFC, DVB, DOCSIS?]
(1999-11-02)

hybrid multiprocessing
[parallel] (HMP) The kind of {multitasking} which {OS/2} supports. HMP provides some elements of {symmetric multiprocessing}, using add-on {IBM} software called MP/2. OS/2 SMP was planned for release in late 1993.
(1995-03-19)

hybrid testing
[testing] A combination of {top-down testing} with {bottom-up testing} of prioritised or available components.
(1996-05-22)

hydrofluorocarbon
[hardware] (HFC) A suggested replacement for the chlorofluorocarbon (CFC) coolant gas used in chillers and air conditioners.
(1996-11-05)

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

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

hyperman
Hyper-Man
A {browser} available with {Epoch} giving {hypertext} access to the {Unix} manual.

hypermedia
{hypertext}

hypernews
HyperNeWS
A Hypertext system from the Turing Institute Glasgow, based on {NeWS}.

hyperscript
Hyperscript
Informix. The object-based programming language for Wingz, used for creating charts, graphs, graphics, and customised data entry.

hyperspace
/hi:'per-spays/ A memory location that is *far* away from where the {program counter} should be pointing, often inaccessible because it is not even mapped in. (Compare {jump off into never-never land}.)
This usage is from the SF notion of a spaceship jumping "into hyperspace", that is, taking a shortcut through higher-dimensional space - in other words, bypassing this universe. The variant "east hyperspace" is recorded among {CMU} and {Bliss} hackers.
[{Jargon File}]
(1994-11-23)

hypersparc
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
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
HyperTalk
A verbose semicompiled language by Bill Atkinson and Dan Winkler, with loose {syntax} and high readability.
HyperTalk uses {HyperCard} as an object management system, development environment and interface builder. Programs are organised into "stacks" of "cards", each of which may have "buttons" and "fields". All data storage is in zero-terminated strings in fields, local, or global variables; all data references are through "chunk expressions" of the form:
'last item of background field "Name List" of card ID 34217'.
Flow of control is {event-driven} and uses message-passing among scripts that are attached to stack, background, card, field and button objects.
{Apple Computer} has taken back distribution and maintenance of HyperCard from {Claris} Corporation
["HyperTalk Language Reference Manual", A-W 1988].
(1994-11-17)

hypertext
[hypertext] A term coined by Ted Nelson around 1965 for a collection of documents (or "nodes") containing cross-references or "links" which, with the aid of an interactive {browser} program, allow the reader to move easily from one document to another.
The extension of hypertext to include other media - {sound}, {graphics}, and {video} - has been termed "{hypermedia}", but is usually just called "hypertext", especially since the advent of the {World-Wide Web} and {HTML}.
(2000-09-10)

hypertext markup language
Hypertext Markup Language
[hypertext, World-Wide Web, standard] (HTML) A {hypertext} document format used on the {World-Wide Web}. HTML is built on top of {SGML}. "Tags" are embedded in the text. A tag consists of a "[", a "directive" (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" and "/A" delimit an "anchor", "HREF" introduces a hypertext reference, which is most often a {Uniform Resource Locator} (URL) (the string in double quotes in the example above). The link will be represented in the browser by the text "foo" (typically shown underlined and in a different colour).
A certain place within an HTML document can be marked with a named anchor, e.g.:
[A NAME="baz"]
The "fragment identifier", "baz", can be used in an HREF by appending "#baz" to the document name.
Other common tags include [P] for a new paragraph, [B]..[/B] for bold text, [UL] for an unnumbered list, [PRE] for preformated text, [H1], [H2] .. [H6] for headings.
{HTML} supports some standard {SGML} {national characters} and other non-{ASCII} characters through special {escape sequences}, e.g. "é" 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} (W3C) is the international {standards} body for HTML.
Latest version: {XHTML} 1.0, as of 2000-09-10.
{Home (http://www.w3.org/MarkUp/)}.
{Character escape sequences (http://www.w3.org/hypertext/WWW/MarkUp/ISOlat1.html)}.
See also {weblint}.
(2000-09-10)

hypertext transfer protocol
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: HTTP 1.1, defined in {RFC 2068}, as of May 1997.
See also {Uniform Resource Locator}.
(1994-10-27)

hypertext transmission protocol secure
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)

hyperware
[hypertext] {Software} that implements or uses {hypertext}.
(2000-09-11)

hysterical reasons
(Or "hysterical raisins") A variant on the stock phrase "for historical reasons", indicating specifically that something must be done in some stupid way for backward compatibility, and moreover that the feature it must be compatible with was the result of a bad design in the first place. "All IBM PC video adaptors have to support MDA text mode for hysterical reasons." Compare {bug-for-bug compatible}.
[{Jargon File}]

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

i didnt change anything
I didn't change anything!
An aggrieved cry often heard as bugs manifest during a regression test. The {canonical} reply to this assertion is "Then it works just the same as it did before, doesn't it?" See also {one-line fix}. This is also heard from applications programmers trying to blame an obvious applications problem on an unrelated systems software change, for example a divide-by-0 fault after terminals were added to a network. Usually, their statement is found to be false. Upon close questioning, they will admit some major restructuring of the program that shouldn't have broken anything, in their opinion, but which actually {hosed} the code completely.
[{Jargon File}]

i see no x here
I see no X here.
[games] Hackers (and the interactive computer games they write) traditionally favour this slightly marked usage over other possible equivalents such as "There's no X here!" or "X is missing." or "Where's the X?". This goes back to the original PDP-10 {ADVENT}, which would respond in this wise if you asked it to do something involving an object not present at your location in the game.
[{Jargon File}]

i18n
{internationalisation}

i2o
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
IA
{Information Appliance}

iab
IAB
{Internet Architecture Board}

iad
IAD
A dynamic analyser from {IBM} giving information on run-time performance and code use.

ial
IAL
{ALGOL 58}

iam
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
IANA
{Internet Assigned Numbers Authority}

ianal
IANAL
[chat] I Am Not A Lawyer (but my legal opinion is...).
(1998-07-28)

iap
IAP
{Internet Access Provider}

iapl
I-APL
A version of {APL}. {(ftp://watserv1.waterloo.edu/languages/apl/)}.
(1992-07-06)

iar
IAR
Instruction Address Register.
The {IBM} name for {program counter}.
(1995-03-21)

ias
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
IAW
[chat] inactive window.
Used in {talk} systems to mean that that person will not be taking part in the conversation for a while. The sadly mispelled alternative, "unactive window" (UAW) has also been reported.
(1994-12-05)

ibex
IBEX
The command language for {Honeywell}'s {CP-6} {operating system}.
(1994-12-06)

ibm
IBM
{International Business Machines}

ibm 1403
IBM 1403
[printer] A printer used with the {IBM 360} {mainframe}, a successor to the 1401.
(1999-01-11)

ibm 1620
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://www.foldoc.org/pub/IBM1620-console.jpg)}.
{IBM 1620 at Tuck School of Business, Dartmouth College, Hanover, NH, USA (http://www.foldoc.org/pub/IBM1620-Tuck1960s.jpg)} (Thanks Victor E. McGee, pictured).
["Basic Programming Concepts and the IBM 1620 Computer", Leeson and Dimitry, Holt, Rinehart and Winston, 1962].
(1997-08-05)

ibm 1710
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
IBM 2741
{golf ball printer}

ibm 3270
IBM 3270
[hardware] A class of {terminals} made by {IBM} known as "Display Devices", normally used to talk to {IBM} {mainframes}. The 3270 attempts to minimise the number of {I/O} {interrupts} required by accepting large blocks of data, known as datastreams, in which both text and control (or formatting functions) are interspersed allowing an entire screen to be "painted" as a single output operation. The concept of "formatting" in these devices allows the screen to be divided into clusters of contiguous character cells for which numerous attributes (color, highlighting, {character set}, protection from modification) can be set. Further, using a technique known as 'Read Modified' the changes from any number of formatted fields that have been modified can be read as a single input without transferring any other data, another technique to enhance the terminal throughput of the CPU.
The 3270 had twelve, and later twenty-four, special Programmed Function Keys, or PF keys. When one of these keys was pressed, it would cause the device to generate an I/O {interrupt} and present a special code identifying which key was pressed. {Application program} functions such as termination, page-up, page-down or help could be invoked by a single key-push, thereby reducing the load on very busy processors.
A version of the {IBM PC} called the "3270 PC" was released in October 1983. It included 3270 {terminal emulation}.
{tn3270} is modified version of {Telnet} which acts as a 3270 {terminal emulator} and can be used to connect to an IBM computer over a network.
See also {broken arrow}.
(1995-02-07)

ibm 360
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 3720
IBM 3720
[hardware] A {communications controller} made by {IBM}, suitable for use in an {IBM S/390}. Official service support was withdrawn in 1999 in favour of the {IBM 3745}.
{(http://www.ibm.com/search?q=3720&realm=Networking)}.
(2000-02-21)

ibm 650
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
IBM 704
[computer] A large, scientific computer made by {IBM} and used by the largest commercial, government and educational institutions.
The IBM 704 had 36-bit memory words, 15-bit addresses and instructions with one address. A few {index register} instructions had the infamous 15-bit decrement field in addition to the 15-bit address.
The 704, and {IBM 709} which had the same basic architecture, represented a substantial step forward from the {IBM 650}'s {magnetic drum} storage as they provided random access at electronic speed to {core storage}, typically 32k words of 36 bits each.
[Or did the 704 actually come *before* the 650?]
A typical 700 series installation would be in a specially built room of perhaps 1000 to 2000 square feet, with cables running under a raised floor and substantial air conditioning. There might be up to eight {magnetic tape} transports, each about 3 x 3 x 6 feet, on one or two "channels." The 1/2 inch tape had seven tracks and moved at 150 inches per second, giving a read/write speed of 15,000 six bit characters (plus parity) per second.
In the centre would be the operator's {console} consisting of cabinets and tables for storage of tapes and boxes of cards; and a {card reader}, a {card punch}, and a {line printer}, each perhaps 4 x 4 x 5 feet in dimension. Small {jobs} could be entered via {punched cards} at the console, but as a rule the user jobs were transferred from cards to {magnetic tape} by {off-line} equipment and only control information was entered at the console (see {SPOOL}). Before each job, the {operating system} was loaded from a read-only system tape (because the system in {core} could have been corrupted by the previous user), and then the user's program, in the form of card images on the input tape, would be run. Program output would be written to another tape (typically on another channel) for printing off-line.
Well run installations would transfer the user's cards to tape, run the job, and print the output tape with a turnaround time of one to four hours.
The processing unit typically occupied a position symmetric but opposite the operator's console. Physically the largest of the units, it included a glass enclosure a few feet in dimension in which could be seen the "core" about one foot on each side. The 36-bit word could hold two 18-bit addresses called the "Contents of the Address Register" ({CAR}) and the "Contents of the Decrement Register" ({CDR}).
On the opposite side of the floor from the tape drives and operator's console would be a desk and bookshelves for the ever-present (24 hours a day) "field engineer" dressed in, you guessed it, a grey flannel suit and tie. The maintenance of the many thousands of {vacuum tubes}, each with limited lifetime, and the cleaning, lubrication, and adjustment of mechanical equipment, was augmented by a constant flow of {bug} reports, change orders to both hardware and software, and hand-holding for worried users.
The 704 was oriented toward scientific work and included {floating point} hardware and the first {Fortran} implementation. Its hardware was the basis for the requirement in some programming languages that loops must be executed at least once.
The {IBM 705} was the business counterpart of the 704. The 705 was a decimal machine with a circular register which could hold several variables (numbers, values) at the same time.
Very few 700 series computers remained in service by 1965, but the {IBM 7090}, using {transistors} but similar in logical structure, remained an important machine until the production of the earliest {integrated circuits}.
[Was the 704 scientific, business or general purpose? Difference between 704 and 709?]
(1996-01-24)

ibm 7040
IBM 7040
[computer] A scaled down version of the {IBM 7090}.
(1997-02-23)

ibm 705
IBM 705
[computer] A business-oriented counterpart of the {IBM 704}. The 705 was a decimal machine with a circular {register} which could hold several values at the same time.
Languages incuded {ACOM}, {Autocode}, {ELI}, {PRINT}, {PRINT I}, {SOHIO}, {SYMBOLIC ASSEMBLY}.
(2000-06-01)

ibm 709
IBM 709
[computer] A computer made by {IBM} oriented toward scientific work. The 709 had the same basic architecture as the {IBM 704} but with many {I/O} and performance refinements over the 704.
The IBM 709 (like the 704) had 36-bit memory words, 15-bit addresses and instructions with one address. A few {index register} instructions had the infamous 15-bit decrement field in addition to the 15-bit address.
The {IBM 7090} was a transistorised version of the 709.
[Difference between 704 and 709?]
(1999-01-19)

ibm 7090
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
IBM 7094
[computer] A faster version of the {IBM 7090} with more {index registers}.
(1997-02-23)

ibm 801
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
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
IBM Customer Engineer
[job] (CE) A hardware guy from {IBM}.
[Are/were any CEs female?]
(1998-07-08)

ibm discount
IBM discount
A price increase. Outside IBM, this derives from the common perception that IBM products are generally overpriced (see {clone}); inside, it is said to spring from a belief that large numbers of IBM employees living in an area cause prices to rise.
[{Jargon File}]
(1995-02-07)

ibm pc
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
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 pc xt
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 pcjr
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 systems engineer
IBM Systems Engineer
[job] (SE) A software guy from {IBM}.
[Are/were any SEs female?]
(1998-07-08)

ibpag2
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
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
IC
1. [hardware] {integrated circuit}.
2. {Independent Carrier}.
3. {Imperial College}.
(1997-04-12)

ic prolog ii
IC Prolog II
[language, prolog] {Imperial College} Prolog. {A} {Prolog} with {multi-threading}, {TCP} primitives for interprocess communication, {mailbox}es, and an interface to {Parlog}.
{(ftp://doc.ic.ac.uk/computing/programming/languages)}.
["IC Prolog II: A Language for Implementing Multi-Agent Systems", Y. Cosmadopoulos et al, in Tutorial and Workshop on Cooperating Knowledge Based Systems, Keele U 1992].
(1994-11-01)

icam
ICAM
{Integrated Computer Aided Manufacturing}

icann
ICANN
{Internet Corporation for Assigned Names and Numbers}

icase
I-CASE
Integrated {CASE}. Another term for an {IPSE}.

icbm address
ICBM address
[networking, humour] (Or "missile address") The form used to register a site with the {Usenet} mapping project includes a space for longitude and latitude, preferably to seconds-of-arc accuracy. This is actually used for generating geographically-correct maps of {Usenet} links on a plotter; however, it has become traditional to refer to this as one's "ICBM address" or "missile address", and many people include it in their {sig block} with that name. (A real missile address would include target altitude.)
[{Jargon File}]
(1994-12-15)

ice
ICE
1. [electronics] {in-circuit emulator}.
2. [security, jargon] {Intrusion Countermeasure Electronics}.
(2000-03-18)

icebreaker
[security, jargon] A program designed for cracking security on a system.
See also: {ICE}.
[{Jargon File}]
(2000-03-18)

ices
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
ICETRAN
An extension of {Fortran IV} and a component of {ICES}.
[Sammet 1969, p. 617].

ici
ICI
[language] An extensible, interpretated language by Tim Long with {syntax} similar to {C}. ICI adds high-level garbage-collected {associative} data structures, {exception} handling, sets, {regular expressions}, and {dynamic arrays}.
Libraries provide additional types and functions to support common needs such as I/O, simple {databases}, character based screen handling, direct access to {system calls}, {safe pointers}, and {floating-point}.
ICI runs on {Microsoft Windows}, {MS-DOS}, {Unix}, and {Linux} and in {embedded} environments.
{Home (http://www.zeta.org.au/~atrn/ici/)}.
{(ftp://ftp.research.canon.com.au/pub/misc/ici)}.
E-mail: Andy Newman [andy@research.canon.com.au].
Mailing list: ici@research.canon.com.au.
(1999-12-07)

icl
ICL
[company] {International Computers Limited}.

icmp
ICMP
{Internet Control Message Protocol}

icmp router discovery protocol
ICMP Router Discovery Protocol
[protocol] (IRDP) A {routing} {protocol} used by {Microsoft Windows} {DHCP} clients and various {Unix} flavors.
{Vulnerability
(http://www.securiteam.com/securitynews/Most_DHCP_clients_are_vulnerable_to_an_IRDP_attack.html)}.
[Details? Reference?]
(1999-10-31)

icomm
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
iCOMP
{Intel Comparative Microprocessor Performance index}

icon
[graphics] A small picture intended to represent something (a file, directory, or action) in a {graphical user interface}. When an icon is clicked on, some action is performed such as opening a directory or aborting a file transfer.
Icons are usually stored as {bitmap} images. {Microsoft Windows} uses a special bitmap format with file name extension ".ico" as well as embedding icons in executable (".exe") and {Dynamically Linked Library} (DLL) files.
The term originates from {Alan Kay}'s theory for designing interfaces which was primarily based on the work of Jerome Bruner. Bruner's second developmental stage, iconic, uses a system of representation that depends on visual or other sensory organization and upon the use of summarising images.
{IEEE publication
(http://www.ieee.org/organizations/history_center/cht_papers/Barnes.pdf)}.
[What MS tool can create .ico files?]
(2003-08-01)

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

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

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

icq
ICQ
[chat] 1. Abbreviation for "I seek you".
2. A proprietary {chat} system created by a couple of israeli guys, who later founded "mirabilis". ICQ was sold to {America On-Line} around 1998.
The name "ICQ" is a play on "cq", the radio signal for seeking conversation.
{Home (http://www.icq.com/)}.
[Confirm derivation? TCP? Summary?]
(2000-04-03)

icsi
ICSI
{International Computer Science Institute} at Berkeley, CA.

ict
ICT
1. [testing] {In Circuit Test}.
2. [education] {Information and Communication Technology}.
(2000-04-04)

icw
ICW
{Interactive CourseWare}

icws
ICWS
International {Core War} Society.

id
Id
{Irvine Dataflow}

id
[networking] The {country code} for Indonesia.
(1999-01-27)

id
I-D
{Internet-Draft}

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

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

id10t
ID10T
[abuse] /I D ten T/ A grade of user problem somewhere between {PEBCAK} and {UBD}. Considered friendlier than saying, "You called me down here to exit a modal dialog box for you?"
(2003-06-07)

idams
IDAMS
A pictorial retrieval language implemented in {APL}.
["Concept of the Diagnostic Image Workstation", D. Meyer-Ebrecht, Proc 2nd Conf on Picture Archiving (PACS II), SPIE 418, pp.180-183 (1983)].

idd
IDD
{international direct dialing}

ide
IDE
1. [storage] Integrated Drive Electronics, see {Advanced Technology Attachment}.
2. [programming, tool] {integrated development environment}.
3. [company] {Interactive Development Environments}.
(2002-04-14)

idea
IDEA
1. [language] {Interactive Data Entry/Access}.
2. [algorithm] {International Data Encryption Algorithm}.
(1996-02-16)

ideal
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
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
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
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.
[{Jargon File}]
(1995-01-11)

idf
IDF
[networking] {Intermediate Distribution Frame}.

idk
[chat] I don't know.
(2003-09-23)

idl
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
IDMS
1. [language, database] A pictorial {query language}, an extension of {Sequel2}.
["A Management System for an Integrated Database of Pictures and Alphanumeric Data", G.Y. Tang, Computer Graphics Image Processing 16:270-286 (1981)].
2. [database] {Integrated Database Management System}.
(2002-06-10)

idmsx
IDMSX
[database] {IDMS} extended.
(1995-04-19)

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

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

idss
IDSS
{Intelligent Decision Support Systems}

ie
[networking] The {country code} for Ireland.
(1999-01-27)

ie
IE
{Internet Explorer}

iec
IEC
{International Electrotechnical Commission}

iec 559
IEC 559
{IEEE Floating Point Standard}

ieee
IEEE
{Institute of Electrical and Electronics Engineers}

ieee 1076
IEEE 1076
The {IEEE} standard for {VHDL}.

ieee 1394
IEEE 1394
{High Performance Serial Bus}

ieee 488
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 754
{IEEE Floating Point Standard}

ieee 802
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 8022
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 8023
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 8023u
IEEE 802.3u
[networking, standard] The {IEEE} committee working on standards for {Fast Ethernet}.
(1998-06-30)

ieee 8023z
IEEE 802.3z
[networking, standard] The {IEEE} committee working on standards for {Gigabit Ethernet}.
(1998-06-30)

ieee 8024
IEEE 802.4
[networking, standard] The {IEEE} {Token Bus} {standard}.
(1996-12-12)

ieee 8025
IEEE 802.5
The {IEEE} {token ring} {standard}. The most common type of token ring.
(1994-10-27)

ieee computer society
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
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 formats for representing floating-point values: single-precision (32-bit) is required, double-precision (64-bit) is optional. The standard also mentions that some implementations may include single-extended precision (80-bit) and double-extended precision (128-bit) formats.
[On-line document?]
(2003-06-17)

ieee standard 11491
IEEE Standard 1149.1
{Joint Test Action Group}

ief
IEF
{Advantage Gen}

ien
IEN
{Internet Experiment Note}

iepg
IEPG
{Internet Engineering and Planning Group}

iesg
IESG
{Internet Engineering Steering Group}

ietf
IETF
{Internet Engineering Task Force}

if you want x you know where to find it
If you want X, you know where to find it.
[exclamation] There is a legend that {Dennis Ritchie}, inventor of {C}, once responded to demands for features resembling those of what at the time was a much more popular language by observing "If you want {PL/I}, you know where to find it." Ever since, this has been hackish standard form for fending off requests to alter a new design to mimic some older (and, by implication, inferior and {baroque}) one. The case X = {Pascal} manifests semi-regularly on {Usenet}'s {news:comp.lang.c} {newsgroup}. Indeed, the case X = X has been reported in discussions of graphics software (see {X Window System}).
[{Jargon File}]
(1995-10-25)

if1
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
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
IFAC
International Federation of Automatic Control, involved in informatics related to control systems.

ifc
IFC
{Internet Foundation Classes}

ifdef out
/if'def owt/ v. Synonym for {condition out}, specific to {C}.
[{Jargon File}]

ifdl
IFDL
[language] Independent Form Description Language.
{DEC}'s language for describing form-based human interfaces in {DECforms}.
(1995-04-21)

iff
IFF
1. [file format] {Interchange File Format}.
2. Identify friend or foe (radar).

iff
[mathematics, logic] if and only if, i.e. necessary and sufficient. For example, two figures are {congruent} iff one can be placed over the other so that they coincide.
(2002-12-28)

ifip
IFIP
1. {International Federation for Information Processing}.
2. A subset of {ALGOL}.
[Sammet 1969, p. 180].

ifp
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
IFS
1. [operating system] {internal field separators}.
2. [operating system] {Installable File System}.
3. [graphics] {Iterated Function System}.
(1999-04-07)

ifx
IFX
["Type Reconstruction with First-Class Polymorphic Values", J. O'Toole et al, SIGPLAN Notices 24(7):207-217 (Jul 1989)].

igc
IGC
{Institute for Global Communications}

iges
IGES
Initial Graphics Exchange Specification: an ASME/ANSI standard for the exchange of CAD data.

igl
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
IGMP
{Internet Group Management Protocol}

igp
IGP
{Interior Gateway Protocol}

igpl
IGPL
{Interest Group in Pure and Applied Logics}

igs
IGS
{Internet Go Server}.

igu
IGU
[chat] I Give Up. Often found appended to documents, e-mail, programs that don't work, etc.
(1999-09-30)

ihs
IHS
{Integrated Home System}

ihv
IHV
{Independent Hardware Vendor}

iicx
IIcx
{Apple IIcx}

iidmsr
IIDMS/R
{Integrated database management system}

iil
IIL
{Integrated Injection Logic}

iinren
IINREN
{Interagency Interim National Research and Education Network}

iiop
IIOP
{Internet Inter-ORB Protocol}

iir
IIR
{Infinite Impulse Response}

iirc
IIRC
[chat] If I recall/remember correctly.
(1996-11-28)

iis
IIS
1. [World-Wide Web] {Internet Information Server}.
2. [language] {Idealized Instruction Set}.
(1999-08-26)

iit
IIT
{Integrated Information Technology}

iitf
IITF
{Information Infrastructure Task Force}

iitran
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
ILBM
{interleaved bit-map}

ilf
ILF
{Independent Logical File}

iliad
ILIAD
[language, real-time] A {real-time} language.
["On the Design of a Language for Programming Real-Time Concurrent Processes", H.A. Schutz, IEEE Trans Soft Eng SE-5(3):248-255, May 1979].
(2000-09-03)

ilink
I-Link
[bus, standard] {Sony}'s name for {High Performance Serial Bus}.
(2000-09-03)

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

illbehaved
ill-behaved
1. [numerical analysis] Said of an {algorithm} or computational method that tends to blow up because of accumulated roundoff error or poor convergence properties.
2. Software that bypasses the defined {operating system} interfaces to do things (like screen, keyboard, and disk I/O) itself, often in a way that depends on the hardware of the machine it is running on or which is nonportable or incompatible with other pieces of software.
In the {IBM PC}/{mess-dos} world, there is a folk theorem (nearly true) to the effect that (owing to gross inadequacies and performance penalties in the OS interface) all interesting applications are ill-behaved.
See also {bare metal}. Opposite: {well-behaved}, compare {PC-ism}.
[{Jargon File}]

illiac
ILLIAC
Assembly language for the ILLIAC computer. Listed in CACM 2(5):16, (May 1959) p.16.

illiac iv
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
ILOC
Rice U. Register-oriented intermediate language targeted to PC/RT. Source languages include {Fortran} and {Russell}.

ilog solver
Ilog Solver
A commercial {constraint} programming system.
(1994-11-15)

image
1. [data, graphics] Data representing a two-dimensional scene. A digital image is composed of {pixels} arranged in a rectangular array with a certain height and width. Each pixel may consist of one or more {bit}s of information, representing the brightness of the image at that point and possibly including colour information encoded as {RGB} triples.
{Images} are usually taken from the real world via a {digital camera}, {frame grabber}, or {scanner}; or they may be generated by computer, e.g. by {ray tracing} software.
See also {image formats}, {image processing}.
(1994-10-21)
2. [mathematics] The image (or range) of a {function} is the set of values obtained by applying the function to all elements of its {domain}. So, if f : D -] C then the set f(D) = \{ f(d) | d in D \} is the image of D under f. The image is a subset of C, the {codomain}.
(2000-01-19)

image formats
[graphics, file format] There are many formats used to store {images} in files. {GIF}, {TIFF} and {JPEG} are very common. Others are {BIFF}, {bmp}, {Clear}, {FITS}, {IFF}, {NFF}, {OFF}, {PCX}, {PNG}, {TGA}, {XBM}.
Some of these are documented on-line at the following sites:
{The Graphics File Format Page (http://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
Imago Europe plc
A UK {Internet} provider. There sevice is called {Imago On-line}. E-mail: [info@imago.com].

imago online
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
IMAO
{IMHO}

imap
IMAP
{Internet Message Access Protocol}

imc
[language] A {REXX} {interpreter} for {SunOS}.
Current version 1.3 [?].
{(ftp://rexx.uwaterloo.ca/pub/freerexx/imc/)}.
(2000-11-07)

imd
IMD
{intermodulation distortion}

imho
IMHO
[chat] (From SF fandom via {Usenet}) In My Humble Opinion. Also seen in variant forms such as IMO, IMNSHO (In My Not-So-Humble Opinion) and IMAO (In My Arrogant Opinion).
[{Jargon File}]
(1998-09-24)

iml
IML
{Initial Microprogram Load}

immediate version
{child version}

imminent death of the net predicted
Imminent Death Of The Net Predicted!
[messaging] Since {Usenet} first got off the ground in 1980-81, it has grown exponentially, approximately doubling in size every year. On the other hand, most people feel the {signal-to-noise ratio} of {Usenet} has dropped steadily. These trends led, as far back as mid-1983, to predictions of the imminent collapse (or death) of the net. Ten years and numerous doublings later, enough of these gloomy prognostications have been confounded that the phrase "Imminent Death Of The Net Predicted!" has become a running joke, hauled out any time someone grumbles about the {S/N ratio} or the huge and steadily increasing volume, or the possible loss of a key node or link, or the potential for lawsuits when ignoramuses post copyrighted material etc.
[{Jargon File}]
(1998-09-24)

imnsho
IMNSHO
{IMHO}

imo
IMO
{IMHO}

imp
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
[language] Any {programming language} that specifies explicit manipulation of the state of the computer system, not to be confused with a {procedural language}.
An example of an imperative (but non-procedural) language is a {data manipulation language} for a {relational database management system}. This specifies changes to the database but does not necessarily require anyone to specify a sequence of steps.
(2003-06-23)

imperial software technology
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
IMPlementation language
[language] (IMP) An extension of {B} with {floating-point} operations, developed by W. Davidsen at {General Electric} in 1970 for the {GE 600}. It was also {cross-compiled} to {VAX} and {Intel 8080}.
(1996-04-07)

implicit parallelism
[parallel] A feature of a programming language for a {parallel processing} system which decides automatically which parts to run in parallel.
The best way of providing implicit parallelism is still (1995) an active research topic. The problem is to generate the right number of parallel tasks of the right size (or "{granularity}"). Too many tasks and the system gets bogged down in house-keeping, or memory for waiting tasks runs out, too few tasks and processors are left idle.
The best performance is usually achieved with {explicit parallelism} where the programmer can annotate his program to indicate which parts should be executed as independent parallel tasks.
(1995-02-16)

implicit type conversion
[programming] (Or "coercion") The abilty of some {compilers} to automatically insert {type} conversion {functions} where an expression of one type is used in a context where another type is expected.
A common example is coercion of {integers} to {reals} so that an expression like sin(1) is compiled as sin(integerToReal(1)) where sin is of type Real -] Real.
A coercion is usually performed automatically by the compiler whereas a {cast} is an {explicit type conversion} inserted by the programmer.
See also {subtype}.
(1997-07-28)

implies
[logic] (=] or a thin right arrow) A binary {Boolean} function and {logical connective}. A =] B is 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)

imprecise probability
[probability] A {probability} that is represented as an interval (as opposed to a single number) included in [0,1].
(2001-02-21)

improved mercury autocode
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
IMR
{Internet Monthly Report}

ims
IMS
{Information Management System}

ims 6100
IMS 6100
{Intersil 6100}

imsai
Imsai
[company] One of the companies that made very early {microprocessor} systems.
[Where? When? Who? What?]
(1995-05-12)

imsdata base
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)

imsdata communications
IMS/Data Communications
[database] (IMS/DC) The {teleprocessing monitor}/{transaction processing} sytem in {IMS} from {IBM}.
(1999-01-11)

imse
IMSE
{Integrated Modelling Support Environment}

imtc
IMTC
{International Multimedia Teleconferencing Consortium}

in
[networking] The {country code} for India.
(1999-01-27)

in point
IN point
[unit, text] (l'Imprimerie nationale point) A variant of the {point} equal to 0.4 mm.
(2002-03-11)

ina jo
Ina Jo
[specification, language] [FDM?]
["The Ina Jo Specification Language Reference Manual", J. Scheid et al, TR TM-(L)-6021/001/00, SDC Mar 1985].
(2000-02-24)

inarp
InARP
{Inverse Address Resolution Protocol}

inband
in-band
[communications] (bit-robbing) The exchange of call control information on the same channel as the telephone call or data transmission. Since one bit in a frame is periodically used for signalling instead of data, this is often referred to as {bit robbing}.
This is the reason why a {D1} channel in the T-carrier system can only carry 56 Kbps of usable data instead of the 64 Kbps carried by the {D0} channel in the E-carrier system.
(2000-03-10)

inc
/ink/ increment, i.e. increase by one. Especially used by {assembly} programmers, as many assembly languages have an "inc" {mnemonic}.
Antonym: {dec}.
[{Jargon File}]

incantation
Any particularly arbitrary or obscure command that one must mutter at a system to attain a desired result. Not used of passwords or other explicit security features. Especially used of tricks that are so poorly documented that they must be learned from a {wizard}. "This compiler normally locates initialised data in the data segment, but if you {mutter} the right incantation they will be forced into text space."

include
[{Usenet}] 1. To duplicate a portion (or whole) of another's message (typically with attribution to the source) in a reply or followup, for clarifying the context of one's response. See the discussion of inclusion styles under "Hacker Writing Style".
2. [{C}] "#include [disclaimer.h]" has appeared in {sig block}s to refer to a notional "standard {disclaimer} file".
[{Jargon File}]

include war
Excessive multi-leveled including within a discussion {thread}, a practice that tends to annoy readers. In a forum with high-traffic newsgroups, such as {Usenet}, this can lead to {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)

incr tcl
[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)

incremental analysis
[testing] Partial analysis of an incomplete product to allow early feedback on its development.
(1996-05-22)

incremental backup
[operating system] 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 - a "{full backup}". Call this level 0. The next backup could also be a full level 0 backup but it is usually much quicker to do a level 1 backup which will include only those files which have changed since the level 0 backup. Together the level 0 and level 1 backups will include the latest version of every file. Level 1 backups can be made until, say, the backup tape is nearly full, after which we can switch to level 2. Each level includes those files which have changed since the last backup at a lower level. The more levels you use, the longer it will take to restore the latest version of a file (or all files) if you don't know when it was last modified.
(2003-06-22)

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
Incremental Prototyping Technology for Embedded Realtime Systems
[project] An {Esprit} project.
[Partners? Results?]
(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}.
[{Jargon File}]
(1995-07-24)

independent logical file
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
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}.
[{Jargon File}]
(1997-04-09)

index data
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
Indexed Sequential Access Method
[database] (ISAM) An {IBM} file management system allowing records to be accessed either sequentially (in the order they were entered) or via an index. Each index orders the records on a different key.
ISAM was followed by VSAM ({Virtual Storage Access Method}) and pre-dated {relational databases}.
(2003-07-13)

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 sets}. If S is a well-ordered set with ordering "[", and we want to show that a property P holds for every element of S, it is sufficient to show that, for all s in S,
IF for all t in S, t [ s =] P(t) THEN P(s)
I.e. if P holds for anything less than s then it holds for s. In this case we say P is proved by induction.
The most common instance of proof by induction is induction over the {natural numbers} where we prove that some property holds for n=0 and that if it holds for n, it holds for n+1.
(In fact it is sufficient for "[" to be a {well-founded} {partial order} on S, not necessarily a well-ordering of S.)
(1999-12-09)

inductive inference
{grammatical inference}

inductive relation
A relation R between {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
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
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
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}.
[{Jargon File}]
(1995-03-20)

infeasible path
{dead code}

inference
[logic] The logical process by which new facts are derived from known facts by the application of {inference 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}.
[{Jargon File}]
(1995-03-29)

infinite impulse response
Infinite Impulse Response
[electronics, DSP] A type of {digital signal} {filter}, in which every {sample} of output is the weighted sum of past and current samples of input, using all past samples, but the weights of past samples are an inverse function of the sample age, approaching zero for old samples.
(2001-06-06)

infinite loop
[programming] (Or "endless loop") Where a piece of program is executed repeatedly with no hope of stopping. This is nearly always because of a {bug}, e.g. if the condition for exiting the loop is wrong, though it may be intentional if the program is controlling an {embedded system} which is supposed to run continuously until it is turned off. The programmer may also intend the program to run until interrupted by the user. An endless loop may also be used as a last-resort error handler when no other action is appropriate. This is used in some {operating system} kernels following a {panic}.
A program executing an infinite loop is said to {spin} or {buzz} forever and goes {catatonic}. The program is "wound around the axle".
A standard joke has been made about each generation's exemplar of the ultra-fast machine: "The Cray-3 is so fast it can execute an infinite loop in under 2 seconds!"
See also {black hole}, {recursion}, {infinite loop}.
[{Jargon File}]
(1996-05-11)

infinite monkey theorem
Infinite Monkey Theorem
[humour] "If you put an {infinite} number of monkeys at typewriters, eventually one will bash out the script for Hamlet." (One may also hypothesise a small number of monkeys and a very long period of time.) This theorem asserts nothing about the intelligence of the one {random} monkey that eventually comes up with the script (and note that the mob will also type out all the possible *incorrect* versions of Hamlet). It may be referred to semi-seriously when justifying a {brute force} method; the implication is that, with enough resources thrown at it, any technical challenge becomes a {one-banana problem}.
This theorem was first popularised by the astronomer Sir Arthur Eddington. It became part of the idiom through the classic short story "Inflexible Logic" by Russell Maloney, and many younger hackers know it through a reference in Douglas Adams's "Hitchhiker's Guide to the Galaxy".
See also: {RFC 2795}.
[{Jargon File}]
(2002-04-07)

infinite set
[mathematics] A set with an infinite number of elements. There are several possible definitions, e.g.
(i) ("Dedekind infinite") A set X is infinite if there exists a {bijection} (one-to-one mapping) between X and some proper subset of X.
(ii) A set X is infinite if there exists an {injection} from N (the set of {natural 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}.
[{Jargon File}]
(1994-11-18)

infix notation
[language] One of the possible orderings of {functions} and {operands}: in infix notation the functions are placed between their operands, such as "1+2". Although infix notation is limited to binary functions most languages mix infix notation with {prefix} or {postfix} notation, as a form of {syntactic sugar}.
(1997-01-17)

infix syntax
{infix notation}

inflate
{deflate}

infn
INFN
Istituto Nazionale di Fisica Nucleare: an Italian State research organisation.

info basic
Info BASIC
Variant of {Pick BASIC} used with {PRIME}'s {PRIMOS}.

infobahn
Infobahn
(After the German "Autobahn") {Information Superhighway}.

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.html
{(http://www.cs.cmu.edu/~lenzo/infobot.html/)}.
(1998-10-30)

informatics corporation
Informatics Corporation
[company] Renamed to {Sterling Software Corp}.
[When?]
(1998-10-30)

information algebra
Information Algebra
Theoretical formalism for DP, never resulted in a language. Language Structure Group of CODASYL, ca. 1962. Sammet 1969, 709.

information and communication technology
Information and Communication Technology
[education] (ICT) The study of the technology used to handle information and aid communication. The phrase was coined by [?] Stevenson in his 1997 report to the UK government and promoted by the new National Curriculum documents for the UK in 2000.
{(http://rubble.ultralab.anglia.ac.uk/stevenson/ICTUKIndex.html)}.
(2000-11-06)

information appliance
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
Information Builders
Distributors of {LEVEL5 OBJECT}. Telephone +1 800 969 INFO.

information engineering facility
Information Engineering Facility
{COOL:Gen}

information highway
{information superhighway}

information innovation
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
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
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
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
Information Resource Management
(IRM) A philosophical and practical approach to managing government information. Information is regarded as a valuable resource which should be managed like other resources, and should contribute directly to accomplishing organisational goals and objectives. IRM provides an integrated view for managing the entire life-cycle of information, from generation, to dissemination, to archiving and/or destruction, for maximising the overall usefulness of information, and improving service delivery and program management.
IRM views information and {Information Technology} as an integrating factor in the organisation, that is, the various organisational positions that manage information are coordinated and work together toward common ends. Further, IRM looks for ways in which the management of information and the management of Information Technology are interrelated, and fosters that interrelationship and organisational integration.
IRM includes the management of (1) the broad range of information resources, e.g., printed materials, electronic information, and microforms, (2) the various technologies and equipment that manipulate these resources, and (3) the people who generate, organise, and disseminate those resources. Overall the intent of IRM is to increase the usefulness of government information both to the government and to the public.
[Gary D. Blass et al. "Finding Government Information: The Federal Information Locator System (FILS)", Government Information Quarterly, JAI Press, Inc., Greenwich, Connecticut. Vol. 8, No. 1, pp. 11-32. 1991].
(1995-11-12)

information superhighway
[communications] (Or "Infobahn", "Info Strada") The name coined by US Vice-president Al Gore in the early 1990s for the emerging high-speed global communications network capable of carrying voice, data, video, and other services around the world. These services use satellite, copper cable, {optical fibre}, {cellular telecommunications}, and are accessible via {set-top boxes} or suitably equipped computers.
See also {National Information Infrastructure}.
(2001-03-31)

information systems factory
Information Systems Factory
(ISF) An equivalent to an {SEE}.
[{Simultaneous Engineering Environment} or {Software Engineering Environment}?]
(2000-12-30)

information technology
Information Technology
[business, jargon] (IT) Applied computer systems - both {hardware} and {software}, and often including {networking} and {telecommunications}, usually in the context of a business or other enterprise. Often the name of the part of an enterprise that deals with all things electronic.
The term "{computer science}" is usually reserved for the more theoretical, academic aspects of computing, while the vaguer terms "information systems" (IS) or "information services" may include more of the human activities and non-computerised business processes like {knowledge management}. Others say that IT includes computer science.
(2000-10-02)

information technology infrastructure library
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
Informix
A {relational DBMS} vendor.

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

infrared data association
Infrared Data Association
[standard, body] (IrDA) A non-profit trade association providing standards to ensure the quality and interoperability of {infrared} (IR) hardware.
The association currently has a membership of over 160 companies from around the world, representing computer and telecommunications hardware, software, components and adapters.
IrDA typically uses direct infrared i.e. {point-to-point}, {line-of-sight}, one-to-one communications. The standards include: {IrDA Data} ({SIR}, {FIR}, {VFIR}), {IrDA Control}, and {AIR}.
Ports built to the above standards can be found in products such as {PDAs}, {Palm} devices, {printers}, desktop adapters, {notebooks}, and {digital cameras}.
{Home (http://www.irda.org)}.
{IrDA Serial Infrared Interface (http://cesdis1.gsfc.nasa.gov/linux/misc/irda.html)}.
{Linux-IrDA support (http://www.cs.uit.no/linux-irda/)}.
(1999-10-14)

infrastructure
Basic support services for computing, particularly national networks.
See also {information superhighway}.
(1995-06-27)

inglish
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
INGRES
A {relational DBMS} vendor.

inheritance
[programming, object-oriented] In {object-oriented programming}, the ability to derive new {classes} from existing classes. A {derived class} (or "subclass") inherits the {instance variables} and {methods} of the "{base class}" (or "superclass"), and may add new instance variables and methods. New methods may be defined with the same names as those in the base class, in which case they override the original one.
For example, bytes might belong to the class of integers for which an add method might be defined. The byte class would inherit the add method from the integer class.
See also {Liskov substitution principle}, {multiple inheritance}.
(2000-10-10)

initgame
[games] /in-it'gaym/ [IRC] An {IRC} version of the venerable trivia game "20 questions", in which one user changes his {nick} to the initials of a famous person or other named entity, and the others on the channel ask yes or no questions, with the one to guess the person getting to be "it" next. As a courtesy, the one picking the initials starts by providing a 4-letter hint of the form sex, nationality, life-status, reality-status. For example, MAAR means "Male, American, Alive, Real" (as opposed to "fictional"). Initgame can be surprisingly addictive. See also {hing}.
[{Jargon File}]

initial microprogram load
Initial Microprogram Load
[operating system] (IML) Loading {microcode} into microcode memory.
(1997-08-31)

initial operational test and evaluation
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
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
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)

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)

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)

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)

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)

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. The SRC attribute gives the {URL} from which to fetch the image and the ALT attribute gives text to display in place of the image for users with images disabled or who are using text-only browsers or text-to-speech convertors (e.g. blind users).
(1999-10-27)

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

inorder traversal
in-order traversal
{traverse}

inprise corporation
Inprise Corporation
{Borland Software Corporation}.

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

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

inputoutput redirection
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)

inquiryresponse system
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
INRIA
{Institut National de Recherche en Informatique et Automatique}

insanely great
({Macintosh} community, from {Steve Jobs}; also {BSD Unix} people via {Bill Joy}) Something so incredibly {elegant} that it is imaginable only to someone possessing the most puissant of {hacker}-natures.
[{Jargon File}]
(1994-12-06)

insertion sort
[algorithm] A sorting {algorithm} that inserts each item in the proper place into an initially empty list by comparing it with each item in the list until it finds the new element's successor or the end of the list.
Compare {bubble sort}.
(1997-02-12)

insight
INSIGHT
A {simulation} and modelling language especially for health care problems.
["Simulation Modeling with INSIGHT", S.D. Roberts Proc 1983 Winter Sim Conf, S.D. Roberts et al eds, pp.7-16].
(1995-03-03)

insignia solutions inc
Insignia Solutions, Inc.
[company] /in-sig'nee-* s*-loosh'nz/ A company that made its name as a provider of software that allows users to run {Microsoft Windows} and {MS-DOS} {application programs} on {Digital}, {HP}, {IBM}, {Motorola}, {NeXT}, {Silicon Graphics} and {Sun}/{SPARC} {workstations}, {X terminals}, {Java} desktops, and {Apple Computer}'s {Power Macintosh} and {Motorola 68000}-based computers.
Insignia Solutions was founded in 1986. Their first product, {SoftPC} 1.0 for Sun workstations, was introduced in 1988. Also in 1988, Insignia shipped its first version of SoftPC for Apple Computer's Macintosh. As the demand to run Windows and MS-DOS applications on non-Intel computers grew, Insignia signed {OEM} agreements with several companies including {Data General}, Digital, {Fujitsu}, HP, {Intergraph Corp.}, Motorola, Silicon Graphics, and Sun Microsystems.
Insignia Solutions sold its {SoftWindows} and {RealPC} product lines to {FWB Software} [when?]. Its major product in 2000 is the {Jeode} platform, a {Java virtual machine} for {Internet appliances} and {embedded} devices.
{Home Page (http://www.insignia.com/)}.
(2000-02-14)

inspection
[testing] A formal evaluation technique in which software {requirements}, design, or code are examined in detail by a person or group other than the author to detect faults, violations of development standards, and other problems.
(1996-05-22)

installable file system
[operating system] (IFS or "File System Driver", "FSD") An {API} that allows you to extend {OS/2} to access files stored on disk in formats other than {FAT} and {HPFS}, and access files that are stored on a {network file server}.
For example an IFS could provide programs running under OS/2 (including DOS and Windows programs) with access to files stored under {Unix} using the {Berkeley fast file system}.
The other variety of IFS (a "remote file system" or "redirector") allows file sharing over a {LAN}, e.g. using Unix's {Network File System} {protocol}. In this case, the IFS passes a program's file access requests to a remote file server, possibly also translating between different file attributes used by OS/2 and the remote system.
Documentation on the IFS API has been available only by special request from IBM.
An IFS is structured as an ordinary 16-bit {DLL} with entry points for opening, closing, reading, and writing files, the swapper, file locking, and {Universal Naming Convention}. The main part of an IFS that runs in {ring} 0 is called by the OS/2 {kernel} in the context of the caller's process and {thread}. The other part that runs in ring 3 is a utility library with entry points for FORMAT, RECOVER, SYS, and CHKDSK.
{EDM/2 article (http://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)

institut national de recherche en informatique et automatique
Institut National de Recherche en Informatique et Automatique
[body] (INRIA) A French research institute for computer science, {control theory}, and applied mathematics. INRIA has research units in Rocquencourt (near Paris), Sophia-Antipolis (near Nice), Grenoble, Nancy (also known as LORIA) and Rennes (known as IRISA), the last two in partnership with {CNRS} and local universities.
INRIA works on various projects, including the development of {free software} such as {SciLab}, {Objective Caml}, {Bigloo}, and projects such as {GNU MP}.
(2003-07-13)

institute for global communications
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
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)

instruction address register
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 {external bus} is otherwise idle. If the processor executes a {branch} instruction or receives an {interrupt} then the queue must be flushed and reloaded from the new address.
Instruction prefetch is often combined with {pipelining} in an attempt to keep the pipeline busy.
By 1995 most processors used prefetching, e.g. {Motorola 680x0}, {Intel 80x86}.
[First processors using prefetch?]
(1998-03-29)

instruction scheduling
The {compiler} phase that orders instructions on a {pipelined}, {superscalar}, or {VLIW} architecture so as to maximise the number of function units operating in parallel and to minimise the time they spend waiting for each other.
Examples are filling a {delay slot}; interspersing {floating-point} instructions with integer instructions to keep both units operating; making adjacent instructions independent, e.g. one which writes a register and another which reads from it; separating memory writes to avoid filling the {write buffer}.
Norman P. Jouppi and David W. Wall, {"Available Instruction-Level Parallelism for Superscalar and Superpipelined Processors"
(ftp://gatekeeper.dec.com/archive/pub/DEC/WRL/research-reports/WRL-TR-89.7.ps.Z)}, Proceedings of the Third International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 272--282, 1989.
[The SPARC Architecture Manual, v8, ISBN 0-13-825001-4]

instruction set
[architecture] The collection of {machine language} {instructions} that a particular {processor} understands.
The term is almost synonymous with "{instruction set architecture}" since the instructions are fairly meaningless in isolation from the {registers} etc. that they manipulate.
(1999-07-05)

instruction set architecture
[architecture] (ISA) The parts of a {processor}'s design that need to be understood in order to write {assembly language}, such as the {machine language} instructions and {registers}. Parts of the architecture that are left to the implementation, such as number of {superscalar} {functional units}, {cache} size and {cycle} speed, are not part of the ISA.
The definition of {SPARC}, for example, carefully distinguishes between an implementation and a specification.
(1999-01-16)

instruction set processor
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
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 that is either zero or an integer plus or minus one. An integer is a number with no fractional part. If written as a {fixed-point} number, the part after the decimal (or other base) point will be zero.
A {natural number} is a non-negative integer.
(2002-04-07)

integer specbaserate
Integer SPECbaserate
{SPECrate_base_int92}

integer specbaseratio
Integer SPECbaseratio
{SPECbase_int92}

integer specrate
Integer SPECrate
{SPECrate_int92}

integer specratio
Integer SPECratio
{SPECint92}

integrated circuit
[electronics] (IC, or "chip") A microelectronic {semiconductor} device consisting of many interconnected transistors and other components. ICs are constructed ("fabricated") on a small rectangle (a "die") cut from a Silicon (or for special applications, Sapphire) wafer. This is known as the "substrate". Different areas of the substrate are "doped" with other elements to make them either "p-type" or "n-type" and polysilicon or aluminium tracks are etched in one to three layers deposited over the surface. The die is then connected into a package using gold wires which are welded to "pads", usually found around the edge of the die.
Integrated circuits can be classified into analogue, digital and hybrid (both analogue and digital on the same chip). Digital integrated circuits can contain anything from one to millions of {logic gates} - {inverters}, {AND}, {OR}, {NAND} and {NOR} gates, {flip-flops}, {multiplexors} etc. on a few square millimeters. The small size of these circuits allows high speed, low power dissipation, and reduced manufacturing cost compared with board-level integration.
The first integrated circuits contained only a few {transistors}. Small Scale Integration ({SSI}) brought circuits containing transistors numbered in the tens. Later, Medium Scale Integration ({MSI}) contained hundreds of transistors. Further development lead to Large Scale Integration ({LSI}) (thousands), and VLSI (hundreds of thousands and beyond). In 1986 the first one {megabyte} {RAM} was introduced which contained more than one million transistors.
LSI circuits began to be produced in large quantities around 1970 for computer main memories and pocket calculators. For the first time it became possible to fabricate a {CPU} or even an entire {microprocesor} on a single integrated circuit. The most extreme technique is {wafer-scale integration} which uses whole uncut wafers as components.
[Where and when was the term "chip" introduced?]
(1997-07-03)

integrated database management system
Integrated Database Management System
[database] (IDMS) A network {DBMS} written by the staff of B.F.Goorich (Akron, Ohio, USA) circa 1972 and sold to {Cullinet} (Originally Cullinane, now part of {Computer Associates}).
IDMS was licensed to {ICL} in 1976 for porting to, and subsequent development on, their computers. It was implemented on the {ICL 1900} Series ({DME} {George 2}, {George 3}, {CME}, {TME}), {System 4}, and {ICL 2900} Series (later Series 39 Corporate Servers). The latest version runs on Series 39 {OpenVME} as IDMSX (IDMS extended).
[Was it a {relational database}?]
(1995-04-19)

integrated development environment
{interactive development environment}

integrated drive electronics
Integrated Drive Electronics
{Advanced Technology Attachment}

integrated information technology
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
Integrated Modelling Support Environment
[project] (IMSE) An {Esprit} programme.
[Details?]
(1999-04-26)

integrated project support environment
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
Integrated Services Digital Network
[communications] (ISDN) A set of communications {standards} allowing a single wire or {optical fibre} to carry voice, digital network services and video. ISDN is intended to eventually replace the {plain old telephone system}.
ISDN was first published as one of the 1984 {ITU-T} {Red Book} recommendations. The 1988 {Blue Book} recommendations added many new features. ISDN uses mostly existing {Public Switched Telephone Network} (PSTN) switches and wiring, upgraded so that the basic "call" is a 64 kilobits per second, all-digital end-to-end channel. {Packet} and {frame} modes are also provided in some places.
There are different kinds of ISDN connection of varying bandwidth (see {DS level}):
DS0 = 1 channel PCM at 64 kbps T1 or DS1 = 24 channels PCM at 1.54 Mbps T1C or DS1C = 48 channels PCM at 3.15 Mbps T2 or DS2 = 96 channels PCM at 6.31 Mbps T3 or DS3 = 672 channels PCM at 44.736 Mbps T4 or DS4 = 4032 channels PCM at 274.1 Mbps
Each channel here is equivalent to one voice channel. DS0 is the lowest level of the circuit. T1C, T2 and T4 are rarely used, except maybe for T2 over microwave links. For some reason 64 kbps is never called "T0".
A {Basic Rate Interface} (BRI) is two 64K "bearer" channels and a single "delta" channel ("2B+D"). A {Primary Rate Interface} (PRI) in North America and Japan consists of 24 channels, usually 23 B + 1 D channel with the same physical interface as T1. Elsewhere the PRI usually has 30 B + 1 D channel and an {E1} interface.
A {Terminal Adaptor} (TA) can be used to connect ISDN channels to existing interfaces such as {EIA-232} and {V.35}.
Different services may be requested by specifying different values in the "Bearer Capability" field in the call setup message. One ISDN service is "telephony" (i.e. voice), which can be provided using less than the full 64 kbps bandwidth (64 kbps would provide for 8192 eight-bit samples per second) but will require the same special processing or {bit diddling} as ordinary PSTN calls. Data calls have a Bearer Capability of "64 kbps unrestricted".
ISDN is offered by local telephone companies, but most readily in Australia, France, Japan and Singapore, with the UK somewhat behind and availability in the USA rather spotty.
(In March 1994) ISDN deployment in Germany is quite impressive, although (or perhaps, because) they use a specifically German signalling specification, called {1.TR.6}. The French {Numeris} also uses a non-standard protocol (called {VN4}; the 4th version), but the popularity of ISDN in France is probably lower than in Germany, given the ludicrous pricing. There is also a specifically-Belgian V1 experimental system. The whole of Europe is now phasing in {Euro-ISDN}.
See also {Frame Relay}, {Network Termination}, {SAPI}.
{FAQ (ftp://src.doc.ic.ac.uk/usenet/news-info/comp.dcom.isdn/)}.
{Usenet} newsgroup: {news:comp.dcom.isdn}.
(1998-03-29)

integrated systems architecture
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] A type of {testing} in which {software} and/or {hardware} components are combined and tested to confirm that they interact according to their requirements. Integration testing can continue progressively until the entire system has been integrated.
(2003-09-24)

integrity 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
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
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
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
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
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
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
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
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
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
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
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 80386dx
Intel 80386DX
[processor] A version of the {Intel 80386} with a 32-bit {data bus} and 32-bit {address bus}, a BGA. The 386DX was clocked at 16 to 33 MHz by {Intel} and up to 40 MHz by {AMD}. It comes in a {BGA} package.
(2003-07-05)

intel 80386sx
Intel 80386SX
[processor] A lower-speed version of the {Intel 80386}. It uses a 16-bit data bus instead of a 32-bit data bus. It has a 24-bit {address bus}. It is faster than the 286, and more importantly, like the full-size 386, provides more flexibility in running existing DOS applications. Intel's version runs at 16 MHz, while {AMD}'s can run at up to 33 MHz. It comes in a {PFP} package.
(2003-07-05)

intel 8048
Intel 8048
[processor] The {microcontroller} used in {IBM PC} keyboards. The 8048 was inspired by, and similar to, the {Fairchild F8} microprocessor but, being a microcontroller, was designed for low cost and small size. The 8048 has a modified {Harvard architecture}, with program {ROM} on chip and 64 to 256 bytes of {RAM} also on chip. I/O is mapped in its own {address space}.
Though the 8048 was eventually replaced by the very popular but bizarre {Intel 8051} and {Intel 8052}, even in 2000 it is still very popular due to its low cost, wide availability, and development tools.
[Was it really _the_first_ microcontroller? Are the ROM and RAM both on-chip?]
(2000-06-01)

intel 80486
Intel 80486
{Intel 486}

intel 8051
Intel 8051
[processor] A {microcontroller} developed by {Intel} in 1980 for use in {embedded} products and still (1999) one of the most popular microcontrollers.
The 8051/8031 {cores} are used in over 100 devices from 10 independent manufacturers such as Dallas and Philips.
[What is the difference between the 8031/8051/8052?]
See also {CAS 8051 Assembler}, {as31} assembler, {51forth}.
{8051 FAQ (http://www.ece.orst.edu/~pricec/8051/faq/index.html)}.
{The 8031/51 series microcontroller (http://www.rehn.org/YAM51/)}.
{Intel MCS51 series microcontrollers (http://www.intel.com/design/mcs51/)}.
(1999-11-21)

intel 8080
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
Intel 8085
[processor] A {microprocessor} intended to be an improved {Intel 8080}, as was the {Zilog Z80}.
(1994-10-31)

intel 8086
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
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
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
Intel 8751
[processor] A {microcontroller} from {Intel} including a {CPU}, two timers. 128 bytes of {RAM}, 4 kBytes of {EEPROM}, four eight-bit biderectional I/O ports and an {EIA-232} port.
The 8751 belongs to the Intel i51 Microcontroller family. It was designed by Intel but is now manufactured by Intel, {Philips}, {Siemens}, {AMD} and others. Motorola's microcontroller families (68HC05, 68HC08 and 68HC11) are meant to compete with the i51 family.
(1995-04-22)

intel comparative microprocessor performance index
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
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)

intel i960
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)

intel literature sales
Intel Literature Sales
Address: PO Box 58130, Santa Clara, CA 95052, USA.
Telephone: +1 800 548 4725.
(1995-01-12)

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

intellect
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 inputoutput
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 io
Intelligent I/O
{Intelligent Input/Output}

intelligent key
[database] A {relational database} {key} which depends wholely on one or more other columns in the same table. An intelligent key might be identified for implementation convenience, where there is no good {candidate key}.
For example, if the three-letter initials of a group of people are known to be unique but only their full names are recorded, a three letter acronym for their names (e.g. John Doe Smith -] JDS) would be an intelligent key.
Intelligent keys are a {Bad Thing} because it is hard to guarantee uniqueness, and if the value on which an intelligent key depends changes then the key must either stay the same, creating an inconsistency within the containing table, or change, requiring changes to all other tables in which it appears as a {foreign key}. The correct solution is to use a {surrogate key}.
(1999-12-07)

intelligent terminal
[hardware] (or "smart terminal", "programmable terminal") A terminal that often contains not only a keyboard and screen, but also comes with a disk drive and printer, so it can perform limited processing tasks when not communicating directly with the central computer. Some can be programmed by the user to perform many basic tasks, including both arithmetic and logic operations. In some cases, when the user enters data, the {data} will be checked for errors and some type of report will be produced. In addition, the valid data that is entered may be stored on the disk, it will be transmitted over communication lines to the central computer.
An intelligent terminal may have enough computing capability to draw graphics or to offload some kind of front-end processing from the computer it talks to.
The development of {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
IntelliMouse
{Microsoft IntelliMouse Explorer}

intelsat
Intelsat
[company, communications] A private satellite communications company that provides telephony, corporate network, {video} and {Internet} solutions around the globe via capacity on 25 geosynchronous satellites.
(2003-05-13)

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)

intent to package
Intent to Package
[Debian] (ITP) A notice, posted to the {Debian} developer {mailing list}, announcing a developer's intent to make a new Debian package, including a brief description of the package and its license.
(2000-05-31)

interactive
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
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 entryaccess
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
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, integrated development environment) A system for supporting the process of writing software. Such a system may include a {syntax-directed editor}, graphical tools for program entry, and integrated support for compiling and running the program and relating compilation errors back to the {source}.
Such systems are typically both interactive and integrated, hence the ambiguous acronym. They are interactive in that the developer can view and alter the execution of the program at the level of statements and variables. They are integrated in that, partly to support the above interaction, the source code editor and the execution environment are tightly coupled, e.g. allowing the developer to see which line of source code is about to be executed and the current values of any variables it refers to.
Examples include {Visual C++} and {Visual Basic}.
(2002-09-21)

interactive development environments
Interactive Development Environments
[company] (IDE) A US {software engineering} company.
(1996-03-04)

interactive software engineering
Interactive Software Engineering
[company] (ISE) The company set up by {Bertrand Meyer}, now its president, to develop and distribute {Eiffel}, the language which he created. ISE also organises the {TOOLS} conference (Technology of Object-Oriented Languages and Systems).
{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
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
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
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
InterBase
A commercial {active DBMS}.

intercal
INTERCAL
[language, humour] /in't*r-kal/ (Said by the authors to stand for "Compiler Language With No Pronounceable Acronym").
Possibly the most elaborate and long-lived joke in the history of programming languages. It was designed on 1972-05-26 by Don Woods and Jim Lyons at Princeton University.
INTERCAL is purposely different from all other computer languages in all ways but one; it is purely a written language, being totally unspeakable. The INTERCAL Reference Manual, describing features of horrifying uniqueness, became an underground classic. An excerpt will make the style of the language clear:
It is a well-known and oft-demonstrated fact that a person whose work is incomprehensible is held in high esteem. For example, if one were to state that the simplest way to store a value of 65536 in a 32-bit INTERCAL variable is:
DO :1 [- #0$#256
any sensible programmer would say that that was absurd. Since this is indeed the simplest method, the programmer would be made to look foolish in front of his boss, who would of course have happened to turn up, as bosses are wont to do. The effect would be no less devastating for the programmer having been correct.
INTERCAL has many other peculiar features designed to make it even more unspeakable. The Woods-Lyons implementation was actually used by many (well, at least several) people at {Princeton}.
Eric S. Raymond [esr@snark.thyrsus.com] wrote C-INTERCAL in 1990 as a break from editing _The_New_Hacker's_Dictionary_, adding to it the first implementation of {COME FROM} under its own name. The compiler has since been maintained and extended by an international community of technomasochists and is consequently enjoying an unprecedented level of unpopularity.
The version 0.9 distribution includes the compiler, extensive documentation and a program library. C-INTERCAL is actually an INTERCAL-to-C source translator which then calls the local {C} compiler to generate a binary. The code is thus quite portable.
{Intercal Resource Page (http://locke.ccil.org/~esr/intercal/)}.
{Usenet} newsgroup: {news:alt.lang.intercal}.
["The INTERCAL Programming Language Reference Manual", Donald R. Woods & James M. Lyon].
[{Jargon File}]
(1997-04-09)

interchange file format
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
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
Interest Group in Pure and Applied Logics
(IGPL) A body of 700 researchers in various aspects of {logic} (symbolic, mathematical, computational, philosophical, etc.) from all over the world. The group's main r�le is as a research and information clearing house. The group also: supports exchange of information about research problems, references and common interest among group members; helps to obtain photocopies of papers; supplies review copies of books through the Journals on which some members are editors; organises exchange visits and workshops; advises on papers for publication; edits and distributes a Newsletter and an electronic Bulletin; keeps an {FTP archive} of papers, abstracts; obtains reductions on group purchases of logic books from publishers.
{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".
[{Jargon File}]

interexchange carrier
inter-exchange carrier
[communications] (IXC) A company allowed to handle long-distance calls following the break-up of the Bell system in the US by anti-trust regulators.
{Local Exchange Carriers} (LEC) are not allowed to handle long-distance traffic and Inter Exchange carriers are not allowed to handle local calls.
(2002-08-28)

interface
[jargon] A boundary across which two systems communicate. An interface might be a hardware connector used to link to other devices, or it might be a convention used to allow communication between two software systems. Often there is some intermediate component between the two systems which connects their interfaces together. For example, two {EIA-232} interfaces connected via a serial cable.
See also {graphical user interface}, {Application Program Interface}.
(1996-05-22)

interface analysis
[testing] A software test which checks the interfaces between program elements for consistency and adherence to predefined rules or {axioms}.
(1996-07-09)

interface architect
Interface Architect
An interface builder for Motif distributed by Hewlett-Packard (see UIMX).

interface definition language
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
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
Interface Message Processor
[networking] (IMP) The original {message switching node} on the {ARPANET}.
[More details?]
(1996-04-07)

interior gateway protocol
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
{progressive coding}

interlaced image
{progressive coding}

interlacing
1. [hardware] A {video} display system which builds an {image} on the {VDU} in two phases, known as "fields", consisting of even and odd horizontal lines.
The complete image (a "frame") is created by scanning an electron beam horizontally across the screen, starting at the top and moving down after each horizontal scan until the bottom of the screen is reached, at which point the scan starts again at the top. On an interlaced display, even numbered {scan lines} are displayed in the first field and then odd numbered lines in the second field.
For a given screen {resolution}, {refresh rate} (frames per second) and {phosphor} {persistence}, interlacing reduces flicker because the top and bottom of the screen are redrawn twice as often as if the scan simply proceded from top to bottom in a single vertical sweep.
2. [graphics] {progressive coding}.
(1998-02-25)

interlan
Interlan
A brand of {Ethernet} card.
(1994-11-09)

interleaf
Interleaf
A document preparation system for {Sun}, {VAX}, {Apollo} and other {workstations}.
(1994-11-09)

interleave
{interleaving}

interleaving
See {sector interleave}.
[Other uses?]

interlink
INTERLINK
A commercial product comprising hardware and software for file transfer between IBM and VAX computers.

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

interlisp10
Interlisp-10
An {Interlisp} with {shallow binding}.

interlispd
Interlisp-D
{Xerox}'s {Interlisp} with {deep binding}.

intermedia
Intermedia
A hypertext system developed by a research group at IRIS (Brown University).

intermedia interchange format
Intermedia Interchange Format
A Standard {Hypertext} Interchange format from IRIS.

intermediate distribution frame
Intermediate Distribution Frame
[networking] (IDF) A {network closet} containing a secondary {hub}, fed from the main hub.
(1995-05-05)

intermediate programming language
Intermediate Programming Language
[language] A very early attempt by Arthur W. Burks to express machine language at a higher level of abstraction. Like {Plankalkul}, it used a right-handed style of {assignment}, in which the location appears on the right.
(1995-05-09)

intermediate system
Intermediate System
[networking] (IS) An {Open Systems Interconnection} system which performs {network layer} forwarding. It is analogous to an {IP} {router}.
(1994-11-29)

intermediate systemintermediate system
Intermediate System-Intermediate System
[networking] (IS-IS) The {OSI} {Interior Gateway Protocol}.
(2003-07-12)

intermercial
{interstitial}

intermetrics inc
Intermetrics, Inc.
{AverStar}

intermodulation distortion
[electronics, communications] (IMD) {Nonlinear} {distortion} in a system or {transducer}, characterised by the appearance in the output of frequencies equal to the sums and differences of integral multiples of the two or more component frequencies present in the {input} waveform.
(2000-08-21)

internal field separators
[operating system] ($IFS) A predefined {environment variable} in the {Unix} {Bourne shell} whose default value is the three-character string containing {space}, {tab} and {line feed}. Any string of one or more of these characters separates the command and each of its arguments in a command line.
$IFS also tells the shell's built-in read command where to split an input line when reading into multiple variables. E.g. setting IFS=: would be appropriate for reading a file with ':'-separated fields, such as /etc/passwd.
(1999-04-07)

internal translator
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
International Algebraic Language
{ALGOL 58}

international atomic time
International Atomic Time
[time, standard] (TAI) An international standard measurement of time based on the comparison of many {atomic clocks}. TAI is maintained by the Bureau International des Poids et Mesures (BIPM), the world's governing body for civil atomic time measurement. TAI is the basis for {Coordinated Universal Time}.
{BIPM (http://www.bipm.fr/enus/5_Scientific/c_time/time_1.html)}.
(2001-08-02)

international business machines
International Business Machines
[company] (IBM) The best known American computer manufacturer, founded by Thomas J. Watson (born 1874-02-17), known as "Big Blue" after the colour of its logo. IBM makes everything from {mainframes} to {personal computers} (PCs) and has been immensely successful in selling them, chiefly to business. It has often been said that "Nobody has ever been sacked for buying IBM".
The {IBM PC} in its various versions has been so successful that unqualified reference to a "PC" almost certainly means a PC from IBM, or one of the many brands of {clone} produced by other manufacturers to cash in on IBM's original success.
Alternative expansions of "IBM" such as Inferior But Marketable; It's Better Manually; Insidious Black Magic; It's Been Malfunctioning; Incontinent Bowel Movement, illustrate the considerable antipathy most hackers have long felt toward the "industry leader" (see {fear and loathing}).
Quarterly sales $15351M, profits $689M (Aug 1994).
{Home (http://www.ibm.com/)}.
(1999-04-07)

international computers limited plc
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 (pounds)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
International Core War Society
[games, standard, body] (ICWS) The official standards body for {Core War}.
(1996-02-16)

international data encryption algorithm
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
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
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
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)

international multimedia teleconferencing consortium
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
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 Organisation for Standardisation
{International Organization for Standardization}

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
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
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
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
International Standard
[standard] The series of {standards} from {ISO} and its subcommitees.
[List? Text?]
(1995-04-21)

international telecommunications union
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 {EIA-232}. {V.24} is the same as EIA's {EIA-232C}. {V.28} is the same as EIA's {EIA-232D}.
Address: International Telecommunication Union, Information Services Department, Place des Nations, 1211 Geneva 20, Switzerland.
Telephone: +41 (22) 730 5554. Fax: +41 (22) 730 5337.
E-mail: [helpdesk@itu.ch], [teledoc@itu.arcom.ch] (Mail body: HELP).
{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/standards/ccitt)}, {world.std.com (ftp://world.std.com/obi/Standards/CCITT)}; {Australia (ftp://metro.ucc.su.oz.au/pub/ccitt)}; {Germany (ftp://quepasa.cs.tu-berlin.de/pub/doc/CCITT)}; {Japan (ftp://sh.wide.ad.jp/CCITT)};
(1995-01-16)

international traffic in arms regulation
International Traffic in Arms Regulation
[legal] (ITAR) Now called the {Defense Trade Regulations}.

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}

internaut
Internaut
[jargon, World-Wide Web] (From "Internet" + "astronaut") A person who explores the {Internet} (or "{cyberspace}"), normally searching for information.
(2002-06-30)

internet
Internet
[networking] (Note: capital "I"). The Internet is the largest {internet} (with a small "i") in the world. It is a three level {hierarchy} composed of {backbone networks}, {mid-level networks}, and {stub networks}. These include commercial (.com or .co), university (.ac or .edu) and other research networks (.org, .net) and military (.mil) networks and span many different physical networks around the world with various {protocols}, chiefly the {Internet Protocol}.
Until the advent of the {World-Wide Web} in 1990, the Internet was almost entirely unknown outside universities and corporate research departments and was accessed mostly via {command line} interfaces such as {telnet} and {FTP}. Since then it has grown to become an almost-ubiquitous aspect of modern information systems, becoming highly commercial and a widely accepted medium for all sort of customer relations such as advertising, brand building, and online sales and services. Its original spirit of cooperation and freedom have, to a great extent, survived this explosive transformation with the result that the vast majority of information available on the Internet is free of charge.
While the web (primarily in the form of {HTML} and {HTTP}) is the best known aspect of the Internet, there are many other {protocols} in use, supporting applications such as {electronic mail}, {Usenet}, {chat}, {remote login}, and {file transfer}.
There were 20,242 unique commercial domains registered with {InterNIC} in September 1994, 10% more than in August 1994. In 1996 there were over 100 {Internet access providers} in the US and a few in the UK (e.g. the {BBC Networking Club}, {Demon}, {PIPEX}).
There are several bodies associated with the running of the Internet, including the {Internet Architecture Board}, the {Internet Assigned Numbers Authority}, the {Internet Engineering and Planning Group}, {Internet Engineering Steering Group}, and the {Internet Society}.
See also {NYsernet}, {EUNet}.
{The Internet Index (http://www.openmarket.com/intindex)} - statistics about the Internet.
(2000-02-21)

internet
[networking] (Note: not capitalised) Any set of networks interconnected with {routers}. The {Internet} is the biggest example of an internet.
(1996-09-17)

internet access provider
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
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
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}.
[{Jargon File}]
(1994-12-06)

internet address
[networking] (Note lower case "i"). An {IP} address that uniquely identifies a node on an {internet}.
[{Jargon File}]
(1995-04-12)

internet architecture board
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
Internet Assigned Numbers Authority
[body, networking] (IANA) The central registry for various "{assigned numbers}": {Internet Protocol} parameters, such as {port}, {protocol}, and {enterprise} numbers; and options, codes, and types. The currently assigned values are listed in the "Assigned Numbers" document {STD 2}. To request a number assignment, e-mail [iana@isi.edu].
(1994-12-06)

internet backbone
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
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
Internet Control Message Protocol
[protocol] (ICMP) An extension to the {Internet Protocol} (IP) that allows for the generation of error messages, test packets, and informational messages related to IP. It is defined in STD 5, {RFC 792}.
(1999-09-18)

internet corporation for assigned names and numbers
Internet Corporation for Assigned Names and Numbers
[body, networking] (ICANN) The non-profit corporation that was formed to assume responsibility for {IP address} allocation, protocol parameter assignment, {domain name system} management, and {root server} system management functions now performed under U.S. Government contract by {IANA} and other entities.
{ICANN Home (http://www.icann.org/)}.
(2002-01-09)

internet engineering and planning group
Internet Engineering and Planning Group
(IEPG) {(http://iepg.org/)}.

internet engineering steering group
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
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
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
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
Internet Express
An {Internet provider} in Colorado Springs, USA. Formerly called the Community News Service. They provide {SLIP} accounts at no extra charge.
(1994-12-08)

internet foundation classes
Internet Foundation Classes
[language, library, programming, standard] (IFC) A {library} of {classes} used in the creation of {Java} {applets} with {GUIs}.
Created by {Netscape}, the Internet Foundation Classes provide GUI elements, as well as classes for {Applications Services}, {Security}, {Messaging}, and {Distributed Objects}.
The IFC code, which is exclusively Java, is layered on top of the Java {Abstract Windowing Toolkit} (AWT), thus preserving {platform independence}.
The AWT and IFC collectively form the {Java Foundation Classes}, which provide a standardised framework for developing powerful Java applications.
{IFC download (http://wp.netscape.com/eng/ifc/download.html)}.
(2003-08-17)

internet go server
Internet Go Server
[games, networking] (IGS) A place for {Go} players to meet and play via the {Internet}.
{IGS Home (http://www.pandanet.co.jp/English/)}.
(1995-03-17)

internet group management protocol
Internet Group Management Protocol
[protocol] (IGMP) An extension to the {Internet Protocol}, used by IP {hosts} to report their {host group} memberships to immediately-neighbouring {multicast} {routers}.
See also {MBONE}.
Version 1 of IGMP is defined in Appendix 1 of {RFC 1112}.
Version 2 is proposed in {RFC 2236}.
(1999-11-08)

internet information server
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 interorb protocol
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
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}.
Current version: 4.
See {RFC 2060}, {RFC 2061}, and others.
Compare: {POP}.
(1999-03-14)

internet monthly report
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
Internet Network Information Center
[networking] (InterNIC) An umbrella entity created by the {National Science Foundation} in Spring 1992, in cooperation with the Internet community, consisting of Network Information Service Managers who provided and/or coordinated {NSFNet} services. {General Atomics} provided information services, {AT&T} provided directory and database services, and {Network Solutions, Inc.} (NSI) provided registration services.
In 1999 Internic was replaced by {ICANN}.
{Home (http://www.internic.net/)}.
{(http://www.nic.net/)}.
(2003-04-16)

internet number
{internet address}

internet open trading protocol
Internet Open Trading Protocol
[protocol, business] (IOTP, Formerly "Open Trading Protocol", OTP) A specification that provides an interoperable framework for Internet commerce. It is optimised for the case where the buyer and the merchant do not have a prior acquaintance and is payment system independent. It will be able to encapsulate and support payment systems such as {SET}, {Mondex}, CyberCash's {CyberCoin}, DigiCash's {e-cash}, GeldKarte, etc. IOTP is able to handle cases where such merchant roles as the shopping site, the payment handler, the deliverer of goods or services, and the provider of customer support are performed by different Internet sites.
The IOTP specification is maintained by the {IETF} {Internet Open Trading Protocol (trade) Working Group (http://www.ietf.org/html.charters/trade-charter.html)}.
{Home (http://www.otp.org/)}.
(2001-09-22)

internet protocol
Internet Protocol
[networking] (IP) The {network layer} for the {TCP/IP} {protocol} suite widely used on {Ethernet} networks, defined in {STD} 5, {RFC} 791. IP is a {connectionless}, {best-effort} {packet switching} protocol. It provides {packet} {routing}, {fragmentation} and re-assembly through the {data link layer}.
IPv4 is the version in widespread use and {IPv6} is just beginning to come into use in 2000.
[Other versions? Dates?]
(2000-12-19)

internet protocol control protocol
Internet Protocol Control Protocol
[networking] (IPCP) The {Control Protocol} for {Internet Protocol}.
[Details?]
(2002-06-29)

internet protocol version 4
Internet Protocol version 4
[networking, protocol] The version of {Internet Protocol} in widespread use in 2000.
(2000-12-19)

internet protocol version 6
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
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
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
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
Internet Research Steering Group
[body, standard] (IRSG) The "governing body" of the {Internet Research Task Force}.
(1994-12-08)

internet research task force
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
Internet Security Association and Key Management Protocol
[networking, protocol] (ISAKMP) The definitions and procedures for {authenticating} communication between 2 {peers}. This includes the creation and management of {Security Associations}, {key} generation techniques, and {threat mitigation}. ISAKMP is proposed in {RFC 2408}.
(2000-02-08)

internet server application programming interface
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
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
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
Internet Telephony
{IP Telephony}

internet telephony service providers
Internet Telephony Service Providers
[communications] (ITSP) Companies providing {IP Telephony}.
(1999-04-26)

internet worm
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)

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

internetwork packet exchange
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)

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)

internex online
Internex On-Line
A rather cheap {Internet} service provider in Toronto, Canada.
{(http://www.io.org/)}.
(1994-11-30)

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

interpacket gap
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
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
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)

interprocess communication
Inter-process Communication
[programming, operating system] (IPC) Exchange of data between one {process} and another, either within the same computer or over a {network}. It implies a {protocol} that guarantees a response to a request. Examples are {Unix} {sockets}, {RISC OS}'s messages, {OS/2}'s {Named Pipes}, {Microsoft Windows}' {DDE}, {Novell}'s {SPX} and {Macintosh}'s IAC.
Although IPC is performed automatically by programs, an analogous function can be performed interactively when users cut and paste data from one process to another using a {clipboard}.
(1995-12-14)

interrupt
[programming] 1. An {asynchronous} event that suspends normal processing and temporarily diverts the {flow of control} through an "{interrupt handler}" routine.
Interrupts may be caused by both {hardware} (I/O, timer, machine check) and {software} (supervisor, {system call} or {trap} instruction).
In general the computer responds to an interrupt by storing the information about the current state of the running program; storing information to identify the source of the interrupt; and invoking a first-level {interrupt handler}. This is usually a {kernel} level privileged process that can discover the precise cause of the interrupt (e.g. if several devices share one interrupt) and what must be done to keep operating system tables (such as the process table) updated. This first-level handler may then call another handler, e.g. one associated with the particular device which generated the interrupt.
2. Under {MS-DOS}, nearly synonymous with "{system call}" because the {OS} and {BIOS} routines are both called using the INT instruction (see {interrupt list}) and because programmers so often have to bypass the operating system (going directly to a BIOS interrupt) to get reasonable performance.
[{Jargon File}]
(1995-02-07)

interrupt handler
[software] A routine which is executed when an {interrupt} occurs. Interrupt handlers typically deal with low-level events in the hardware of a computer system such as a character arriving at a {serial port} or a tick of a {real-time clock}. Special care is required when writing an interrupt handler to ensure that either the interrupt which triggered the handler's execution is masked out (inhibitted) until the handler exits, or the handler is {re-entrant} so that multiple concurrent invocations will not interfere with each other.
If interrupts are masked then the handler must execute as quickly as possible so that important events are not missed. This is often arranged by splitting the processing associated with the event into "upper" and "lower" halves. The lower part is the interrupt handler which masks out further interrupts as required, checks that the appropriate event has occurred (this may be necessary if several events share the same interrupt), services the interrupt, e.g. by reading a character from a {UART} and writing it to a {queue}, and re-enabling interrupts.
The upper half executes as part of a user process. It waits until the interrupt handler has run. Normally the {operating system} is responsible for reactivating a process which is waiting for some low-level event. It detects this by a shared {flag} or by inspecting a shared queue or by some other synchronisation mechanism. It is important that the upper and lower halves do not interfere if an interrupt occurs during the execution of upper half code. This is usually ensured by disabling interrupts during {critical sections} of code such as removing a character from a queue.
(2002-07-24)

interrupt list
[{MS-DOS}] The list of all known {software interrupt} calls (both documented and undocumented) for {IBM 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
Intersil 6100
[programming] (IMS 6100) A single chip design of the {DEC} {PDP-8} {minicomputer}. The old PDP-8 design was very strange, and if it hadn't been popular, an awkward {CPU} like the 6100 would never been designed.
The 6100 was a 12-bit processor, which had three {registers}: the {PC}, AC (accumulator), and MQ. All 2-operand instructions read AC and MQ and wrote back to AC. It had a 12-bit {address bus}, limiting {RAM} to only 4K. Memory references were 7-bit, offset either from address 0, or from the PC page base address (PC AND 7600 oct).
It had no {stack}. Subroutines stored the {PC} in the first word of the subroutine code itself, so {recursion} required fancy programming.
4K RAM was pretty much hopeless for general purpose use. The 6102 support chip (included in the 6120) added 3 address lines, expanding memory to 32K the same way that the PDP-8/E expanded the PDP-8. Two registers, IFR and DFR, held the page for instructions and data respectively (IFR was always used until a data address was detected). At the top of the 4K page, the PC wrapped back to 0, so the last instruction on a page had to load a new value into the IFR if execution was to continue.
(2003-04-04)

intersil 6120
Intersil 6120
[processor] (IMS 6120) An improved version of the {Intersil 6100}. The 6120 was used in the {DECmate}.
[Details?]
(1994-11-23)

interstitial
[World-Wide Web] A {World-Wide Web} page that appears before the expected content page. Interstitials can be used for advertising (intermercial, transition ad) or to confirm that the user is old enough to view the requested page, etc..
(2003-07-11)

interupt
[spelling] It's spelled "{interrupt}".
(1996-12-13)

interviews
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
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
Intrusion Countermeasure Electronics
[security, jargon] (ICE) A contrived acronym for security software, coined by {Usenet}ter Tom Maddox and popularised by {William Gibson}'s {cyberpunk} SF novels. In Gibson's novels ICE software responds to intrusion by attempting to literally kill the intruder.
The term is not in serious use as of 2000 apart from the commercial software product, {BlackICE} and a growing number of others.
See also: {icebreaker}.
[{Jargon File}]
(2000-03-18)

intrusive testing
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
Intuition
[operating system] The {Amiga} {windowing system} (a shared-code library).
(1997-08-01)

intuitionism
{intuitionistic logic}

intuitionist logic
[spelling] Incorrect term for "{intuitionistic logic}".
(1999-11-24)

intuitionistic logic
[logic, mathematics] Brouwer's foundational theory of mathematics which says that you should not count a proof of (There exists x such that P(x)) valid unless the proof actually gives a method of constructing such an x. Similarly, a proof of (A or B) is valid only if it actually exhibits either a proof of A or a proof of B.
In intuitionism, you cannot in general assert the statement (A or not-A) (the principle of the {excluded middle}); (A or not-A) is not proven unless you have a proof of A or a proof of not-A. If A happens to be {undecidable} in your system (some things certainly will be), then there will be no proof of (A or not-A).
This is pretty annoying; some kinds of perfectly healthy-looking examples of {proof by contradiction} just stop working. Of course, excluded middle is a theorem of {classical logic} (i.e. non-intuitionistic logic).
{History
(http://britanica.com/bcom/eb/article/3/0,5716,118173+14+109826,00.html)}.
(2001-03-18)

intuitionistic probability
[logic] Florentin Smarandache's representation of the probability of an event occuring, given by T, I, F which are real subsets representing the truth, indeterminacy, and falsity percentages respectively, and
n_sup = sup(T) + sup(I) + sup(F) [ 100
Related to {intuitionistic logic}.
[Florentin Smarandache, "A Unifying Field in Logics. / {Neutrosophy}: Neutrosophic Probability, Set, and Logic", American Research Press, Rehoboth 1999].
(2001-03-18)

invariant
[programming] A rule, such as the {ordering} of an ordered list or {heap}, that applies throughout the life of a data structure or procedure. Each change to the data structure must maintain the correctness of the invariant.
(1996-03-12)

inverse
[mathematics] Given a {function}, f : D -] C, a function g : C -] D is called a left inverse for f if for all d in D, g (f d) = d and a right inverse if, for all c in C, f (g c) = c and an inverse if both conditions hold. Only an {injection} has a left inverse, only a {surjection} has a right inverse and only a {bijection} has inverses. The inverse of f is often written as f with a -1 superscript.
(1996-03-12)

inverse address resolution protocol
Inverse Address Resolution Protocol
[networking, protocol] (InARP) Additions to {ARP} typically used for {Frame Relay}. [Any other examples of its use?]
{Frame Relay} stations {route} {frames} of a higher level protocol between {LANs}, across a {Permanent Virtual Circuit}. These stations are identified by their {Data Link Control Identifier} (DLCI), equivalent to an {Ethernet address} in a {LAN} itself.
InARP allows a station to determine a protocol address (e.g. {IP address}) from a DLCI. This is useful if a new {virtual circuit} becomes available. Signalling messages announce its DLCI, but without the corresponding protocol address it is unusable: no {frames} can be {routed} to it.
{Reverse ARP} (RARP) performs a similar task on an {Ethernet} {LAN}, however RARP answers the question "What is my IP Address?" whereas InARP answers the question "What is your protocol address?".
See {RFC 2390}.
(2000-01-15)

inverse comment convention
[programming] A kind of {literate programming} where the program code is marked to distinguish it from the text, rather than the other way around as in normal programs.
(2003-09-24)

inverted index
[database, information science] A sequence of ({key}, pointer) pairs where each pointer points to a {record} in a {database} which contains the key value in some particular field. The index is sorted on the key values to allow rapid searching for a particular key value, using e.g. {binary search}. The index is "inverted" in the sense that the key value is used to find the record rather than the other way round. For databases in which the records may be searched based on more than one field, multiple indices may be created that are sorted on those keys.
An index may contain gaps to allow for new entries to be added in the correct sort order without always requiring the following entries to be shifted out of the way.
(1995-02-08)

inworld vr
InWorld VR
[company, virtual reality] Manufacturers of the {CyberWand}.
(1995-04-04)

io
IO
[humor, abuse] Idiotic operator.
(2003-05-15)

io
[networking] The {country code} for British Indian Ocean territory.
(1999-01-27)

io
I/O
{Input/Output}

io redirection
I/O redirection
{input/output redirection}

ioi
IOI
{International Olympiad in Informatics}

iomega corporation
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)

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

ios
IOS
{Internetworking Operating System}

iota
Iota
[language, specification] A specification language.
["The Iota Programming System", R. Nakajima er al, Springer 1983].
(1994-12-08)

iote
IOT&E
{Initial Operational Test and Evaluation}

iow
IOW
[chat] in other words.
(1997-05-26)

ip
IP
{Internet Protocol}

ip address
IP address
{Internet address}

ip next generation
IP next generation
{Internet Protocol Version 6}

ip number
IP number
{Internet address}

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)

ipa
IPA
{International Phonetic Alphabet}

ipars
IPARS
{International Programmable Airline Reservation System}

ipay
I-Pay
[protocol] A Dutch only payment system for the {Internet}.
[Reference?]
(1998-04-28)

ipc
IPC
{Inter-Process Communication}

ipcp
IPCP
{Internet Protocol Control Protocol}

ipe
IPE
{Integrated Programming Environment}

ipl
IPL
1. {Information Processing Language}.
2. {Internet Public Library}.
3. {Initial Program Load}.
4. {Initial Program Loader}.
(1997-08-31)

ipng
IPng
{Internet Protocol Version 6}

ips
IPS
A {thread}ed language.
["IPS, An Unorthodox High Level Language", K. Meinzer, BYTE pp. 146-159 (Jan 1979)].
(1994-11-04)

ipse
IPSE
{Integrated Project Support Environment}

ipsec
IPsec
[networking, protocol, security] ("{IP} Secure"?) A {protocol} that provides {security} for transmission of sensitive information over unprotected {networks} such as the {Internet}. IPsec acts at the {network layer}, protecting and authenticating {IP} {packets} between participating devices ("peers"), such as {Cisco} {routers}.
{IETF IPsec (http://www.ietf.org/ids.by.wg/ipsec.html)}.
(2002-05-06)

ipt
IPT
{IP Telephony}

ipv4
IPv4
{Internet Protocol version 4}

ipv6
IPv6
{Internet Protocol version 6}

ipx
IPX
{Internetwork Packet eXchange}

ipxcp
IPXCP
[networking] {Internetwork Packet eXchange} {Control Protocol}.
(1995-09-27)

iq
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
IQL
An object-oriented deductive language/database system.

ir
IR
1. [networking] {Internet Registry}.
2. [electronics] {infrared}.
(1997-01-30)

ir
[networking] The {country code} for Iran.
(1999-01-27)

irbus
IrBUS
{IrDA Control}

irc
IRC
{Internet Relay Chat}

irc penis war
IRC penis war
{penis war}

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)

irda
IrDA
{Infrared Data Association}

irda control
IrDA Control
[standard] (IrDA-C, formerly IrBUS) {Infrared} standard from {IrDA}. IrDA Control is a low speed communication standard that allows cordless peripherals such as keyboards, mice, {game pads}, and {joysticks} to interact with intelligent host devices. Host devices include {PC}s, home appliances, game machines, and television and web {set-top boxes}.
IrDA Control supports data rates of 75 Kbps at up to 8 metres, and is designed to integrate with devices that use {USB} {HID}. Parts and products featuring IrDA Control are expected in 1998.
See also {IrDA Data}, {AIR}.
(1999-10-14)

irda data
IrDA Data
[standard] (IrDA-D) {Infrared} standards from {IrDA}. IrDA Data is designed for data transfer over a distance of up to 1 metre, acting as a point-to-point cable replacement. Several IrDA Data standards exist, supporting data rates from 9600 bps - 50 Mbps, namely {SIR}, {FIR}, and {VFIR}.
See also {IrDA Control}, {AIR}.
(1999-10-14)

irdac
IrDA-C
{IrDA Control}

irdata
IRDATA
[robotics] Industrial Robot DATA. A standardised robot control code. "IRDATA, Industrial Robot Data", DIN 66313, Beuth-Verlag 1991.

irdp
IRDP
{ICMP Router Discovery Protocol}

irds
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
IRET
{Return from interrupt}

iris
IRIS
[body] Institute for Research in Information and Scholarship of Brown University (Providence RI).
(1994-11-04)

iris
Iris
An {object-oriented} {DBMS}.
(1994-11-04)

irisa
IRISA
{INRIA}

irix
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
IRL
1. [jargon, chat] In real life. Generally synonymous with {f2f}.
2. [language, robotics] {Industrial Robot Language}.
(1997-01-31)

irm
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}.
[{Jargon File}]
(1994-11-04)

iron age
Iron Age
[history] In the history of computing, 1961-1971 - the formative era of commercial {mainframe} technology, when {ferrite core memory} {dinosaurs} ruled the earth. The Iron Age began, ironically enough, with the delivery of the first {minicomputer} (the {PDP-1}) and ended with the introduction of the first commercial {microprocessor} (the {Intel 4004}) in 1971.
See also {Stone Age}; compare {elder days}.
[{Jargon File}]
(2003-09-27)

iron box
[Unix/Internet] A special environment set up to trap a {cracker} logging in over remote connections long enough to be traced. May include a modified {shell} restricting the cracker's movements in unobvious ways, and "bait" files designed to keep him interested and logged on. See also {back door}, {firewall machine}, {Venus flytrap}, and Clifford Stoll's account in "{The Cuckoo's Egg}" of how he made and used one. Compare {padded cell}.
[{Jargon File}]

ironman
Ironman
HOLWG, DoD, Jan 1977, revised Jul 1977. Fourth of the series of DoD requirements that led to Ada. "Department of Defense Requirements for High Order Computer Programming Languages", SIGPLAN Notices 12(12):39-54 (Dec 1977). "Revised Ironman Requirements for High Order Computer Programming Languages", US Dept of Defense, Jul 1977. (See Strawman, Woodenman, Tinman, Steelman).

ironmonger
[IBM] A hardware specialist (derogatory). Compare {sandbender}, {polygon pusher}.
[{Jargon File}]

irq
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
IRSG
{Internet Research Steering Group}

irtf
IRTF
{Internet Research Task Force}

irus
IRUS
{Irvine Research Unit in Software}

irvine dataflow
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
Irvine Research Unit in Software
[body] (IRUS) The {University of California, Irvine}.
[Details?]
(1995-04-18)

is
IS
1. [standard] {International Standard}.
2. {Intermediate System}.

is
[networking] The {country code} for Iceland.
(1999-01-27)

is11172
IS-11172
[standard] The {International Standard} for {MPEG-1} {compression}.
(1999-01-06)

is13818
IS-13818
[standard] The {International Standard} for {MPEG-2} {compression}.
(1999-01-06)

isa
ISA
1. [architecture] {Integrated Systems Architecture}.
2. [body] {International Smalltalk Association}.
3. [architecture] {instruction set architecture}.
4. [architecture] {Industry Standard Architecture}.
(1997-02-13)

isa bus
ISA bus
{Industry Standard Architecture}

isabelle
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 Frankel set theory}; an {extensional} version of {Martin Lof}'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)

isabelle92
Isabelle-92
{Isabelle}

isabelle93
Isabelle-93
{Isabelle}

isakmp
ISAKMP
{Internet Security Association and Key Management Protocol}

isam
ISAM
{Indexed Sequential Access Method}

isapi
ISAPI
{Internet Server Application Programming Interface}

isapi filter
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
ISBL
[language] A mathematical {query language}.
[Stands for? Details?]
(1997-01-06)

isde
ISDE
Integrated Software Development Environment: equivalent to an IPSE.

isdn
ISDN
{Integrated Services Digital Network}

ise
ISE
{Interactive Software Engineering}

isee
ISEE
Integrated {Software Engineering Environment} - equivalent to {SEE}.

isetl
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
ISF
{Information Systems Factory}

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

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

isis
IS-IS
{Intermediate System-Intermediate System}

isl
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
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
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
ISO
{International Organization for Standardization}

iso 10646
ISO 10646
{Universal Character Set}

iso 8072
ISO 8072
{transport layer}

iso 8073
ISO 8073
{transport layer}

iso 8208
ISO 8208
{X.25}

iso 8326
ISO 8326
{session layer}

iso 8327
ISO 8327
{session layer}

iso 8613
ISO 8613
{Open Document Architecture}

iso 8649
ISO 8649
{Association Control Service Element}

iso 8650
ISO 8650
{Association Control Service Element}

iso 8805
ISO 8805
{GKS-3D}

iso 8807
ISO 8807
{LOTOS}

iso 8822
ISO 8822
{presentation layer}

iso 8823
ISO 8823
{presentation layer}

iso 8825
ISO 8825
{Basic Encoding Rules}

iso 8859
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}.
{Roman Czyborra's page (http://czyborra.com/charsets/iso8859.html)}.
{ISO catalogue
(http://www.iso.ch/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=28245)}.
(2001-12-28)

iso 88591
ISO 8859-1
{ISO 8859}

iso 8879
ISO 8879
[standard, character] The {ISO} standard defining {SGML}.
(1995-05-03)

iso 9000
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
ISO 9072
{Remote Operations Service Element}

iso 9660
ISO 9660
[standard] The {ISO} {standard} defining a {file system} for {CD-ROMs}.
[Details? Reference?]
(1995-03-28)

iso 9735
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)

iso c
ISO C
{ANSI C}

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 latin 1
ISO Latin 1
{ISO 8859}

iso pascal
ISO Pascal
A {Lex} {scanner} and {Yacc} {parser} are in the comp.sources.unix volume 13 archive.
[More detail?]

iso seven layer model
ISO seven layer model
{Open Systems Interconnect}

isoc
ISOC
{Internet Society}

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
ISODE
{ISO Development Environment}

isoiec 106461
ISO/IEC 10646-1
{Universal Character Set}

isolated
{compact}

isometric joystick
[hardware] Any kind of {joystick} where the input depends on the force exerted rather than the position of the control, e.g. {TrackPoint}.
(2003-06-26)

isometry
[mathematics] A {mapping} of a {metric space} onto another or onto itself so that the distance between any two points in the original space is the same as the distance between their images in the second space. For example, any combination of rotation and translation is an isometry of the plane.
(1997-12-13)

isomorphic
[mathematics] Two mathematical objects are isomorphic if they have the same structure, i.e. if there is an {isomorphism} between them. For every component of one there is a corresponding component of the other.
(1995-03-25)

isomorphism
[mathematics] A {bijective} {map} between two objects which preserves, in both directions, any structure under consideration. Thus a `group isomorphism' preserves group structure; an order isomorphism (between {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)

isp
ISP
1. {Internet Service Provider}.
2. {Instruction Set Processor}.

ispbx
ISPBX
{Integrated Services Digital Network} {PBX}.

ispf
ISPF
{Interactive System Productivity Facility}

ispl
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
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
IST
[company] {Imperial Software Technology}.
(1995-10-12)

istar
ISTAR
[programming, tool] An experimental {IPSE} from {Imperial Software Technology}.
(1995-10-12)

istm
ISTM
[chat] It seems to me.
(2000-07-06)

isv
ISV
Independent Software Vendor (not a hardware manufacturer).

iswim
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
IT
1. [business, jargon] {Information Technology}.
2. [language, mathematics, history] {Internal Translator}.
(2000-10-02)

it
[networking] The {country code} for Italy.
(1999-01-27)

itar
ITAR
{International Traffic in Arms Regulation}

iterated function system
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)

iterator
[programming] An {object} or {routine} for accessing items from a {list}, {array} or {stream} one at a time.
By extension, the term can be used for an object or routine for accesing items from any data structure that can be viewed as a list. For example, a {traverser} is an {iterator} for {tree}-shaped data structures.
(2001-10-04)

iternet
Iternet
[spelling] It's spelled "{Internet}".
(1997-04-07)

ithaca
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
ITIL
{Information Technology Infrastructure Library}

itp
ITP
{Intent to Package}

its
ITS
1. Incompatible {time-sharing} System
An influential but highly idiosyncratic {operating system} written for the {PDP-6} and {PDP-10} at {MIT} and long used at the {MIT AI Lab}. Much AI-hacker jargon derives from ITS folklore, and to have been "an ITS hacker" qualifies one instantly as an old-timer of the most venerable sort. ITS pioneered many important innovations, including transparent file sharing between machines and terminal-independent I/O. After about 1982, most actual work was shifted to newer machines, with the remaining ITS boxes run essentially as a hobby and service to the hacker community. The shutdown of the lab's last ITS machine in May 1990 marked the end of an era and sent old-time hackers into mourning nationwide (see {high moby}). The Royal Institute of Technology in Sweden is maintaining one "live" ITS site at its computer museum (right next to the only {TOPS-10} system still on the {Internet}), so ITS is still alleged to hold the record for OS in longest continuous use (however, {WAITS} is a credible rival for this palm).
2. A mythical image of {operating system} perfection worshiped by a bizarre, fervent retro-cult of old-time hackers and ex-users (see {troglodyte}). ITS worshipers manage somehow to continue believing that an OS maintained by {assembly language} hand-hacking that supported only monocase 6-character filenames in one directory per account remains superior to today's state of commercial art (their venom against {Unix} is particularly intense).
See also {holy wars}, {Weenix}.
[{Jargon File}]
(1994-12-15)

its a feature
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
ITSP
{Internet Telephony Service Providers}

itu
ITU
{International Telecommunications Union}

itu x209
ITU X.209
{Basic Encoding Rules}

itut
ITU-T
{International Telecommunications Union}

itut x680
ITU-T X.680
{Coordinated Universal Time}

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

iversons language
Iverson's Language
{APL}, which went unnamed for many years.
[Sammet 1969, p.770].
(1994-11-16)

ivr
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
IVTRAN
Parallel {Fortran} for the {Illiac IV}. 1966.

ivv
IV&V
{Independent Verification and Validation}

ivy
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
IWay
{Information Superhighway}

iwbni
IWBNI
It Would Be Nice If.
Compare {WIBNI}.
[{Jargon File}]
(1994-11-24)

ixc
IXC
{IntereXchange Carrier}

ixi limited
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
IXO
{Telocator Alphanumeric Protocol}

iyfeg
IYFEG
({Usenet}) Insert Your Favourite Ethnic Group.
Used as a meta-name when telling ethnic jokes on the net to avoid offending anyone.
See also {JEDR}.
[{Jargon File}]
(1994-11-24)

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

j presper eckert
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
J. Random
[jargon] /J rand'm/ (Generalised from {J. Random Hacker}) Arbitrary; ordinary; any one; any old. "J. Random" is often prefixed to a noun to make a name out of it. It means roughly "some particular" or "any specific one". "Would you let J. Random Loser marry your daughter?" The most common uses are "J. Random Hacker", "J. Random Loser", and "J. Random Nerd" ("Should J. Random Loser be allowed to {gun} down other people?"), but it can be used simply as an elaborate version of {random} in any sense.
[{Jargon File}]

j random hacker
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)

j2ee
J2EE
{Java 2 Platform, Enterprise Edition}

j2me
J2ME
{Java 2 Platform, Micro Edition}

j2se
J2SE
{Java 2 Platform, Standard Edition}

j3
J3
A dialect of {JOVIAL}.
["Military Standard JOVIAL (J3)", MIL-STD-1588 (USAF), June 1976].
(1994-12-07)

j73
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
JACAL
{JAffer's Canonical ALgebra}

jaccl
[tool] An {LR1 grammar} {parser generator} written by Dave Jones at Megatest.
(1989-09-08)

jack in
To log on to a machine or connect to a network or {BBS}, especially for purposes of entering a {virtual reality} simulation such as a {MUD} or {IRC} (leaving is "jacking out"). This term derives from {cyberpunk} SF, in which it was used for the act of plugging an electrode set into neural sockets in order to interface the brain directly to a virtual reality. It is primarily used by MUD and IRC fans and younger hackers on BBS systems.
[{Jargon File}]

jack kilby
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
Jackson method
A proprietary structured method for software analysis, design and programming.

jacquard josephmarie
Jacquard, Joseph-Marie
{Joseph-Marie Jacquard}

jacquard loom
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
JAD
{Joint Application Design}
Or "Joint Application Development".
[What is it?]
(1995-11-15)

jade
JADE
{James' DSSSL Engine}

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

jaffers canonical algebra
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.
[{Jargon File}]
(1997-12-01)

jam
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
James Clark
{Dr. James H. Clark}

james dsssl engine
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
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
James H. Clark
{Dr. James H. Clark}

janet
JANET
{Joint Academic NETwork}

janet ip service
JANET IP Service
[networking] (JIPS) {Joint Academic NETwork} {Internet Protocol}.
E-mail: [jips-nosc@nic.ja.net].
[Details?]
(1994-12-12)

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

jar
{Java archive}

jargon file
Jargon File
[jargon, publication, humour] The on-line hacker Jargon File maintained by {Eric S. Raymond}. A large collection of definitions of computing terms, including much wit, wisdom, and history.
Many definitions in {this dictionary} are from v3.0.0 of 1993-07-27.
Current version: 4.4.2 (2003-05-22), as of 2003-06-09.
{Jargon File Home (http://catb.org/~esr/jargon/)}.
See also {Yellow Book, Jargon}.
(2003-06-09)

java
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 {run-time 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 run-time 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)

java 2
Java 2
{Java 2 Platform, Standard Edition}

java 2 platform
Java 2 Platform
{Java 2 Platform, Standard Edition}

java 2 platform enterprise edition
Java 2 Platform, Enterprise Edition
[language, programming] (J2EE) {Sun}'s {Java} platform for {multi-tier} {server}-oriented {enterprise} {applications}.
The basis of J2EE is {Enterprise JavaBeans} (EJB).
See also the Standard edition {J2SE} and the Micro edition {J2ME}.
{Home (http://java.sun.com/j2ee/)}.
(2000-04-20)

java 2 platform micro edition
Java 2 Platform, Micro Edition
[language, programming] (J2ME) {Sun}'s {Java} platform for consumer devices.
J2ME defines Configurations and Profiles for different classes of small memory device, from {smart cards} to {pagers} to {set-top boxes}. It can run on various {Java virtual machines} including {KVM}.
Related products include {PersonalJava} and {EmbeddedJava}.
See also the Standard edition {J2SE} and the Enterprise edition {J2EE}.
(Home (http://www.javasoft.com/j2me/)}.
(2000-04-20)

java 2 platform standard edition
Java 2 Platform, Standard Edition
[language, programming] (J2SE) {Sun}'s {Java} programming platform aimed at network-oriented enterprise applications. J2SE comprises the {Java 2 Software Development Kit} (SDK) and the {Java 2 Run-Time Environment}.
See also the Micro edition {J2ME} and the Enterprise edition {J2EE}.
{Java 2 Platform (http://www.javasoft.com/j2se/)}.
(2000-04-20)

java 2 sdk
Java 2 SDK
{Java 2 Software Development Kit}

java 2 software development kit
Java 2 Software Development Kit
[language, programming] (Java 2 SDK) {Sun}'s tools to develop {Java} applications, part of the {Java 2 Platform}.
Current version: Java 2 SDK version 1.2.2, as of April 2000.
Versions prior to 1.2 were known as the {Java Development Kit} (JDK).
{Home (http://www.javasoft.com/j2se/)}.
(2000-04-20)

java archive
Java archive
[file format, filename extension] (jar) A compressed {archive} file containing {Java} {class} files, filename extension: ".jar". The {Java Development Kit} contains a tool called "jar" for creating .jar files, similar to the standard {Unix} {tar} command. As well as archiving and compressing the Java class files, it also inserts a "manifest" file which can contain information about the class files, such as a {digital signature}. Combining class files into a single archive file makes it possible to download them in a single {HTTP} transaction. This, and the {compression}, speeds up execution of Java programs delivered via the {Internet}.
(2001}-02-03)

java database connectivity
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
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 message service
Java Message Service
[programming, messaging] (JMS) An {API} for accessing enterprise messaging systems from {Java} programs. Java Message Service, part of the {J2EE} suite, provides standard APIs that Java developers can use to access the common features of enterprise message systems. JMS supports the {publish/subscribe} and {point-to-point} models and allows the creation of message types consisting of arbitrary Java objects. JMS provides support for administration, security, error handling, and recovery, optimisation, distributed transactions, message ordering, message acknowledgment, and more.
{Home (http://java.sun.com/products/jms)}.
{Overview
(http://developer.java.sun.com/developer/technicalArticles/Networking/messaging/)}.
(2001-06-22)

java native interface
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
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 remote method protocol
Java Remote Method Protocol
[protocol] (JRMP) A proprietary {wire-level protocol} designed by {Sun Microsystems} to transport {Java} {RMI}.
JRMP serves the same function as {IIOP}, but also supports object passing. {Sun} plans to offer {IIOP} as an alternative to JRMP.
Sun do not appear to use this term any longer, simply referring to the "RMI transport protocol".

{(http://java.sun.com/j2se/1.3.0/docs/guide/rmi/spec/rmi-protocol3.html)}.
{Comparison (http://www.execpc.com/~gopalan/misc/compare.html)}.
(2001-07-21)

java runtime environment
Java Run-Time Environment
[language] (JRE) The part of the {Java Development Kit} required to run Java programs. The JRE consists of the {Java Virtual Machine}, the {Java} platform core {classes} and supporting files. It does not include the compiler, debugger or other tools present in the JDK. The JRE is the smallest set of executables and files that constitute the standard Java platform.
(1998-11-30)

java servelet
Java servelet
{Java servlet}

java servlet
Java servlet
[World-Wide Web] (By analogy with "{applet}") A {Java} program that runs as part of a {network} service, typically an {HTTP server} and responds to requests from {clients}.
The most common use for a servlet is to extend a {web server} by generating {web content} dynamically. For example, a {client} may need {information} from a {database}; a servlet can be written that receives the request, gets and processes the data as needed by the {client} and then returns the result to the {client}.
{Applets} are also written in {Java} but run inside the {JVM} of a {HTML} {browser} on the {client}. Servlets and applets allow the server and client to be extended in a modular way by dynamically loading code which communicates with the main program via a standard programming interface.
Servlets are more flexible than {CGI scripts} and, being written in {Java}, more portable.
The spelling "servelet" is occasionally seen but {JavaSoft} spell it "servlet". There is no such thing as a "serverlet".
{(http://java.sun.com/products/servlet/)}.
(2002-10-06)

java servlet development kit
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
Java Virtual Machine
[language, architecture] (JVM) A specification for software which interprets {Java} programs that have been compiled into {byte-codes}, and usually stored in a ".class" file. The JVM {instruction set} is {stack}-oriented, with variable instruction length. Unlike some other instruction sets, the JVM's supports {object-oriented} programming directly by including instructions for object {method} invocation (similar to {subroutine} call in other instruction sets).
The JVM itself is written in {C} and so can be {ported} to run on most {platforms}. It needs {thread} support and {I/O} (for {dynamic class loading}). The Java byte-code is independent of the platform.
There are also some hardware implementations of the JVM.
{Specification (http://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?]
(2000-01-03)

java vm
Java VM
{Java Virtual Machine}

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

javascript
JavaScript
[language] (Formerly "LiveScript") {Netscape}'s simple, cross-{platform}, {World-Wide Web} {scripting language}, only very vaguely related to {Java} (which is a {Sun} trademark). JavaScript is intimately tied to the {World-Wide Web}, and currently runs in only three environments - as a {server}-side {scripting} language, as an embedded language in {server-parsed HTML}, and as an embedded language run in web {browsers} where it is the most important part of {DHTML}.
JavaScript has a simplified {C}-like {syntax} and is tightly integrated with the browser {Document Object Model}. It is useful for implementing enhanced {forms}, simple web {database} {front-ends}, and navigation enhancements.
JavaScript originated from {Netscape} and, for a time, only their products supported it. {Microsoft} now supports a work-alike called JScript. The resulting inconsistencies make it difficult to write JavaScript that behaves the same in all browsers. This could be attributed to the slow progress of JavaScript through the standards bodies.
JavaScript runs "100x" slower than {C}, as it is purely interpreted ({Java} runs "10x" slower than C code). {Netscape} and allies say JavaScript is an "open standard" in an effort to keep {Microsoft} from monopolising web software as they have desktop software. {Netscape} and {Sun} have co-operated to enable {Java} and JavaScript to exchange messages and data.
See also {VBScript}.
{Usenet} newsgroup: {news:comp.lang.javascript}.
Mailing List: [majordomo@obscure.org] ("subscribe javascript" in body).
(2003-04-28)

javaserver pages
JavaServer Pages
[programming, World-Wide Web] (JSP) A freely available specification for extending the {Java Servlet} {API} to generate dynamic {web pages} on a {web server}. The JSP specification was written by industry leaders as part of the Java development program.
JSP assists developers in creating {HTML} or {XML} pages that combine static (fixed) page templates with dynamic content. Separating the {user interface} from content generation allows page designers to change the page layout without having to rewrite program code. JSP was designed to be simpler than pure servlets or {CGI} {scripting}.
JSP uses XML-like tags and scripts written in Java to generate the page content. HTML or XML formatting {tags} are passed back to the client. Application logic can live on the server, e.g. in {JavaBeans}.
JSP is a {cross-platform} alternative to {Microsoft's} {Active Server Pages}, which only runs in {IIS} on {Windows NT}.
Applications written to the JSP specification can be run on compliant web servers, and web servers such as {Apache}, {Netscape Enterprise Server}, and Microsoft {IIS} that have had Java support added. JSP should soon be available on {Unix}, {AS/400}, and {mainframe} platforms.
{JavaServer Pages (http://java.sun.com/products/jsp/)}.
{Infoworld Article (http://www.infoworld.com/cgi-bin/displayStory.pl?99063.ecjsp.htm)}.
(1999-11-28)

jaz
JAZ
[language] An early system on the {LGP-30}.
[CACM 2(5):16, May 1959].
(1997-05-16)

jaz
Jaz
{Jaz Drive}

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
JAZELLE
[database] A data management system for High Energy Physics from Stanford Linear Accelerator.
(1995-02-22)

jbig
JBIG
{Joint Bi-level Image Experts Group}

jbod
JBOD
{Just a Bunch Of Disks}

jbops
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
JCL
{Job Control Language}

jcs13
JCS-13
[language] An early system on the {IBM 701}.
[Listed in CACM 2(5):16, May 1959].
(1997-06-16)

jdbc
JDBC
{Java Database Connectivity}

jdk
JDK
{Java Development Kit}

jean
JEAN
[language] A dialect of {JOSS}.
[Details?]
(1997-09-14)

jean e sammet
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
JEDR
[person, abuse, humour] Synonymous with {IYFEG}. At one time, people in the {Usenet} {newsgroup} {news:rec.humor.funny} tended to use "JEDR" instead of {IYFEG} or "[ethnic]"; this stemmed from a public attempt to suppress the group once made by a loser with initials JEDR after he was offended by an ethnic joke posted there. (The practice was {retcon}ned by expanding these initials as "Joke Ethnic/Denomination/Race".) After much sound and fury JEDR faded away; this term appears to be doing likewise. JEDR's only permanent effect on the net.culture was to discredit "sensitivity" arguments for censorship so thoroughly that more recent attempts to raise them have met with immediate and near-universal rejection.
[{Jargon File}]
(1994-11-22)

jef raskin
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
Jerry Sussman
{Gerald Sussman}

jes
JES
{job entry system}

jes2
JES2
[operating system] One of {IBM}'s {job entry system}s for {MVS}.
(1995-08-16)

jes3
JES3
[operating system] One of {IBM}'s {job entry system}s for {MVS}.
(1995-08-16)

jfcl
JFCL
/jif'kl/, /jaf'kl/, /j*-fi'kl/ (obsolete) To cancel or annul something. "Why don't you jfcl that out?" The fastest do-nothing instruction on older models of the {PDP-10} happened to be JFCL, which stands for "Jump if Flag set and then CLear the flag"; this does something useful, but is a very fast no-operation if no flag is specified. Geoff Goodfellow, one of the jargon-1 co-authors, had JFCL on the licence plate of his BMW for years. Usage: rare except among old-time PDP-10 hackers.
[{Jargon File}]
(1994-11-22)

jfet
JFET
{Junction Field Effect Transistor}

jfif
JFIF
{JPEG File Interchange Format}

jiffy
1. The duration of one {tick} of the computer's {system clock}. Often one AC cycle time (1/60 second in the US and Canada, 1/50 most other places), but more recently 1/100 sec has become common.
2. Confusingly, the term is sometimes also used for a 1-millisecond {wall time} interval. Even more confusingly, physicists semi-jokingly use "jiffy" to mean the time required for light to travel one foot in a vacuum, which turns out to be close to one *nanosecond*.
[{Jargon File}]
(2002-03-02)

jim clark
Jim Clark
{Dr. James H. Clark}

jini
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
JIPS
{JANET IP Service}

jit
JIT
{dynamic translation}

jitter
Random variation in the timing of a signal, especially a clock.
(1995-01-16)

jk flipflop
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
JMHO
[chat] Just My Humble Opinion.
(1999-02-18)

jms
JMS
{Java Message Service}

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

job security
[jargon] When some piece of code is written in a particularly obscure fashion, and no good reason (such as time or space optimisation) can be discovered, it is often said that the programmer was attempting to increase his job security (i.e. by making himself indispensable for maintenance). This sour joke seldom has to be said in full; if two hackers are looking over some code together and one points at a section and says "job security", the other one may just nod.
[{Jargon File}]
(1996-09-17)

jobs
Jobs
{Stephen Jobs}

jock
1. A programmer who is characterised by large and somewhat {brute-force} programs.
2. When modified by another noun, describes a specialist in some particular computing area. The compounds "compiler jock" and "systems jock" seem to be the best-established examples.
[{Jargon File}]
(1995-01-19)

joe
[jargon, security] A computer account whose user name and password are the same. Joes are {considered harmful}, as are any passwords which are easy to guess.
(1995-06-21)

joe code
/joh' kohd"/ 1. Code that is overly {tense} and unmaintainable. "{Perl} may be a handy program, but if you look at the source, it's complete joe code."
2. Badly written, possibly buggy code.
Correspondents wishing to remain anonymous have fingered a particular Joe at the Lawrence Berkeley Laboratory and observed that usage has drifted slightly; the original sobriquet "Joe code" was intended in sense 1.
[{Jargon File}]

john atanasoff
John Atanasoff
{John Vincent Atanasoff}

john gilmore
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 mauchly
John Mauchly
[person] /jon W mok'*-lee/ (rhymes with "broccoli") Dr. John W. Mauchly, one of the developers of {ENIAC}.
(2002-10-06)

john mccarthy
John McCarthy
[person, artificial intelligence] A pioneer of {artificial intelligence} (he coined ther term). He invented {Lisp} at {MIT} in the late 1950s and later worked at {SAIL}.
{(ftp://www-formal.stanford.edu/jmc)}.
E-mail: [jmc@cs.stanford.edu].
(2003-08-06)

john ousterhout
John Ousterhout
[person] /oh'st*r-howt/ John K. Ousterhout, the designer of {Tcl} and {Tk}, and founder of {Scriptics}.
See also: {Ousterhout's dichotomy}.
E-mail: john.ousterhout@scriptics.com.
(1999-02-21)

john tukey
John Tukey
[person] The eminent statistician credited with coining the term "{bit}" in 1949.
{(http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Tukey.html)}.
(2003-02-28)

john vincent atanasoff
John Vincent Atanasoff
[person] John Vincent Atanasoff, 1903-10-04 - 1995-06-15. An American mathemetical physicist, and the inventor of the electronic {digital computer}. Between 1937 and 1942 he built the {Atanasoff-Berry Computer} with {Clifford Berry}, at the {Iowa State University}.
Atanasoff was born on 1903-10-04 in Hamilton, New York. In 1925, he got a Bachelor of Science degree in Electrical Engineering from the University of Florida. In 1926 he received a Master's degree in Maths from Iowa State University. He received a PhD as a theoretical physicist from the University of Wisconsin in 1930.
While an associate professor of mathematics and physics at Iowa State University, Atanasoff began to envision a {digital} computational device, believing {analogue} devices to be too restrictive. Whilst working on his electronic {digital computer}, Atanasoff was introduced to a graduate student named {Clifford Berry}, who helped him build the {computer}.
The first prototype of the {Atanasoff-Berry Computer} was demonstrated in December 1939. Although no patent was awarded for the new {computer}, in 1973 US District Judge Earl R. Larson declared Atanasoff the inventor of the digital computer (declaring the {ENIAC} patent invalid).
Atanasoff was awarded the National Medal of {Technology} by US President Bush on 1990-11-13. He died following a stroke on 1995-06-15.
{John Vincent Atanasoff and the Birth of the Digital Computer (http://www.cs.iastate.edu/jva/jva-archive.shtml)}.
["Atanasoff Forgotten Father of the Computer", C. R. Mollenhoff, Iowa State University Press 1988].
(2001-10-03)

john von neumann
John von Neumann
[person] /jon von noy'mahn/ Born 1903-12-28, died 1957-02-08.
A Hungarian-born mathematician who did pioneering work in quantum physics, game theory, and {computer science}. He contributed to the USA's Manhattan Project that built the first atomic bomc.
While serving on the BRL Scientific Advisory Committee, von Neumann joined the developers of {ENIAC} and made some critical contributions. In 1947, while working on the design for the successor machine, {EDVAC}, von Neumann realized that ENIAC's lack of a centralized control unit could be overcome to obtain a rudimentary stored program computer. He also proposed the {fetch-execute cycle}.
{(http://www.sis.pitt.edu/~mbsclass/is2000/hall_of_fame/vonneuma.htm)}.
{(http://ei.cs.vt.edu/~history/VonNeumann.html)}.
{(http://ftp.arl.mil/~mike/comphist/54nord/)}.
(2001-01-30)

johnniac
Johnniac
[computer] A {mainframe} computer based on a design by {John von Neuman} built at the {Institute for Advanced Study}, USA. The Johnniac went live in 1953 and was decommissioned in 1966. It's memory consisted of 80 special "Selectron}" {vacuum tubes}, each of which held 256 bits of data.
(2003-06-07)

join
1. [database] {inner join} (common) or {outer join} (less common).
2. [theory] {least upper bound}.
(1998-11-23)

joint academic network
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 bilevel image experts group
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
Joint Photographic Experts Group
[image, body, file format, standard] (JPEG) The original name of the committee that designed the standard {image} {compression} {algorithm}. JPEG is designed for compressing either {full-colour} or {grey-scale} {digital} images of "natural", real-world scenes. It does not work so well on non-realistic images, such as cartoons or line drawings. JPEG does not handle compression of black-and-white (1 bit-per-pixel) images or {moving pictures}. Standards for compressing those types of images are being worked on by other committees, named {JBIG} and {MPEG}.
{Home (http://www.jpeg.org/)}.
{Filename extension}: .jpg, .jpeg.
See also {PJPEG}.
(2000-09-11)

joint technical committee
Joint Technical Committee
[standard, body] (JTC) A {standard}s body straddling {ISO} and {IEC}.
(1995-04-21)

joint test action group
Joint Test Action Group
[architecture, body, electronics, integrated circuit, standards, testing] (JTAG, or "IEEE Standard 1149.1") A {standard} specifying how to control and monitor the pins of compliant devices on a {printed circuit board}.
Each device has four JTAG control lines. There is a common reset (TRST) and clock (TCLK). The data line {daisy chains} one device's TDO pin to the TDI pin on the next device.
The {protocol} contains commands to read and set the values of the pins (and, optionally {internal registers}) of devices. This is called "{boundary scanning}". The protocol makes board testing easier as signals that are not visible at the board connector may be read and set.
The protocol also allows the testing of equipment, connected to the JTAG port, to identify components on the board (by reading the device identification register) and to control and monitor the device's outputs.
JTAG is not used during normal operation of a board.
{JTAG Technologies B.V. (http://www.jtag.com/)}.
{Boundary Scan/JTAG Technical Information - Xilinx, Inc. (http://www.xilinx.com/support/techsup/journals/jtag/)}.
{Java API for Boundary Scan FAQs - Xilinx Inc. (http://www.xilinx.com/products/software/sx/sxfaqs.htm)}.
{JTAG Boundary-Scan Test Products - Corelis, Inc. (http://www.corelis.com/products/scanovrv.html)}.
{"Logic analyzers stamping out bugs at the cutting edge", EDN Access, 1997-04-10 (http://www.ednmag.com/ednmag/reg/1997/041097/08df_02.htm)}.
{IEEE 1149.1 Device Architecture - Boundary-Scan Tutorial from ASSET InterTech, Inc. (http://www.asset-intertech.com/tutorial/arch.htm)}.
{"Application-Specific Integrated Circuits", Michael John Sebatian Smith, published Addison-Wesley - Design Automation Cafe
(http://www.dacafe.com/DACafe/EDATools/EDAbooks/ASIC/Book/CH14/CH14.2.htm)}.
{Software Debug options on ASIC cores - Embedded Systems Programming Archive (http://embedded.com/97/feat9701.htm)}.
{Designing for On-Board Programming Using the IEEE 1149.1 (JTAG) Access Port - Intel (http://developer.intel.com/design/flcomp/applnots/292186.htm)}.
{Built-In Self-Test Using Boundary Scan by Texas Instruments - EDTN Network (http://www.edtn.com/scribe/reference/appnotes/md003e9a.htm)}.
(1999-11-15)

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}.
[{Jargon File}]

jolt
JOLT
{Java Open Language Toolkit}

jon postel
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
JOOP
{Journal of Object-Oriented Programming}

josephmarie jacquard
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
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
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
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)

joy
Joy
[language] A {functional programming} language by Manfred von Thun. Joy is unusual because it is not based on {lambda calculus}, but on the {composition} of {functions}. Functions take a stack as argument, consume any number of parameters from it, and return it with any number of results on it. The concatenation of programs denotes the composition of functions. One of the datatypes of Joy is that of quoted programs, of which lists are a special case.
{Joy Home (http://www.latrobe.edu.au/philosophy/phimvt/joy.html)}.
(2003-06-13)

joy william
Joy, William
{William Joy}

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

jp
[networking] The {country code} for Japan.
(1999-01-27)

jpeg
JPEG
{Joint Photographic Experts Group}

jpeg file interchange format
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)

jpeg2000
JPEG-2000
[image, file format] A potential successor to {JPEG} with better compression and {multiresolution} {images}. JPEG-2000 gives reasonable quality down to 0.1 bits/pixel (JPEG quality drops dramatically below about 0.4 bits/pixel).
(2001-12-02)

jpg
{JPEG}

jpl
JPL
JAM Programming Language. Imperative string-based language, part of the JAM tool for developing screen (non-window) applications. JYACC Corporation

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

jre
JRE
{Java Run-Time Environment}

jrl
JRL
{J. Random} Loser. The names JRL and JRN were sometimes used as example names when discussing a kind of user ID used under {TOPS-10} and {WAITS}. They were understood to be the initials of (fictitious) programmers named "J. Random Loser" and "J. Random Nerd". For example, if one said "To log in, type log one comma jay are en" (that is, "log 1,JRN"), the listener would have understood that he should use his own computer ID in place of "JRN".

jrmp
JRMP
{Java Remote Method Protocol}

jrn
JRN
{J. Random} Nerd. See {JRL}.

jrst
JRST
/jerst/ [based on the {PDP-10} jump instruction, obsolete] To suddenly change subjects, with no intention of returning to the previous topic. Usage: rather rare except among PDP-10 diehards, and considered silly. See also {AOS}.
[{Jargon File}]

js
JS
Dialect of {JOVIAL}. [Sammet 1969, p.639].

jsa
JSA
Japanese Standards Association.

jsdk
JSDK
{Java Servlet Development Kit}

jsp
JSP
{JavaServer Pages}

jtag
JTAG
{Joint Test Action Group}

jtb
JTB
{jump trace buffer}

jtc
JTC
[standard, body] {Joint Technical Committee}.

jtc1sc24
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
JTS
A simple dialect of {JOVIAL}.
[Sammet 1969, p. 528].
(1995-01-04)

juggling eggs
Keeping a lot of {state} in your head while modifying a program. "Don't bother me now, I'm juggling eggs", means that an interrupt is likely to result in the program's being scrambled. In the classic first-contact SF novel "The Mote in God's Eye", by Larry Niven and Jerry Pournelle, an alien describes a very difficult task by saying "We juggle priceless eggs in variable gravity." See also {hack mode}.
[{Jargon File}]

jughead
Jughead
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)

jump off into nevernever land
jump off into never-never land
[J. M. Barrie's "Peter Pan"] Same as {branch to Fishkill}, but more common in technical cultures associated with non-{IBM} computers that use the term "jump" rather than "branch".
Compare {hyperspace}.
[{Jargon File}]
(1994-12-15)

jump trace buffer
(JTB) A feature of some {pipelined} processors (e.g. {Amulet}, {Pentium}?) which stores the source and destination addresses of the last few branch instuctions executed. When a branch instruction is fetched, its source is looked for in the JTB. If found, the next instuction fetch will be from the previous destination of that branch. If it turns out that the branch shouldn't have been taken this time, then the {pipeline} is flushed. This means that in a {tight loop} it is not necessary to flush the {pipeline} every time you jump back to the start.
(1994-12-15)

jumper
[hardware] A removable wire or small plug whose presence or absence is used to determine some aspect of hardware configuration.
(1995-03-14)

junction fet
Junction FET
{Junction Field Effect Transistor}

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
Juno
A numerical {constraint}-oriented language for graphics applications. It solves its constraints using {Newton-Raphson} {relaxation}. It was inspired partly by {Metafont}.
["Juno, a Constraint-Based Graphics System", G. Nelson in SIGGRAPH '85 Conf Readings, B.A. Barsky ed, Jul 1985, pp. 235-243].
(1994-11-23)

jupiter
To kill an {IRC} {robot} or user and then take its place by adopting its {nick} so that it cannot reconnect. Named after a particular IRC user who did this to {NickServ}, the robot in charge of preventing people from inadvertently using a nick claimed by another user.
[{Jargon File}]
(1994-11-23)

just a bunch of disks
Just a Bunch Of Disks
[jargon, storage] (JBOD, or "Just a Bunch of Drives") A storage subsystems using multiple independent {disk drives}, as opposed to one form of {RAID} or another.
For example, {Unisys} open storage provides JBOD in both {SCSI} and {fibre channel} interfaces.
{Unisys JBOD (http://www.marketplace.unisys.com/storage/jbod.html)}.
(1998-12-21)

justintime
just-in-time
{dynamic translation}

jvm
JVM
{Java Virtual Machine}

jym
Jym
A predecessor to {Graal} by Patrick Bellot, France.

k
K
[unit] {kilo-}, a {kilobyte}. Used both as a spoken word and a written suffix, like {meg} and {gig} for {megabyte} and {gigabyte}.
See {prefix}.
[{Jargon File}]
(1995-09-29)

k5
K5
An early system on the {Larc} computer.
[Listed in CACM 2(5):16 (May 1959)].
(1994-11-23)

k56flex
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
K6
[processor] A {Pentium II} class {microprocessor}, manufactured by {AMD}.
[100% Compatible? Speed?]
(1998-02-27)

k7
K7
{Athlon}

ka9q
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
KADS
{Knowledge Analysis and Design System}

kahuna
[person] /k*-hoo'n*/ (From the Hawaiian title for a shaman) An {IBM} synonym for {wizard} or {guru}.
[{Jargon File}]
(1994-11-09)

kaleidoscope
Kaleidoscope
[language] An {object-oriented} language which mixes {imperative} and {constraint}-oriented features. Kaleidoscope was written by Freeman-Benson of the {University of Washington}, {Universite de Nantes}, 1989; {University of Victoria}, 1992. It is similar to {Siri} and vaguely related to {Prose}.
Versions: Kaleidoscope '90 and Kaleidoscope '91.
["Kaleidoscope: Mixing Objects, Constraints and Imperative Programming", B.N. Freeman-Benson, SIGPLAN Notices 25(10):77-88 (OOPSLA/ECOOP '90) (Oct 1990)].
["Constraint Imperative Programming", B.N. Freeman-Benson, Ph.D. Thesis, TR 91-07-02, U Wash (1991)].
["Constraint Imperative Programming", Freeman-Benson et al, IEEE Conf on Comp Lang, Apr 1992].
(1994-11-09)

kali
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}.
[{Jargon File}]
(1994-11-09)

kamins interpreters
Kamin's interpreters
[language, tool] A set of {interpreters} for {Pascal}, {Lisp}, {APL}, {Scheme}, {SASL}, {CLU}, {Smalltalk}, and {Prolog}. Tim Budd [budd@cs.orst.edu] implemented them as {subclasses} in {C++} sometime before 1991-09-12.
{(ftp://cs.orst.edu/pub/budd/kamin/)}.
["Programming Languages, An Interpreter-Based Approach", Samuel Kamin].
(2002-03-14)

kana
[Japanese] The two Japanese syllabaries, {hiragana} and {katakana}.
(2001-03-18)

kangaroo code
{spaghetti code}

kanji
[human language, character] /kahn'jee/ (From the Japanese "kan" - the Chinese Han dynasty, and "ji" - {glyph} or letter of the alphabet. Not capitalised. Plural "kanji") The Japanese word for a {Han character} used in Japanese. Kanji constitute a part of the {writing system} used to represent the Japanese language in written, printed and displayed form. The term is also used for the collection of all kanji {letters}.
{US-ASCII} doesn't include kanji characters, but some {character encodings}, including {Unicode}, do.
The Japanese writing system also uses hiragana, katakana, and sometimes romaji ({Roman alphabet} letters). These characters are distinct from, though commonly used in combination with, kanji. {Furigana} are also added sometimes.
(2000-12-30)

kaos
KAOS
{Kent Applicative Operating System}

kap
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
Karel
Language featured in Karel the Robot: A Gentle Introduction to Computer Programming, Richard E. Pattis, Wiley 1981.
{(ftp://ftp.wustl.edu/mirrors/Unix-c/languages/pascal/karel.tar-z)}.

katakana
[Japanese] The square-formed Japanese {kana} syllabary. Katakana is mostly used to write foreign names, foreign words, and loan words as well as many onomatopeia, plant and animal names.
(2001-03-18)

katmai new instructions
Katmai New Instructions
{Streaming SIMD Extensions}

kb
KB
{kilobyte}

kbms
KBMS
An {expert system}.

kbps
{kilobits per second}

kbs
KBS
{Knowledge-Based System}

kcl
KCL
{Kyoto Common Lisp}

ke
[networking] The {country code} for Kenya.
(1999-01-27)

kee
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
Keldysh Institute of Applied Mathematics
Address: Russian Academy of Sciences Miusskaya Pl. 4, 125047 Moscow, Russia.
(1994-12-12)

ken
/ken/ 1. {Ken Thompson}
2. A flaming user. This was originated by the Software Support group at {Symbolics} because the two greatest flamers in the user community were both named Ken.
[{Jargon File}]

ken thompson
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
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
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
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
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
Kevo
[language] A {prototype}-based {object-oriented} language written for {Macintosh} by Antero Taivalsaari at UTA, Finland. Kevo is built around a {threaded code} {interpreter} and features a unique prototype-based {object} model (which is based neither on {classes} nor {Self}-style {delegation}), {pre-emptive multitasking}, {cooperative multitasking}, dynamic {memory management}, an icon-based {object browser} and editor modelled loosely after Mac {Finder}. Kevo's {syntax} is close to {Forth} and its {semantics} resembles {Self} and {Omega}.
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.
3. [hardware] An electromechanical {keyboard} button.
(2003-07-04)

key escrow
[security] A controversial arrangement where the {key}s needed to decrypt encrypted data must be held in {escrow} by a third party so that government agencies can obtain them to decrypt messages which they suspect to be relevant to national security.
(1999-12-14)

key field
[database] A field of a {database} (typically a {relational database}) {table} which together form a unique identifier for a record (a table entry). The aggregate of these fields is usually referred to simply as "the {key}".
(1997-08-03)

key frame
[graphics] A frame in an animated sequence of frames which was drawn or otherwise constructed directly by the user rather than generated automatically, e.g. by {tweening}.
(1995-04-06)

keyboard
[hardware] A {hardware} device consisting of a number of mechanical buttons (keys) which the user presses to input characters to a computer.
Keyboards were originally part of {terminals} which were separate {peripheral} devices that performed both input and output and communicated with the computer via a {serial line}. Today a keyboard is more likely to be connected more directly to the processor, allowing the processor to scan it and detect which key or keys are currently pressed. Pressing a key sends a low-level {key code} to the keyboard input driver routine which translates this to one or more {characters} or special actions.
Keyboards vary in the keys they have, most have keys to generate the {ASCII} {character set} as well as various {function keys} and special purpose keys, e.g. reset or volume control.
(2003-07-04)

keyboard commando
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
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 sequenced data set
Keyed Sequenced Data Set
[database] (KSDS) One of the access methods used by {VSAM}. KSDS has indexes and data split into CI (Control Interval) in CA (Control Area) and multi index levelled. Forward and backward compression is applied to key values.
(1999-01-11)

keyedhashing message authentication
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)

keynote software
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
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
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}.
[{Jargon File}]

kh
[networking] The {country code} for Cambodia (formerly Kampuchea).
(1999-01-27)

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

kibibyte
[unit] The official ISO[?] name for 1024 {bytes}, to distinguish it from 1000 bytes which they call a kilobyte. "Mebibyte", "Gibibyte", etc, are prefixes for other powers of 1024. Although this new naming standard has been widely reported in 2003, it seems unlikely to catch on.
(2003-09-27)

kibo
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.
{Home (http://www.kibo.com/)}.
[{Jargon File}]
(2003-05-20)

kiboze
[{Usenet}] To {grep} the {Usenet} news for a string, especially with the intention of posting a follow-up. This activity was popularised by {Kibo}.

kick
[IRC] To cause somebody to be removed from a {IRC} channel, an option only available to {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}.
[{Jargon File}]

kid
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
KIDASA Software
[company] A company which develops project management software for {Microsoft Windows}.
{Home (http://www.kidasa.com)}.
(1996-07-22)

kill file
[{Usenet}] Per-user file(s) used by some {Usenet} reading programs (originally {Larry Wall}'s {rn}) to discard summarily (without presenting for reading) articles matching some particularly uninteresting (or unwanted) patterns of subject, author, or other header lines. Thus to add a person (or subject) to one's kill file is to arrange for that person to be ignored by one's newsreader in future. By extension, it may be used for a decision to ignore the person or subject in other media. See also {plonk}.
[{Jargon File}]

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).
[{Jargon File}]

killer poke
A recipe for inducing hardware damage on a machine via insertion of invalid values (see {poke}) into a {memory-mapped} control {register}; used especially of various fairly well-known tricks on {bitty box}es without hardware memory management (such as the {IBM PC} and {Commodore} {PET}) that can overload analog electronics in the monitor.
See also {HCF}.
(1994-11-04)

kilo
-
{prefix}

kilobaud
[unit] 1000 {baud}.
(1996-02-12)

kilobit
[unit] 2^10 = 1024 {bit}s of storage (1 Kb).
Compare {kilobits per second}.
(2002-03-23)

kilobits per second
[unit] (kbps, kb/s) A unit of {data rate} where 1 kb/s = 1000 bits per second. This contrasts with units of storage where 1 Kb = 1024 bits (note upper case K).
(2002-03-23)

kilobyte
[unit] (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
/kips/ [by analogy with {MIPS}] Thousands (*not* 1024s) of instructions per second. Usage: rare.
[{Jargon File}]

kis
KIS
{Knowbot Information Service}

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

kiss principle
KISS Principle
/kis' prin'si-pl/ Keep It Simple, Stupid.
A maxim often invoked when discussing design to fend off {creeping featurism} and control complexity of development. Possibly related to the {marketroid} maxim on sales presentations, "Keep It Short and Simple".
See also {Occam's Razor}.
[{Jargon File}]
(1994-11-18)

kit
[jargon] ({Usenet}, possibly from {DEC}) Slang for a full software distribution, as opposed to a {patch} or upgrade. A source software distribution that has been packaged in such a way that it can (theoretically) be unpacked and installed according to a series of steps using only standard {Unix} tools, and entirely documented by some reasonable chain of references from the top-level {README file}. The more general term {distribution} may imply that special tools or more stringent conditions on the host environment are required.
[{Jargon File}]
(1994-11-18)

kl0
KL0
Kernel Language 0.
A sequential {logic language} based on {Prolog}, used in the Japanese {ICOT} project.
(1994-11-18)

kl1
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
Klamath
[processor] The pre-release "code name" for {Intel}'s {Pentium II} {microprocessor}.
(1998-09-07)

klb
KLB
{Known Lazy Bastard}

kleene closure
Kleene closure
{Kleene star}

kleene star
Kleene star
[text] (Or "Kleene closure", named after {Stephen Kleene}) The {postfix} "*" operator used in {regular expressions}, {Extended Backus-Naur Form}, and similar formalisms to specify a match for zero or more occurrences of the preceding expression. For example, the regular expression "be*t" would match the string "bt", "bet", "beet", "beeeeet", and so on.
(2000-07-26)

kleene stephen cole
Kleene, Stephen Cole
{Stephen Kleene}

klerermay system
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
KLOC
[unit, programming] Thousand (kilo-) {Lines of code}.
(1995-03-12)

klone
/klohn/ {clone}.
[{Jargon File}]

klone
KL-ONE
A {frame language}.
Not to be confused with {KL1}.
["An Overview of the KL-ONE Knowledge Representation System", R.J. Brachman and J. Schmolze, Cognitive Sci 9(2), 1985].
(1994-11-18)

kludge
[jargon] /kluhj/ (From the old Scots "kludgie" meaning an outside toilet) A Scottish engineering term for anything added in an ad hoc (and possibly unhygenic!) manner. At some point during the Second World War, Scottish engineers met Americans and the meaning, spelling and pronunciation of kludge became confused with that of "{kluge}".
The spelling "kludge" was apparently popularised by the "Datamation" cited below which defined it as "An ill-assorted collection of poorly matching parts, forming a distressing whole."
The result of this tangled history is a mess; in 1993, many (perhaps even most) hackers pronounce the word /klooj/ but spell it "kludge" (compare the pronunciation drift of {mung}). Some observers consider this appropriate in view of its meaning.
["How to Design a Kludge", Jackson Granholme, Datamation, February 1962, pp. 30-31].
[{Jargon File}]
(1998-12-09)

kluge
[jargon] /klooj/, /kluhj/ (From German "klug" /kloog/ - clever and Scottish "{kludge}") 1. A Rube Goldberg (or Heath Robinson) device, whether in {hardware} or {software}.
The spelling "kluge" (as opposed to "kludge") was used in connection with computers as far back as the mid-1950s and, at that time, was used exclusively of *hardware* kluges.
2. [programming] A clever programming trick intended to solve a particular nasty case in an expedient, if not clear, manner. Often used to repair bugs. Often involves {ad-hockery} and verges on being a {crock}. In fact, the TMRC Dictionary defined "kludge" as "a crock that works".
3. Something that works for the wrong reason.
4. ({WPI}) A {feature} that is implemented in a {rude} manner.
In 1947, the "New York Folklore Quarterly" reported a classic shaggy-dog story "Murgatroyd the Kluge Maker" then current in the Armed Forces, in which a "kluge" was a complex and puzzling artifact with a trivial function. Other sources report that "kluge" was common Navy slang in the WWII era for any piece of electronics that worked well on shore but consistently failed at sea.
However, there is reason to believe this slang use may be a decade older. Several respondents have connected it to the brand name of a device called a "Kluge paper feeder" dating back at least to 1935, an adjunct to mechanical printing presses. The Kluge feeder was designed before small, cheap electric motors and control electronics; it relied on a fiendishly complex assortment of cams, belts, and linkages to both power and synchronise all its operations from one motive driveshaft. It was accordingly tempermental, subject to frequent breakdowns, and devilishly difficult to repair - but oh, so clever! One traditional folk etymology of "klugen" makes it the name of a design engineer; in fact, "Kluge" is a surname in German, and the designer of the Kluge feeder may well have been the man behind this myth.
{TMRC} and the MIT hacker culture of the early 1960s seems to have developed in a milieu that remembered and still used some WWII military slang (see also {foobar}). It seems likely that "kluge" came to MIT via alumni of the many military electronics projects run in Cambridge during the war (many in MIT's venerable Building 20, which housed {TMRC} until the building was demolished in 1999).
[{Jargon File}]
(2002-10-02)

kluge around
[jargon] To avoid a bug or difficult condition by inserting a {kluge}.
Compare {workaround}.
[{Jargon File}]
(1995-03-10)

km
[networking] The {country code} for Comoros.
(1999-01-27)

kmodel
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
KMS
{Knowledge Management System}

kn
[networking] The {country code} for Saint Kitts and Nevis.
(1999-01-27)

knapsack problem
[application, mathematics] Given a {set} of items, each with a cost and a value, determine the number of each item to include in a collection so that the total cost is less than some given cost and the total value is as large as possible.
The 0/1 knapsack problem restricts the number of each items to zero or one.
Such {constraint satisfaction} problems are often solved using {dynamic programming}.
The general knapsack problem is {NP-hard}, and this has led to attempts to use it as the basis for {public-key encryption} systems. Several such attempts failed because the knapsack problems they produced were in fact solvable by {polynomial-time algorithms}.
[Are there any trusted knapsack-based public-key cryptosystems?].
(1995-04-10)

kni
KNI
{Streaming SIMD Extensions}

knights of the lambdacalculus
Knights of the Lambda-Calculus
A semi-mythical organisation of wizardly LISP and Scheme hackers. The name refers to a mathematical formalism invented by Alonzo Church, with which LISP is intimately connected. There is no enrollment list and the criteria for induction are unclear, but one well-known LISPer has been known to give out buttons and, in general, the *members* know who they are.
[{Jargon File}]

knowbot
[World-Wide Web] A kind of {bot} that collects information by automatically gathering certain specified information from {web sites}.
(1999-06-19)

knowbot information service
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
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 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
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
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
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
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)

knowledgebased system
knowledge-based system
[artificial intelligence] (KBS) A program for extending and/or querying a {knowledge base}.
The related term {expert system} is normally used to refer to a highly domain-specific type of KBS used for a specialised purpose such as medical diagnosis.
The {Cyc} project is an example of a large KBS.
(1999-09-07)

known lazy bastard
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
Knuth
/knooth/ 1. {Donald Knuth}.
2. ["The Art of Computer Programming", Donald E. Knuth] Mythically, the reference that answers all questions about data structures or algorithms. A safe answer when you do not know: "I think you can find that in Knuth."
Contrast {literature}. See also {bible}.
[{Jargon File}]

kodak
Kodak
[company] The photographic company responsible for {Photo CD}.
{Home (http://www.kodak.com/)}.
(1995-12-13)

kohonen
Kohonen
{T. Kohonen}

kompiler
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
Konrad Zuse
[person] The designer of the first programming language, {Plankalkul}, 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
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
KQML
{Knowledge Query and Manipulation Language}

kr
KR
{knowledge representation}

kr
[networking] The {country code} for South Korea.
[{Jargon File}]
(1999-01-27)

kr
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}.
[{Jargon File}]

kr c
K&R C
{C} as originally described in {K&R}.

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

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.
[{Jargon File}]

krl
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
KRS
Frame-based language built on Common LISP.

krypton
KRYPTON
A {frame} language.
["An Essential Hybrid Reasoning System: Knowledge and Symbol Level Accounts of KRYPTON", R.J. Brachman et al, Proc IJCAI-85, 1985].

ksh
{Korn Shell}

ksl
KSL
{Knowledge Systems Laboratory}

ksr
KSR
1. {Keyboard Send Receive}.
2. [company] {Kendall Square Research}.
(1995-11-23)

kth
KTH
{Kungliga Tekniska Hogskolan}

kuip
KUIP
{Kernel User Interface Package}

kungliga tekniska hogskolan
Kungliga Tekniska Hogskolan
[body, education] (KTH, Royal Institute of Art and Technology) A Swedish university founded in 1827 that is strong in engineering and computing (e.g. {AI}, {Virtual Reality}). In 1998 KTH had nearly 11,000 undergraduate students, 1,300 postgraduate students, and 2,900 staff, making it the largest of Sweden's six universitites of technology.
{Home (http://www.kth.se/index-eng.html)}.
Address: Stockholm, Sweden.
(2001-03-18)

kutgw
KUTGW
[chat] Keep up the good work.
(1999-03-08)

kvatro telecom as
Kvatro Telecom AS
[company] The company that maintains {Mary}.
Address: Trondheim, Norway.
{Home (http://www.kvatro.no/)}.
(1998-11-10)

kvikkalkul
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
Kyoto Common Lisp
[language] (KCL) An implementation of {Common Lisp} by T. Yuasa [yuasa@tutics.tut.ac.jp] and M. Hagiya [hagiya@is.s.u-tokyo.ac.jp], written in {C} to run under {Unix}-like {operating systems}. KCL is compiled to {ANSI C}. It conforms to {Common Lisp} as described in {Guy Steele}'s book and is available under a licence agreement.
{(ftp://rascal.ics.utexas.edu/pub/kcl.tar.Z)}.
E-mail: [kcl@cli.com] (bug reports).
Mailing list: kcl-request@cli.com, kcl@rascal.ics.utexas.edu.
["Design and Implementation of Kyoto Common Lisp", T. Yuasa [yuasa@tutics.tut.ac.jp], J Info Proc 13(3):284-295 (1990)].
["Kyoto Common Lisp Report", T. Yuasa & M. Hagiya].
(1987-06-01)

kyrka
{feature key}

kz
[networking] The {country code} for Kazakhstan.
(1999-01-27)

l0
L0
[language] A low-level language developed at the {Technical University of Munich}. L0 was typed and had the usual {flow control}, but only 3-address expressions. Higher level languages, L1 and L2 were planned.
["Brief Survey of L0", H. Scheidig, in Machine Oriented Higher Level Languages, W. van der Poel ed, N-H 1974, pp. 239-247].
(2003-06-12)

l0pht
L0pht
[security] /loft/ An Internet security organisation that merged with {@stake} in January 2000.
(2003-06-12)

l1 cache
L1 cache
{primary cache}

l10n
{localisation}

l2 cache
L2 cache
{secondary cache}

l2cap
L2CAP
{Logical Link Control and Adaptation Protocol}

l2tp
L2TP
{Layer Two Tunneling Protocol}

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

lab for computer science
Lab for Computer Science
{MIT}. {(http://www.lcs.mit.edu/)}.

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

laboratory instrument computer
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
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
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
Labtech Notebook
[tool, product] Commercial {data aquisition} software.
(1995-03-08)

labview
LabVIEW
{Laboratory Virtual Instrument Engineering Workbench}

lace
Lace
Language for Assembling Classes in Eiffel. Specifies how to assemble an Eiffel system : in which directories to find the clusters, which class to use as the root, permits class renaming to avoid name clashes. "Eiffel: The Language", Bertrand Meyer, P-H 1992.

lace card
(Obsolete) A {punched card} with all holes punched (also called a "whoopee card" or "ventilator card"). Card readers tended to jam when they got to one of these, as the resulting card had too little structural strength to avoid buckling inside the mechanism. Card punches could also jam trying to produce these things owing to power-supply problems. When some practical joker fed a lace card through the reader, you needed to clear the jam with a "card knife" - which you used on the joker first.
[{Jargon File}]

lady
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
Lakota
Scripting language, extends existing OS commands. E-mail: Richard Harter [rh@smds.UUCP], SMDS, Inc.

lalr
LALR
{Look Ahead Left-to-right parse, Rightmost-derivation}

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

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

lambda prolog
Lambda Prolog
[language] An extension of standard {Prolog} defined by Dale A. Miller and Gopalan Nadathur in 1986, in which terms are {strongly typed} lambda terms. {Clauses} are {higher order} {hereditary Harrop formulas}. The main novelties are {universal quantification} on {goals} and {implication}.
The {Prolog/Mali} compiler compiles Lambda Prolog for the {MALI} abstract memory system.
{Teyjus (http://teyjus.cs.umn.edu/)} is an implementation of Lambda Prolog.
{Lambda Prolog home (http://www.cse.psu.edu/~dale/lProlog/)}.
Mailing list: lprolog@cs.umn.edu.
["Higher-order logic programming", Miller D.A. and Nadathur G., 3rd International Conference on Logic Programming, pp 448-462, London 1986].
[Nadathur G. "A Higher-Order Logic as a Basis for Logic Programming", Thesis, University of Pennsylvania, 1987].
(2002-10-15)

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

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

lamer
[jargon] A hopelessly clueless {luser}.
(1997-01-31)

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

lamppost error
lamp-post error
{fencepost error}

lan
LAN
{local area network}

lan manager
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)

lance
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 for communicating systems
Language for Communicating Systems
[language] (LCS) A {concurrent} {SML} by Bernard Berthomieu with {behaviours} and processes, based upon {higher order CCS}. LCS is implemented as a {bytecode interpreter} and runs on {Sun} {SPARC}, {SGI} {MIPS}, and {Linux}.
Latest version: 5.1, as of 2000-03-17.
{Home (http://www.laas.fr/~bernard/lcs.html)}.
E-mail: Bernard Berthomieu [Bernard.Berthomieu@laas.fr].
Mailing list: lcs@laas.fr
(2000-03-28)

language for the online investigation and transformation of abstractions
Language for the On-Line Investigation and Transformation of Abstractions
[language] (LOLITA) An extension of the {Culler-Fried System} for {symbolic mathematics}.
["An On- line Symbol Manipulation System", F.W. Blackwell, Proc ACM 22nd Natl Conf, 1967].
[Sammet 1969, p. 464].
(2003-07-29)

language h
Language H
An early business-oriented language from {NCR}.

language lawyer
A person, usually an experienced or senior software engineer, who is intimately familiar with many or most of the numerous restrictions and features (both useful and esoteric) applicable to one or more computer programming languages. A language lawyer is distinguished by the ability to show you the five sentences scattered through a 200-page manual that together imply the answer to your question "if only you had thought to look there".
Compare {wizard}, {legal}, {legalese}.
[{Jargon File}]
(1995-02-15)

language of temporal ordering specification
Language 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
Language Sensitive Editor
(LSE) A {language-sensitive editor} from {DEC}.
(1995-02-15)

languagebased editor
language-based editor
{language-sensitive editor}

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}.
[{Jargon File}]

languagesensitive editor
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)

laning and zierler
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
LANL
Los Alamos National Laboratory, Los Alamos, NM, USA.

lantastic
LANtastic
[networking, product] A trademarked name for numerous products of {Artisoft, Inc.}.
(1995-04-16)

lap
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
LAP4
Early assembly language for Linc-8 machine.

lapb
LAPB
{Link Access Protocol Balanced}

lapd
LAPD
1. {Link Access Procedure on the D channel}.
2. Los Angeles Police Department.

lapm
LAPM
{Link Access Protocol for Modems}

lapse
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
[LaQuey, T. (with J. Ryer), "The Internet Companion: A Beginner's Guide to Global Networking", Addison-Wesley, Reading, MA, 1992.]

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

larchc
Larch/C++
An interface specification language which can be used to formally specify {C++} program {modules}.

larchclu
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
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
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
LART
{Luser Attitude Re-adjustment Tool}

larval stage
Describes a period of monomaniacal concentration on coding apparently passed through by all fledgling hackers. Common symptoms include the perpetration of more than one 36-hour {hacking run} in a given week; neglect of all other activities including usual basics like food, sleep, and personal hygiene; and a chronic case of advanced bleary-eye. Can last from 6 months to 2 years, the apparent median being around 18 months. A few so afflicted never resume a more "normal" life, but the ordeal seems to be necessary to produce really wizardly (as opposed to merely competent) programmers. See also {wannabee}. A less protracted and intense version of larval stage (typically lasting about a month) may recur when one is learning a new {OS} or programming language.
[{Jargon File}]

lase
/layz/ To print a given document via a laser printer. "OK, let's lase that sucker and see if all those graphics-macro calls did the right things."

laser
[hardware] (Light Amplification by Stimulated Emission of Radiation) The type of light source used in a {laser printer}.
(2003-05-08)

laser printer
[printer] A non-impact high-resolution printer which uses a rotating disk to reflect laser beams to form an electrostatic image on a selenium imaging drum. The developer drum transfers toner from the toner bin to the charged areas of the imaging drum, which then transfers it onto the paper into which it is fused by heat. Toner is dry ink powder, generally a plastic heat-sensitive polymer.
Print resolution currently (2001) ranges between 300 and 2400 dots per inch (DPI). Laser printers using chemical photoreproduction techniques can produce resolutions of up to 2400 DPI.
Print speed is limited by whichever is slower - the printer hardware (the "engine speed"), or the software {rendering} process that converts the data to be printed into a {bit map}.
The print speed may exceed 21,000 lines per minute, though printing speed is more often given in pages per minute. If a laser printer is rated at 12 pages per minute (PPM), this figure would be true only if the printer is printing the same data on each of the twelve pages, so that the bit map is identical. This speed however, is rarely reached if each page contains different codes, text, and graphics.
In 2001, Xerox's Phaser 1235 and 2135 (with Okidata engines) could print up to 21 colour ppm at 1200x1200 DPI using a single-pass process.
Colour laser printers can reach 2400 DPI easily (e.g. an HP LaserJet 8550). Some printers with large amounts of RAM can print at engine speed with different text pages and some of the larger lasers intended for graphics design work can print graphics at full engine speed.
Although there are dozens of retail brands of laser printers, only a few {original equipment manufacturers} make {print engines}, e.g. {Canon}, {Ricoh}, {Toshiba}, and {Xerox}.
(2002-01-06)

lasherism
Lasherism
[jargon, algorithm] (Harvard) A program that solves a standard problem (such as the {Eight Queens Puzzle} or implementing the {life} {algorithm}) in a deliberately nonstandard way. Distinguished from a {crock} or {kluge} by the fact that the programmer did it on purpose as a mental exercise. Such constructions are quite popular in exercises such as the {Obfuscated C contest}, and occasionally in {retrocomputing}. Lew Lasher was a student at Harvard around 1980 who became notorious for such behaviour.
[{Jargon File}]
(1994-12-07)

last call optimisation
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.

lastin firstout
last-in first-out
{stack}

lat
LAT
{Local Area Transport}

latch
A digital logic circuit used to store one or more bits. A latch has a data input, a clock input and an output. When the clock input is active, data on the input is "latched" or stored and transfered to the output either immediately or when the clock input goes inactive. The output will then retain its value until the clock goes active again.
See also {flip-flop}.
(1995-02-03)

latency
[communications] 1. The time it takes for a {packet} to cross a network connection, from sender to receiver.
2. The period of time that a frame is held by a network device before it is forwarded.
Two of the most important parameters of a communications channel are its latency, which should be low, and its {bandwidth}, which should be high. Latency is particularly important for a {synchronous} {protocol} where each packet must be acknowledged before the next can be transmitted.
(2000-02-27)

latex
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
Latin 1
{ISO 8859}

lattice
[theory] A {partially ordered set} in which all finite subsets have a {least upper bound} and {greatest lower bound}.
This definition has been standard at least since the 1930s and probably since Dedekind worked on lattice theory in the 19th century; though he may not have used that name.
See also {complete lattice}, {domain theory}.
(1999-12-09)

lau
LAU
Langage a Assignation Unique. A {single assignment} language for the LAU {dataflow} machine, Toulouse.
["Pipelining, Parallelism and Asynchronism in the LAU System", J.C. Syre et al, Proc 1977 Intl Conf Parallel Proc, pp. 87-92].

laundromat
[jargon, storage] Synonym {disk farm}; see {washing machine}.
[{Jargon File}]
(1998-02-01)

laure
LAURE
[language] A language for {knowledge representation} combining {object-oriented} features and {logic programming}. It has set operations, object-oriented {exception} handling and a {polymorphic} type system.
["An Object-Oriented Language for Advanced Applications", in Proc TOOLS 5, Santa Barbara 1991, P-H].
(1998-02-01)

lava
LAVA
A language for {VLSI} that deals with "sticks", i.e. wires represented as lines with thickness.
["A Target Language for Silicon Compilers", R.J. Matthews et al, IEEE COMPCON, 1982, pp. 349-353].
(1994-12-07)

law
{software law}

lawn
LAWN
{wireless local area network}

lawrence livermore labs
Lawrence Livermore Labs
{Lawrence Livermore National Laboratory}

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
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
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 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
Lazy Standard ML
[language] (LSML) A {lazy} varient of {SML}, allowing cyclic val definitions, by Prateek Mishra [mishra@sbcs.sunysb.edu].
Latest version: 0.43-1, as of 1993-11-15.
Not to be confused with {LML}.
{(ftp://sbcs.sunysb.edu/pub/lsml)}.
(1999-08-30)

lb
[networking] The {country code} for Lebanon.
(1999-01-27)

lba
LBA
{Logical Block Addressing}

lbe
LBE
{Language-Based Editor}

lbl
LBL
Lawrence Berkeley Laboratory, Berkeley, CA, USA.

lbx
LBX
{Low Bandwidth X}.

lc
[networking] The {country code} for Saint Lucia.
(1999-01-27)

lcc
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
LCD
{liquid crystal display}

lcf
LCF
{Logic for Computable Functions}

lcl
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
LCP
{Link Control Protocol}

lcs
LCS
{Language for Communicating Systems}

ld
1. [programming, tool] (Load) {Unix}'s {linker}.
2. [mathematics] {logarithmus dualis}.
(1999-03-19)

ldap
LDAP
{Lightweight Directory Access Protocol}

ldb
LDB
/l*'d*b/ [PDP-10 instruction] To extract from the middle. "LDB me a slice of cake, please." This usage has been kept alive by Common LISP's function of the same name. Considered silly. See also {DPB}.
[{Jargon File}]

ldl
LDL
["LDL: A Logic-Based Data-Language", S. Tsur et al, Proc VLDB 1986, Kyoto Japan, Aug 1986, pp.33-41].

ldl1
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
LDP
{Linux Documentation Project}

ldt
LDT
Logic Design Translator.
Computer system design analysis.
[Sammet 1969, p. 621].
(1994-12-01)

le1
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
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
Leaf Distribution Limited
A UK connectivity software supplier which also provides SERVELAN, a country-wide {Internet} access service.
E-mail: [sales@leaf.co.uk].
Address: 7 Elmwood, Chineham Business Park, Crockford Lane, BASINGSTOKE RG24 0WG. Telephone: +44 (1256) 707 777. Fax: +44 (1256) 707 555.
(1995-01-04)

leaf site
A machine that merely originates and reads {Usenet} news or mail, and does not relay any third-party traffic. Often uttered in a critical tone; when the ratio of leaf sites to backbone, rib, and other relay sites gets too high, the network tends to develop bottlenecks. Compare {backbone site}, {rib site}.
[{Jargon File}]

league for programming freedom
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}.
[{Jargon File}]
(1995-04-18)

leaky heap
[programming] (Cambridge) An {arena} with a {memory leak}.
[{Jargon File}]
(1995-04-18)

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

leap second
{Coordinated Universal Time}

leapfrog attack
Use of userid and password information obtained illicitly from one {host} (e.g. {download}ing a file of account IDs and passwords, tapping {TELNET}, etc.) to compromise another host. Also, the act of TELNETting through one or more hosts in order to confuse a trace (a standard {cracker} procedure).
[{Jargon File}]

learning curve
[jargon] A graph showing some measure of the cost of performing some action against the number of times it has been performed. The term probably entered engineering via the aircraft industry in the 1930s, where it was used to describe plots showing the cost of making some particular design of aeroplane against the number of units made.
The term is also used in psychology to mean a graph showing some measure of something learned against the number of trials. The psychology graphs normally slope upward whereas the manufacturing ones normally slope downward but they are both usually steep to start with and then level out.
{Marketroids} often misuse the term to mean the amount of time it takes to learn to use something ("reduce the learning curve") or the ease of learning it ("easy learning curve"). The phrase "steep learning curve" is sometimes used incorrectly to mean "hard to learn" whereas of course it implies rapid learning.
{Engineering
(http://www.computerworld.com/cwi/story/0,1199,NAV47-68-85-1942_STO61762,00.html)}.
{Psychology (http://sun.science.wayne.edu/~wpoff/cor/mem/opereinf.html)}.
(2002-01-22)

leased line
[communications, networking] A private telephone circuit permanently connecting two points, normally provided on a lease by a local {PTT}.
(1998-03-24)

least fixed point
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
LEC
{Local Exchange Carrier}

lecom
LECOM
Version of COMIT on GE 225 ca. 1966. Sammet 1969, p.419.

led
LED
[electronics] {Light-Emitting Diode}.

led page printer
LED page printer
{LED 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)

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

leda
LEDA
{Library of Efficient Data types and Algorithms}

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
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}.
[{Jargon File}]

legalese
Dense, pedantic verbiage in a language description, product specification, or interface standard; text that seems designed to obfuscate and requires a {language lawyer} to {parse} it. Though hackers are not afraid of high information density and complexity in language (indeed, they rather enjoy both), they share a deep and abiding loathing for legalese; they associate it with deception, {suit}s, and situations in which hackers generally get the short end of the stick.

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

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

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

lempelziv welch compression
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].

lenat doug
Lenat, Doug
{Doug Lenat}

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
LEO
{Low Earth Orbit}

leo
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
LER
1. [networking] {Label Edge Router}.
2. [electronics, humour] {Light-Emitting Resistor}.
[{Jargon File}]
(1999-06-30)

lerp
LERP
/lerp/ vi., Quasi-acronym for Linear Interpolation, used as a verb or noun for the operation. "Bresenham's algorithm lerps incrementally between the two endpoints of the line."
[{Jargon File}]

less than
[character] "[" {ASCII} character 60.
Common names: {ITU-T}: less than; bra ("]" = ket); left angle; left angle bracket; left broket. Rare: from; read from; suck ("]" = blow); comes-from; in; crunch (all from Unix); {INTERCAL}: angle.
See also {greater than}.
(1995-03-20)

lesstif
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 (toward the top level) as possible to maximise sharing.
(1997-07-09)

letterbomb
[messaging] 1. An {e-mail} message containing {live data} intended to do nefarious things to the recipient's computer or terminal. It is possible, for example, to send letterbombs that will lock up some specific kinds of terminals when they are viewed, so thoroughly that the user must turn the terminal off to unwedge it. Under {Unix}, a letterbomb can also try to get part of its contents interpreted as a shell command. The results of this could range from silly to tragic.
See also {Trojan horse}; compare {nastygram}, {talk bomb}.
2. Loosely, a {mailbomb}.
[{Jargon File}]
(1998-01-16)

level 1 cache
{primary cache}

level 2 cache
{secondary cache}

level one cache
{primary cache}

level two cache
{secondary cache}

level5 object
LEVEL5 OBJECT
From {Information Builders}.
[What is it?]

levelsensitive scan design
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)

lex
Lex
1. [tool] A {lexical analyser} generator for {Unix} and its input language. There is a {GNU} version called {flex} and a version written in, and outputting, {SML/NJ} called {ML-lex}. A version, by David Poole at Montana has been retargeted to {Turbo Pascal}, {(ftp://iecc.com/pub/file/lyprg.zip)}.
["Lex - A Lexical Analyzer Generator", M.E. Lesk, CS TR 39, Bell Labs, Oct 1975].
2. [language, specification] The lexical specification language for {COPS}.
["Metalanguages of the Compiler Production System COPS", J. Borowiec, in GI Fachgesprach "Compiler-Compiler", ed W. Henhapl, Tech Hochs Darmstadt 1978, pp.122-159].
(2000-11-15)

lexeme
[grammar] A minimal lexical unit of a language. {Lexical analysis} converts strings in a language into a list of lexemes. For a programming language these word-like pieces would include {keywords}, {identifiers}, {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 some region in the {source code} containing the identifier's declaration. This means that an identifier is only accessible within that region (including procedures declared within it).
This contrasts with {dynamic scope} where the scope depends on the nesting of {procedure} and {function} calls at {run time}.
Statically scoped languages differ as to whether the scope is limited to the smallest {block} (including {begin}/end blocks) containing the identifier's declaration (e.g. {C}, {Perl}) or to whole function and procedure bodies (e.g. ?), or some larger unit of code (e.g. ?). The former is known as {static nested scope}.
(2001-09-07)

lexical scoping
{lexical scope}

lexiphage
/lek'si-fayj"/ A notorious word {chomper} on {ITS}, implemented and named by John Doty. 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.
{(http://www.tiac.net/users/kaleberg/lexiphage.html)}.
[{Jargon File}]
(2002-06-12)

lf
LF
{Line Feed}

lg
LG
Simple language for analytic geometry, with graphic output. "LG: A Language for Analytic Geometry", J. Reymond, CACM 12(8) (Aug 1969).

lgdf
LGDF
Large-Grain DataFlow.
["A Large-grain Data Flow Scheduler for Parallel Processing on Cyberplus", R.G. Babb et al, Proc 1986 Intl Conf on Parallel Proc, Aug 1986].
(2000-07-07)

lgen
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
LGN
{Linear Graph Notation}

lha
1. [filename extension] The {filename extension} for a file produced by the {shareware} {compression} and {archive} software {LHARC}.
2. [tool] A {compression} program for {MS-DOS}. Output files have the extension ".lzh".
[Does it use {LZH} compression?]
(2002-07-28)

lharc
LHARC
[compression, algorithm] A {compression} program developed by Rahul Dhesi. LHARC was later replaced with {LHA}, which produces files with extension ".lzh".
(2002-07-28)

lhs
[filename extension] The {filename extension} for {literate} {Haskell} source files.
(1995-02-15)

li
[networking] The {country code} for Liechtenstein.
(1999-01-27)

liana
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
Liar
{MIT Scheme}

liar paradox
[philosophy] A sentence which asserts its own falsity, e.g. "This sentence is false" or "I am lying". These paradoxical assertions are meaningless in the sense that there is nothing in the world which could serve to either support or refute them. Philosophers, of course, have a great deal more to say on the subject.
["The Liar: an Essay on Truth and Circularity", Jon Barwise and John Etchemendy, Oxford University Press (1987). ISBN 0-19-505944-1 (PBK), Library of Congress BC199.P2B37].
(1995-02-22)

libg
++
[library] The {run-time library} for the {GNU} {C++} compiler, {g++}. Version: 2.5.1 is a superset of {ANSI} and {POSIX.1}.
libg++ is no longer maintained, use libstd++ instead if possible.
Available by {FTP} from a {GNU archive site}.
Bug reports: [bug-lib-g++@gnu.org].
(2000-04-24)

library
[programming, library] A collection of {subroutines} and {functions} stored in one or more files, usually in compiled form, for linking with other programs. Libraries are one of the earliest forms of organised {code reuse}. They are often supplied by the {operating system} or {software development environment} developer to be used in many different programs. The routines in a library may be general purpose or designed for some specific function such as three dimensional animated graphics.
Libraries are linked with the user's program to form a complete {executable}. The linking may be {static linking} or, in some systems, {dynamic linking}.
(1998-11-21)

library of efficient data types and algorithms
Library 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
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
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
LIF
{Low Insertion Force}

life
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].
[{Jargon File}]
(1997-09-07)

life
LIFE
[language] Logic of Inheritance, Functions and Equations.
An {object-oriented}, {functional}, {constraint}-based language by Hassan Ait-Kacy [hak@prl.dec.com] et al of {MCC}, Austin TX, 1987. LIFE integrates ideas from {LOGIN} and {LeFun}.
Mailing list: life-users@prl.dec.com.
See also {Wild_LIFE}.
["Is There a Meaning to LIFE?", H. Ait-Kacy et al, Intl Conf on Logic Prog, 1991].
[{Jargon File}]
(1995-04-21)

life
[jargon] The opposite of {Usenet}. As in "{Get a life!}"
[{Jargon File}]
(1995-04-21)

life is hard
Life is hard
[XEROX PARC] This phrase has two possible interpretations: (1) "While your suggestion may have some merit, I will behave as though I hadn't heard it." (2) "While your suggestion has obvious merit, equally obvious circumstances prevent it from being seriously considered." The charm of the phrase lies precisely in this subtle but important ambiguity.
[{Jargon File}]

lifecycle
life-cycle
{software life-cycle}

lifia
LIFIA
Laboratoire d'Informatique Fondamentale et d'Intelligence Artificielle.

lifo
LIFO
{stack}

lifted domain
[theory] In {domain theory}, a {domain} with a new {bottom} element added. Given a domain D, the lifted domain, lift D contains an element lift d corresponding to each element d in D with the same ordering as in D and a new element bottom which is less than every other element in lift D.
In {functional 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
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 pipe
{optical fibre}

lightemitting diode
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)

lightemitting resistor
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)

lightweight
light-weight
[jargon] Opposite of {heavy-weight}; usually found in combining forms such as "{light-weight process}".
[{Jargon File}]
(1996-02-22)

lightweight directory access protocol
Lightweight Directory Access Protocol
[protocol] (LDAP) A {protocol} for accessing on-line {directory services}.
LDAP was defined by the {IETF} in order to encourage adoption of {X.500} directories. The {Directory Access Protocol} (DAP) was seen as too complex for simple {internet clients} to use. LDAP defines a relatively simple protocol for updating and searching directories running over {TCP/IP}.
LDAP is gaining support from vendors such as {Netscape}, {Novell}, {Sun}, {HP}, {IBM}/Lotus, {SGI}, {AT&T}, and {Banyan}
An LDAP directory entry is a collection of attributes with a name, called a distinguished name (DN). The DN refers to the entry unambiguously. Each of the entry's attributes has a {type} and one or more values. The types are typically mnemonic strings, like "cn" for common name, or "mail" for {e-mail address}. The values depend on the type. For example, a mail attribute might contain the value "donald.duck@disney.com". A jpegPhoto attribute would contain a photograph in binary {JPEG}/{JFIF} format.
LDAP directory entries are arranged in a {hierarchical} structure that reflects political, geographic, and/or organisational boundaries. Entries representing countries appear at the top of the tree. Below them are entries representing states or national organisations. Below them might be entries representing people, organisational units, printers, documents, or just about anything else.
{RFC 1777}, {RFC 1778}, {RFC 1959}, {RFC 1960}, {RFC 1823}.
{LDAP v3 (http://www.kingsmountain.com/LDAPRoadmap/CurrentState.html)}.
[Difference v1, v2, v3?]
(2003-09-27)

lightweight process
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."
[{Jargon File}]
(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."
[{Jargon File}]
(1997-12-23)

like this
You weren't supposed to follow that link, it was just an example of what a link looks like.

lila
Lila
Patrick Salle'[salle@geocub.greco-prog.fr]. A small assembly-like language used for implementation of Actor languages. [Plasma perhaps?].

lilith
Lilith
[computer] The {workstation} for which {Modula-2} was developed as the system language.
[Details?]
(1995-10-25)

lilliac iv
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)

lilo
1. [operating system] {Linux Loader}.
2. {first-in first-out}.
(2001-03-26)

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

lim ems
LIM EMS
{Expanded Memory Specification}

limdep
LIMDEP
A {linear programming} language used by economists.

limp
LIMP
["Messages in Typed Languages", J. Hunt et al, SIGPLAN Notices 14(1):27-45 (Jan 1979)].

linc
Linc
1. [language] A {Burroughs}/{Unisys} {4GL} designed in New Zealand.
2. {Laboratory Instrument Computer}.
(1999-03-29)

lincoln reckoner
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
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
Linda
[language] A "coordination language" from {Yale}, providing a model for {concurrency} with communication via a shared {tuple} space. Linda is usually implemented as a subroutine library for a specific base language, as in {C-Linda}, {Fortran-Linda}, {LindaLISP} and {Prolog-Linda}. It is available from {Scientific Computing Associates, Inc.} [What is?]
{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 et al, Yale U., CACM 32(4):444-458, Apr 1989].
See also {Ease}, {Lucinda}, {Melinda}.
(2000-07-07)

lindalisp
LindaLISP
{Linda} for {Lisp}.

line
1. [hardware] An electrical conductor. For distances larger than a breadbox, a single line may consist of two electrical conductors in twisted, parallel, or concentric arrangement used to transport one logical signal.
By extension, a (usually physical) medium such as an {optical fibre} which carries a signal.
(1995-09-29)

line 666
[jargon] (Christian eschatological myth) The notional line of source at which a program fails for obscure reasons, implying either that *somebody* is out to get it (when you are the programmer), or that it richly deserves to be got (when you are not).
E.g. "It works when I trace through it, but seems to crash on line 666 when I run it." "What happens is that whenever a large batch comes through, mmdf dies on the Line of the Beast. Probably some twit {hard-coded} a buffer size."
[{Jargon File}]
(1999-03-01)

line conditioning
[communications] The adjustment of electrical characteristics of, e.g., {twisted pair} telephone lines by insertion of components such as resistors, capacitors, transformers or (commonly) inductors. Lines intended for analogue voice signals usually have inductors inserted every few miles; such a line is said to be "loaded".
The special purpose lines which have neither inductors nor the DC voltage which powers ordinary telephones are said to be "dry," and are much better for data transmission.
(1996-04-07)

line eater
[messaging] 1. A {bug} in some now-obsolete versions of the {Usenet} software that used to eat up to {BUFSIZ} bytes of the article text. The bug was triggered by having the text of the article start with a space or tab. This bug was quickly personified as a mythical creature called the "line eater", and postings often included a dummy line of "line eater food". Ironically, line eater "food" not beginning with a space or tab wasn't actually eaten, since the bug was avoided; but if there *was* a space or tab before it, then the line eater would eat the food *and* the beginning of the text it was supposed to be protecting. The practice of "sacrificing to the line eater" continued for some time after the bug had been {nailed to the wall}, and is still humorously referred to. The bug itself is still (in mid-1991) occasionally reported to be lurking in some mail-to-netnews {gateways}.
2. {NSA line eater}.
(1996-04-09)

line editor
[tool, text] An early kind of {text editor} suited to use on a {teletype}. The user enters editing commands which apply to the current line or some given range of lines. These include moving forward and backward through the buffer, inserting and deleting lines, substituting a string for a pattern match, and printing lines. Visual feedback is restricted to explicitly requesting the display of one or more lines, in contrast to a {screen editor}.
{ed} is {Unix}'s line editor.
(1999-03-01)

line feed
[character] (LF, control-J, {ASCII} 10) The {ASCII} character meaning move the {cursor} down to the same column on the next line. Originally this would have been done by "feeding" paper through the printer.
{Unix} uses line feed as its text line terminator ({newline} character).
(1997-07-14)

line noise
[communications] 1. Spurious characters due to electrical {noise} in a communications link, especially an {EIA-232} serial connection. Line noise may be induced by poor connections, interference or {crosstalk} from other circuits, electrical storms, {cosmic rays}, or (notionally) birds crapping on the phone wires.
2. Any chunk of data in a file or elsewhere that looks like the results of electrical line noise.
3. Text that is theoretically a readable text or program source but employs {syntax} so bizarre that it looks like line noise. Yes, there are languages this ugly. The canonical example is {TECO}, whose input syntax is often said to be indistinguishable from line noise. Other non-{WYSIWYG} editors, such as {Multics} "{qed}" and {Unix} "{ed}", in the hands of a real hacker, also qualify easily, as do deliberately {obfuscate}d languages such as {INTERCAL}.
[{Jargon File}]
(1994-12-22)

line printer
[printer] A {printer} that prints one entire line at a time. Print quality is low compared with a {laser printer}. Line printers typically use {sprocket feed} and wide fanfold paper.
Line printer speed is usually measured in lines per minute (lpm). 1200 lpm is a good rate for a line printer like a 3205 m5. 66 lines per page is typical, giving 18 pages per minute (ppm). This assumes all upper case, if a mixed case print train is used, throughput is halved. By comparison, a fast {laser printer} can output 100+ ppm
(1999-01-13)

line probing
A feature of some {V.34} {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)

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.
[{Jargon File}]
(1995-02-03)

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
Linear Graph Notation
(LGN) A linearised representation of {TCOL} trees.
[B.W. Leverett et al, "An Overview of the Production Quality Compiler-Compiler Projects", TR CMU-CS-79-105, Carnegie Mellon 1979].
(1995-01-23)

linear logic
[theory] A {logic} invented by Girard in 1987 that can be used in proofs related to resource usage.
{(http://www.brics.dk/LS/96/6/BRICS-LS-96-6/BRICS-LS-96-6.html)}.
[Wadler, P., "Is there a use for linear logic", ACM/IFIP PEPM Conference, 1991].
[Summary?]
(2003-05-02)

linear map
[mathematics] (Or "linear transformation") A {function} from a {vector space} to a vector space which respects the {additive} and {multiplicative} structures of the two: that is, for any two {vectors}, u, v, in the source vector space and any scalar, k, in the {field} over which it is a vector space, a linear map f satisfies f(u+kv) = f(u) + kf(v).
(1996-09-30)

linear programming
[application] A procedure for finding the maximum or minimum of a {linear function} where the arguments are subject to linear {constraint}s. The {simplex method} is one well known {algorithm}.
(1995-04-06)

linear space
[mathematics] A {vector space} where all {linear combinations} of elements are also elements of the space. This is easy for spaces of numbers but not for a space of functions. Roughly, this is to say that multiplication by numbers, and addition of elements is defined in the space.
(2000-03-10)

linear 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 Holmstrom'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)

lines of code
[programming, unit] (LOC) A common measure of the size or progress of a programming project. For example, one can describe a completed project as consisting of 100,000 LOC; or one can characterise a week's progress as 5000 LOC.
Using LOC as a metric of progress encourages programmers to {reinvent the wheel} or split their code into lots of short lines.
(2001-05-28)

lines per minute
[unit] (lpm) A unit used to measure {line printer} throughput.
(1999-01-13)

lingo
Lingo
An animation scripting language.
[MacroMind Director V3.0 Interactivity Manual, MacroMind 1991].

lingol
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
Link Access Procedure on the D channel
(LAPD) (Q.921). An {Integrated Services Digital Network} {data link layer} protocol.

link access protocol balanced
Link Access Protocol Balanced
[protocol] (LAPB) {X.25} layer 2 ({data link layer}) {protocol}.
[Details?]
(1996-01-22)

link access protocol for modems
Link Access Protocol for Modems
(LAPM) The {Automatic Repeat Request} system used in the {V.42} {protocol}.

link control 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 farm
[file system, Unix] A directory tree that contains mostly {symbolic links} to files in a master directory tree of files. Link farms save space when one is maintaining several nearly identical copies of the same source tree - for example, when the only difference is architecture-dependent object files. They also mean that changes to the master tree are instantly visible in the link farm. Good {text editors} provide the option to replace a link with a new version of the target file when saving thus allowing the farm to have its own versions of just those files that differ from the master tree.
E.g. "Let's freeze the source and then rebuild the FROBOZZ-3 and FROBOZZ-4 link farms."
Link farms may also be used to get around restrictions on the number of "-I" (include-file directory) arguments on older C preprocessors. However, they can also get completely out of hand, becoming the file system equivalent of {spaghetti code}.
[{Jargon File}]
(2001-02-08)

link loader
{linker}

link rot
[World-Wide Web] The process by which links on a {web page} became unusable as the pages they point to change location or are removed.
(1997-03-29)

link state routing protocol
Link State Routing Protocol
[networking, communications] A {routing} {protocol} such as {OSPF} which permits routers to exchange information with one another about the reachability of other networks and the cost or metric to reach the other networks.
The cost/metric is based on number of {hops}, link speeds, traffic congestion, and other factors as determined by the network designer. Link state routers use {Dijkstra's algorithm} to calculate shortest (lowest cost) paths, and normally update other routers with whom they are connected only when their own routing tables change.
Link state routing is an improvement over {distance-vector routing} protocols such as {RIP} which normally use only a single metric (such as hop count) and which exchange all of their table information with all other routers on a regular schedule. Link state routing normally requires more processing but less transmission overhead.
(2000-03-14)

linkage editor
{linker}

linkdead
link-dead
Said of a {MUD} character who has frozen in place because of a dropped network connection.
[{Jargon File}]
(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
[programming, tool] (linkage editor, link loader) A program that combines one or more files containing {object code} from separately compiled program {modules} into a single file containing loadable or executable code
This process involves resolving references between the {modules} and fixing the {relocation} information used by the operating system {kernel} when loading the file into memory to run it.
Under {Unix}, the linker is called "ld" and {object files} have filename extension .o (object), .so (shared object), or .lib ({library}), and the resulting {executable} is called "a.out" by default.
(2001-10-13)

links
{link}

linpack
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}.
[{Jargon File}]
(1994-11-14)

linux
Linux
[operating system] ("Linus Unix") /li'nuks/ (but see below) An implementation of the {Unix} {kernel} originally written from scratch with no proprietary code.
The kernel runs on {Intel} and {Alpha} hardware in the general release, with {SPARC}, {PowerPC}, {MIPS}, {ARM}, {Amiga}, {Atari}, and {SGI} in active development. The SPARC, PowerPC, ARM, {PowerMAC} - {OSF}, and 68k ports all support {shells}, {X} and {networking}. The Intel and SPARC versions have reliable {symmetric multiprocessing}.
Work on the kernel is coordinated by Linus Torvalds, who holds the copyright on a large part of it. The rest of the copyright is held by a large number of other contributors (or their employers). Regardless of the copyright ownerships, the kernel as a whole is available under the {GNU} {General Public License}. The GNU project supports Linux as its kernel until the research {Hurd} kernel is completed.
This kernel would be no use without {application programs}. The GNU project has provided large numbers of quality tools, and together with other {public domain} software it is a rich Unix environment. A compilation of the Linux kernel and these tools is known as a Linux distribution. Compatibility modules and/or {emulators} exist for dozens of other computing environments.
The kernel version numbers are significant: the odd numbered series (e.g. 1.3.xx) is the development (or beta) kernel which evolves very quickly. Stable (or release) kernels have even major version numbers (e.g. 1.2.xx).
There is a lot of commercial support for and use of Linux, both by hardware companies such as {Digital}, {IBM}, and {Apple} and numerous smaller network and integration specialists. There are many commercially supported distributions which are generally entirely under the GPL. At least one distribution vendor guarantees {Posix} compliance. Linux is particularly popular for {Internet Service Providers}, and there are ports to both parallel supercomputers and {embedded} {microcontrollers}. {Debian} is one popular {open source} distribution.
The pronunciation of "Linux" has been a matter of much debate. Many, including Torvalds, insist on the short I pronunciation /li'nuks/ because "Linus" has an /ee/ sound in Swedish (Linus's family is part of Finland's 6% ethnic-Swedish minority) and Linus considers English short /i/ to be closer to /ee/ than English long /i:/ dipthong. This is consistent with the short I in words like "linen". This doesn't stop others demanding a long I /li:'nuks/ following the english pronunciation of "Linus" and "minus". Others say /li'niks/ following {Minix}, which Torvalds was working on before Linux.
{More on pronunciation (http://www.foldoc.org/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/)}.
(2000-06-09)

linux documentation project
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
Linux Network Administrators' Guide
(NAG) A book on setting up and running {Unix} networks. NAG is freely available in electronic form. It was produced by Olaf Kirch, [okir@monad.swb.de] and others as part of the {Linux Documentation Project} with help from {O'Reilly and Associates}.
It includes the following sections: Introduction to Networking, Issues of {TCP/IP} Networking, Configuring the Networking Hardware, Setting up the Serial Hardware, Configuring TCP/IP Networking, {Name Service} and {Resolver} Configuraton, {Serial Line IP}, The {Point-to-Point Protocol}, Various Network Applications, The {Network Information System}, The {Network File System}, Managing {Taylor UUCP}, {Electronic Mail}, Getting {smail} Up and Running, {Sendmail+IDA}, {Netnews}, {C} News, A Description of NNTP, Newsreader Configuration, Glossary, Annotated Bibliography.
{FTP from UNC (ftp://sunsite.unc.edu/pub/Linux/docs/LDP)}. {FTP from MIT (ftp://tsx-11.mit.edu/pub/linux/docs/LDP)}.
(1994-12-01)

linux user group
Linux User Group
[body, Linux] (LUG) Any organisation of {Linux} users in a local area, university, etc., that offers mutual technical support, companionship with people of similar interests, and promotes the use of Linux among computer users generally.
LUGs often hold Install Fests for the general public, in which experienced Linux users explain and supervise the installation of Linux on new users' systems.
(2003-09-14)

lion food
[humour] (IBM) Middle management or HQ staff, or, by extension, administrative drones in general. The term derives from an old joke:
Two lions escape from the zoo and split up to increase their chances. When they finally meet after two months, one is skinny and the other overweight. The thin one says, "How did you manage? I ate a human just once and they turned out a small army to chase me with guns and nets, it was terrible. Since then I've been reduced to eating mice, insects, even grass." The fat one replies: "Well, *I* hid near an IBM office and ate a manager every day. Nobody even noticed!"
[{Jargon File}]
(1994-12-01)

lions book
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].
[{Jargon File}]
(1997-06-25)

lipl
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
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
LISA
1. [computer] Local Integrated Software Architecture.
A {personal computer} introduced by {Apple Computer, Inc.} in 1983. The LISA was a predecessor of the {Macintosh} and was the first personal computer on the market with a {graphical user interface}.
It was origionally named after {Steve Jobs}'s daughter. The acronym was applied later.
[Spec?]
2. [tool] A system for statistical data analysis, similar to {S}.
{FTP MIT (ftp://dolphin.mit.edu/)}.
3. [event] {Large Installation Systems Administration}.
(2001-10-16)

liskov substitution principle
Liskov substitution principle
[programming, theory] (LSP) The principle that {object-oriented} {functions} that use {pointers} or references to a {base class} must be able to use {objects} of a {derived class} without knowing it.
Barbara Liskov first wrote it as follows: If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behaviour of P is unchanged when o1 is substituted for o2 then S is a {subtype} of T.
A function that violates the LSP uses a reference to a base class and must know about all the derivatives of that base class. Such a function violates the {open/closed principle} because it must be modified whenever a new derivative of the base class is created.
[Liskov, B. Data Abstraction and Hierarchy, SIGPLAN Notices. 23(5), May 1988].
(2001-09-14)

lisp
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}.
[{Jargon File}]
(1995-04-16)

lisp
*LISP
(StarLISP) A {data-parallel} extension of {Common LISP} for the {Connection Machine}, uses "{pvars}".
{A *LISP simulator (ftp://think.com/public/starsim-f19-sharfile)}.
E-mail: [customer-support@think.com], [documentation-order@think.com].
[Cliff Lasser, Jeff Mincy, J.P. Massar, Thinking Machines Corporation "The Essential *LISP Manual", TM Corp 1986].
[{Jargon File}]

lisp 1
LISP 1
The original {Lisp}. Invented by John McCarthy et al at {MIT} in the late 50's. Followed by {LISP 1.5}.

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

lisp a
LISP A
"LISP A: A LISP-like System for Incremental Computing", E.J. Sandewall, Proc SJCC 32 (1968).

lisp extended algebraic facility
LISP Extended Algebraic Facility
[language] (LEAF)
["An Algebraic Extension to LISP", P.H. Knowlton, Proc FJCC 35 1969].
(1996-06-07)

lisp machine
Lisp Machine
1. [architecture] Any {machine} (whether notional or actual) whose instruction set is {Lisp}.
2. [hardware, operating system] A line of {workstations} made by {Symbolics, Inc.} from the mid-1970s (having grown out of the {MIT AI Lab}) to late 1980s. All system code for Symbolics Lisp Machines was written in {Lisp Machine Lisp}. Symbolics Lisp Machines were also notable for having had {space-cadet keyboards}.
[More details and historical background?]
{Lisp Machine Museum
(http://kogs-www.informatik.uni-hamburg.de/~moeller/symbolics-info/symbolics.html)}.
(2003-07-03)

lisp machine lisp
LISP Machine LISP
[language] An extension of {Maclisp}, now called {Zetalisp}.
(1998-12-13)

lisp objectoriented programming system
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
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).

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

lispkit
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
Lispkit Lisp
Purely functional version of LISP. "Functional Programming, Application and Implementation", P. Henderson, P-H 1980.

lisplinda
Lisp-Linda
P. Dourish, U Edinburgh 1988.

lisptalk
Lisptalk
"Concurrent Programming Language Lisptalk", C. Li, SIGPLAN Notices 23(4):71-80 (Apr 1988).

lispview
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
List Enhanced
[operating system, tool] An {MS-DOS} file browsing utility written by Vern Buerg in 1983. A former {mainframe} systems programmer, Buerg wrote DOS utilities when he began using an {IBM PC} and missed the file-scanning ability he had on mainframes. The software became an instant success, and his list utility was in use on an estimated 5 million PCs.
{shareware version (http://buerg.com/ftp.html)}.
(1997-05-16)

listless
[programming] In {functional programming}, a property of a {function} which allows it to be combined with other functions in a way that eliminates intermediate data structures, especially lists.
{Phil Wadler}'s thesis gives the conditions for a function to be in listless form: each input list is traversed only once, one element at a time, from left to right. Each output list is generated once, one element at a time, from left to right. No other lists are generated or traversed.
Not all functions can be expressed in listless form (e.g. reverse).
(1995-02-22)

listproc
Listproc
A {mailing list} processor owned and developed by {BITNET} which runs under {Unix}.
See also {Listserv}, {Majordomo}.
[Details?]
(1995-02-22)

lists
{list}

listserv
Listserv
[messaging] An automatic {mailing list} server, initially written to run under {IBM}'s {VM} {operating system} by Eric Thomas.
Listserv is a {user name} on some computers on {BITNET}/{EARN} which processes {electronic mail} requests for addition to or deletion from mailing lists. Examples are listserv@ucsd.edu, listserver@nysernet.org.
Some listservs provide other facilities such as retrieving files from {archives} and {database} search. Full details of available services can usually be obtained by sending a message with the word HELP in the subject and body to the listserv address.
Eric Thomas, has recently formed an international corporation, L-Soft, and has ported Listserv to a number of other {platforms} including {Unix}. Listserv has simultaneously been enhanced to use both the {Internet} and {BITNET}.
Two other major {mailing list} processors, both of which run under {Unix}, are {Majordomo}, a {freeware} system, and {Listproc}, currently owned and developed by {BITNET}.
(1995-02-22)

liszt
Liszt
A {Franz Lisp} compiler in {C} which emits {C}, by Jeff W. Dalton [jeff@festival.ed.ac.uk].
Mailing list: franz-friends-request@berkeley.edu.
(1994-10-20)

lite
[spelling] (Misspelling of "light", when used to mean "lightweight") A suffix denoting a scaled-down or crippled product, often designed to be distributed without charge, e.g. on a magazine {coverdisk}. An example is {pklite}.
(1995-10-06)

literal
[programming] A constant made available to a process, by inclusion in the executable text. Most modern systems do not allow texts to modify themselves during execution, so literals are indeed constant; their value is written at compile-time and is read-only at run time.
In contrast, values placed in variables or files and accessed by the process via a symbolic name, can be changed during execution. This may be an asset. For example, messages can be given in a choice of languages by placing the translation in a file.
Literals are used when such modification is not desired. The name of the file mentioned above (not its content), or a physical constant such as 3.14159, might be coded as a literal. Literals can be accessed quickly, a potential advantage of their use.
(1996-01-23)

literate programming
[programming, text] Combining the use of a {text formatting} language such as {TeX} and a conventional programming language so as to maintain {documentation} and {source code} together.
Literate programming may use the {inverse comment convention}.
{Perl}'s literate programming system is called {pod}.
(2003-09-24)

literature
The literature. Computer-science journals and other publications, vaguely gestured at to answer a question that the speaker believes is trivial. Thus, one might answer an annoying question by saying "It's in the literature." Oppose {Knuth}, which has no connotation of triviality.
(1994-11-04)

lithe
LITHE
Object-oriented with extensible syntax.
"LITHE: A Language Combining a Flexible Syntax and Classes", D. Sandberg, Conf Rec 9th Ann ACM Sym POPL, ACM 1982, pp.142-145.

lithium lick
{NeXT} employees who have had too much attention from their esteemed founder, {Steve Jobs}, are said to have "lithium lick" when they begin to show signs of Jobsian fervour and repeat the most recent catch phrases in normal conversation, e.g. "It just works, right out of the box!"
[{Jargon File}]

litprog
LitProg
{literate programming}

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

littleendian
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}.
[{Jargon File}]
(1995-08-16)

live data
1. Data that is written to be interpreted and takes over program flow when triggered by some un-obvious operation, such as viewing it. One use of such hacks is to break security. For example, some smart terminals have commands that allow one to download strings to program keys; this can be used to write live data that, when listed to the terminal, infects it with a security-breaking {virus} that is triggered the next time a hapless user strikes that key. For another, there are some well-known bugs in {vi} that allow certain texts to send arbitrary commands back to the machine when they are simply viewed.
2. In {C}, data that includes pointers to functions (executable code).
3. An object, such as a {trampoline}, that is constructed on the fly by a program and intended to be executed as code.
4. Actual real-world data, as opposed to "test data". For example, "I think I have the record deletion module finished." "Have you tried it out on live data?" This usage usually carries the connotation that live data is more fragile and must not be corrupted, or bad things will happen. So a more appropriate response to the above claim might be: "Well, make sure it works perfectly before we throw live data at it." The implication here is that record deletion is something pretty significant, and a haywire record-deletion module running amok on live data would probably cause great harm.
[{Jargon File}]

live free or die
Live Free Or Die!
1. The state motto of New Hampshire, which appears on that state's automobile licence plates.
2. A slogan associated with Unix in the romantic days when Unix aficionados saw themselves as a tiny, beleaguered underground tilting against the windmills of industry. The "free" referred specifically to freedom from the {fascist} design philosophies and crufty misfeatures common on commercial operating systems. Armando Stettner, one of the early Unix developers, used to give out fake licence plates bearing this motto under a large Unix, all in New Hampshire colours of green and white. These are now valued collector's items.

livelock
[parallel] /li:v'lok/ When two or more processes continuously change their state in response to changes in the other process(es) without doing any useful work.
This is similar to {deadlock} in that no progress is made but differs in that neither process is blocked or waiting for anything.
A human example of livelock would be two people who meet face-to-face in a corridor and each moves aside to let the other pass, but they end up swaying from side to side without making any progress because they always move the same way at the same time.
[{Jargon File}]
(1998-07-05)

livescript
LiveScript
{JavaScript}

liveware
/li:v'weir/ 1. A less common synonym for {wetware}
2. (Cambridge) Vermin. "Waiter, there's some liveware in my salad."
[{Jargon File}]
(1995-10-30)

lk
[networking] The {country code} for Sri Lanka.
(1999-01-27)

ll
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
LLC
{Logical Link Control}

llgen
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
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
LLNL
{Lawrence Livermore National Laboratory}

llp
LLP
{Lower Layer Protocol}

lm3
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
LMAO
[chat] laughed my ass off. Seen on {Compuserve}.
(1996-02-04)

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

lmprolog
LM-Prolog
Lisp Machine Prolog.
A {Prolog} {interpreter} in {Zetalisp} for the {Lisp Machine} developed by Ken Kahn and Mats Carlsson in 1983.
{(ftp://sics.se/archive/lm-prolog.tar.Z)}.
["LM-Prolog User Manual", M. Carlsson et al, Uppsala Dec 1983].
(1994-12-14)

lmtp
LMTP
{Local Mail Transfer Protocol}

lnf
LNF
["A Fully Lazy Higher Order Purely Functional Programming Language With Reduction Semantics", K.L. Greene, CASE Center TR 8503, Syracuse U 1985].

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

lo
L&O
Logic and Objects. A front end for {IC Prolog}.

{(ftp://src.doc.ic.ac.uk/computing/programming/languages/pd-ICP-0,90.tar.Z)}. E-mail: Zacharias Bobolakis [zb@doc.ic.ac.uk].
["Logic and Objects", Frank McCabe, Prentice-Hall].

load
1. To copy {data} (often {program} {code} to be {run}) into {memory}, possibly {parsing} it somehow in the process. E.g. "{WordPerfect} can't load this {RTF} file - are you sure it didn't get corrupted in the {download}?" Opposite of {save}.
2. The degree to which a computer, {network}, or other resource is used, sometimes expressed as a percentage of the maximum available. E.g. "What kind of CPU load does that program give?", "The network's constantly running at 100% load". Sometimes used, by extension, to mean "to increase the level of use of a resource". E.g. "Loading a spreadsheet really loads the CPU". See also: {load balancing}.
3. To {install} a piece of {software} onto a system. E.g. "The computer guy is gonna come load Excel on my laptop for me". This usage is widely considered to be incorrect.
(2002-07-02)

load balancing
[operating system, parallel] Techniques which aim to spread tasks among the processors in a {parallel processor} to avoid some processors being idle while others have tasks queueing for execution. Load balancing may be performed either by heavily loaded processors (with many tasks in their queues) sending tasks to other processors; by idle processors requesting work from others; by some centralised task distribution mechanism; or some combination of these. Some systems allow tasks to be moved after they have started executing ("{task migration}") others do not. It is important that the {overhead} of executing the load balancing {algorithm} does not contribute significantly to the overall processing or communications load.
Distributed scheduling {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.
[{Jargon File}]

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

local echo
[communications] (Obsolete: "{half-duplex}") A mode of operation of a communications program or device in which it displays the characters the user enters at the same time as it sends them to the remote system.
In communications between computers or computing processes, particularly those involving human keyboarding and/or reading, duplex came to mean the re-transmission of a keyboard character to the output display.
Early input device such as the Teletype {ASR-33} {teleprinter}, being descended from the electric typewriter, printed all input characters as they were typed (i.e. they did local echo). Local echo was typically optional on the {video terminals} that replaced them, and usually disabled in favour of {remote echo}. A disadvantage of local echo is that it will continue, even when the communication circuit has failed, which can be misleading.
(2000-03-30)

local exchange carrier
[communications] (LEC) A company allowed to handle local calls following the break-up of the Bell system in the US by anti-trust regulators. These vary from Regional Bell Operating Companies (RBOC) through to small independents such as Farmers Cooperative.
Local exchange carriers are not allowed to handle long-distance traffic. This is handled by inter-exchange carriers (IXC) who are not allowed to handle local calls.
(2002-08-28)

local loop
[communications] The circuits between a telephone subscriber's residence or business and the switching equipment at the local {central office}.
(1995-03-17)

local loopback addresses
The special {Internet address}, 127.0.0.1, defined by the {Internet Protocol}. A {host} can use local the loopback address to send messages to itself.
(1995-03-21)

local mail transfer protocol
Local Mail Transfer Protocol
[messaging, protocol] (LMTP) A {protocol} designed as an alternative to {ESMTP} for cases where the mail receiver does not manage a queue. LMTP is an {application level} {protocol} that runs on top of {TCP/IP}. It was initially defined in {RFC 2033}, and uses (with a few changes) the syntax and semantics of {ESMTP}. It should be used only by specific prior arrangement and configuration, and it must not be used on TCP {port} 25 (the {SMTP} port).
(2002-03-09)

local shared resources
Local Shared Resources
[operating system] (LSR) A way of controlling {VSAM} buffers in {OS/390}.
(2002-02-17)

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)

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
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).
[{Jargon File}]

locked up
Synonym for {hung}, {wedged}.

lockin
lock-in
[standard] When an existing standard becomes almost impossible to supersede because of the cost or logistical difficulties involved in convincing all its users to switch something different and, typically, {incompatible}.
The common implication is that the existing standard is notably inferior to other comparable standards developed before or since.
Things which have been accused of benefiting from lock-in in the absence of being truly worthwhile include: the {QWERTY} keyboard; any well-known {operating system} or programming language you don't like (e.g., see "{Unix conspiracy}"); every product ever made by {Microsoft Corporation}; and most currently deployed formats for transmitting or storing data of any kind (especially the {Internet Protocol}, 7-bit (or even 8-bit) {character sets}, analog video or audio broadcast formats and nearly any file format).
Because of {network effects} outside of just computer networks, {Real World} examples of lock-in include the current spelling conventions for writing English (or French, Japanese, Hebrew, Arabic, etc.); the design of American money; the imperial (feet, inches, ounces, etc.) system of measurement; and the various and anachronistic aspects of the internal organisation of any government (e.g., the American Electoral College).
(1998-01-15)

locus
Locus
A distributed system project supporting transparent access to data through a network-wide file system.

loebner prize
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}
["{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
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)

logic bomb
[programming, security] Code surreptitiously inserted into an application or {operating system} that causes it to perform some destructive or security-compromising activity whenever specified conditions are met.
Compare {back door}.
[{Jargon File}]
(1996-07-02)

logic design language
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
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
Logic Replacement Technology
(LRT) Reading, BERKS. Tel: (0734) 751087. Marketing Director Bob Barrett. Manufacturers of the Ethernet hardware including the Filtabyte Ethernet controller card and EtherGate open access gateway.

logic variable
[programming] A variable in a {logic programming} language which is initially undefined ("unbound") but may get bound to a value or another logic variable during {unification} of the containing clause with the current {goal}. The value to which it is bound may contain other variables which may themselves be bound or unbound.
For example, when unifying the clause
sad(X) :- computer(X, ibmpc).
with the goal
sad(billgates).
the variable X will become bound to the atom "billgates" yielding the new subgoal "computer(billgates, ibmpc)".
(1995-03-14)

logical
(From the technical term "logical device", wherein a physical device is referred to by an arbitrary "logical" name) Having the role of. If a person (say, Les Earnest at SAIL) who had long held a certain post left and were replaced, the replacement would for a while be known as the "logical" Les Earnest. (This does not imply any judgment on the replacement).
Compare {virtual}.
At Stanford, "logical" compass directions denote a coordinate system in which "logical north" is toward San Francisco, "logical west" is toward the ocean, etc., even though logical north varies between physical (true) north near San Francisco and physical west near San Jose. (The best rule of thumb here is that, by definition, El Camino Real always runs logical north-and-south.) In giving directions, one might say: "To get to Rincon Tarasco restaurant, get onto {El Camino Bignum} going logical north." Using the word "logical" helps to prevent the recipient from worrying about that the fact that the sun is setting almost directly in front of him. The concept is reinforced by North American highways which are almost, but not quite, consistently labelled with logical rather than physical directions.
A similar situation exists at MIT: Route 128 (famous for the electronics industry that has grown up along it) is a 3-quarters circle surrounding Boston at a radius of 10 miles, terminating near the coastline at each end. It would be most precise to describe the two directions along this highway as "clockwise" and "counterclockwise", but the road signs all say "north" and "south", respectively. A hacker might describe these directions as "logical north" and "logical south", to indicate that they are conventional directions not corresponding to the usual denotation for those words. (If you went logical south along the entire length of route 128, you would start out going northwest, curve around to the south, and finish headed due east, passing along one infamous stretch of pavement that is simultaneously route 128 south and Interstate 93 north, and is signed as such!)
[{Jargon File}]
(1995-01-24)

logical address
{virtual address}

logical block addressing
Logical Block Addressing
[storage] (LBA) A {hard disk} {sector} addressing scheme used on all {SCSI} hard disks, and on {ATA-2} conforming {IDE} hard disks. The addressing conversion is performed by the hard disk firmware.
Prior to LBA, combined limitations of {IBM PC} {BIOS} and {ATA} restricted the useful capacity of IDE hard disks on IBM PCs and compatibles to 1024 cylinders * 63 sectors per track * 16 heads * 512 bytes per sector = 528 million bytes = 504 megabytes. Modern BIOSes select LBA mode automatically, and work around the 1024-cylinder BIOS limit by representing a hard disk to the OS as having e.g. half as many cylinders and twice as many heads. However, there is still an unbreakable BIOS disk size limit of 1024 cylinders * 63 sectors per track * 256 heads * 512 bytes per sector = 8 gigabytes, but modern OSes (including {Windows 9x}, {Windows NT} and {Linux}) are not affected by it, since they issue direct LBA-based calls, bypassing the BIOS hard disk services completely.
(2000-04-30)

logical complement
[logic] In {Boolean algebra}, the logical complement or negation of a Boolean value is the opposite value, given by the following {truth table}:
A | -A --+--- T | F F | T
-A is also written as A with a bar over it or with a small vertical line hanging from the right-hand end of the "-" ({LaTeX} \neg) or as A'. In the {C} programming language, it is !A and in digital circuit design, /A.
(1995-01-24)

logical link control
Logical Link Control
[networking] (LLC) The upper portion of the {data link layer}, as defined in {IEEE 802.2}. The LLC sublayer presents a uniform interface to the user of the data link service, usually the {network layer}. Beneath the LLC sublayer is the {Media Access Control} (MAC) sublayer.
(1995-02-14)

logical link control and adaptation protocol
Logical Link Control and Adaptation Protocol
[protocol] (L2CAP) A {Bluetooth} {protocol} in the {Core Protocol Stack} providing data services to higher layer Bluetooth protocols.
{L2CAP Layer Tutorial (http://www.palowireless.com/infotooth/tutorial/l2cap.asp)}.
(2002-06-28)

logical relation
A {relation} R satisfying
f R g [=] For all a, b, a R b =] f a R g b
This definition, by Plotkin, can be used to extend the definition of a relation on the types of a and b to a relation on functions.

logical shift
[programming] (Either shift left logical or shift right logical) Machine-level operations available on nearly all processors which move each bit in a word one or more bit positions in the given direction. A left shift moves the bits to more significant positions (like multiplying by two), a right shift moves them to less significant positions (like dividing by two). The comparison with multiplication and division breaks down in certain circumstances - a logical shift may discard bits that are shifted off either end of the word and does not preserve the sign of the word (positive or negative).
Logical shift is approriate when treating the word as a {bit string} or a sequence of {bit fields}, whereas {arithmetic shift} is appropriate when treating it as a binary number. The word to be shifted is usually stored in a {register}, or possibly in memory.
(1996-07-02)

logical shift left
{logical shift}

logical shift right
{logical shift}

logical unit
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 62
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
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)

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

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

loglan88
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
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
LOGO
[language, education] A {Lisp}-like language for teaching programming, noted for its "turtle graphics" used to draw geometric shapes. LOGO was developed in 1966-1968 by a group at {Bolt, Beranek & Newman} headed by Wally Fuerzeig [fuerzeig@bbn.com] and including Seymour Papert [seymour@media.mit.edu].
There are Logo {interpreters} for {Macintosh}, {Unix}, {IBM PC}, {X Window System}, and many PCs. Implmentations include {Berkeley Logo}, {MswLogo}.
(2000-03-28)

logol
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
Lojban
{Loglan}

lol
LOL
[chat] "laughing out loud", or "lots of love" or "luck".
(2003-07-29)

lolita
LOLITA
{Language for the On-Line Investigation and Transformation of Abstractions}

lolli
Lolli
[language] (Named after the "lollipop" operator "-o") An {interpreter} for {logic programming} based on {linear logic}, written by Josh Hodas [hodas@saul.cis.upenn.edu].
Lolli can be viewed as a refinement of the {Hereditary Harrop formulas} of {Lambda-Prolog}. All the operators (though not the {higher order unification}) of Lambda-Prolog are supported, but with the addition of linear variations. Thus a Lolli program distinguishes between clauses which can be used as many, or as few, times as desired, and those that must be used exactly once. Lolli is implemented in {SML/NJ}.
{(ftp://ftp.cis.upenn.edu/pub/Lolli/Lolli-0.7.tar.Z)}.
[Josh Hodas et al, "Logic Programming in a Fragment of Intuitionistic Linear Logic", Information and Computation, to appear].
(1992-11-18)

lom
LOM
[language] A programming language developed in Toulouse in the early 1980s for {data processing}.
(1996-03-01)

longitudinal parity
[storage, communications] An extra {byte} (or word) appended to a block of data in order to reveal corruption of the data. Bit n of this byte indicates whether there was an even or odd number of "1" bits in bit position n of the bytes in the block. The parity byte is computed by {XOR}ing the data bytes in the block. Longitudinal parity allows single bit errors to be detected.
(1996-03-01)

longitudinal redundancy check
Longitudinal Redundancy Check
[storage, communications] (LRC, Block Redundancy Check) An {error checking} method that generates a {longitudinal parity} {byte} from a specified {string} or block of {bytes} on a longitudinal track.
The longitudinal parity byte is created by placing individual bytes of a string in a two-dimensional {array} and performing a {Vertical Redundancy Check} vertically and horizontally on the array, creating an extra byte. This is an improvement over the VRC because it will catch an odd number of errors in the individual characters of the string.
(2001-04-28)

look
LOOK
A specification language.
["A Look at Algebraic Specifications", S.N. Zilles et al, IBM RR, 1982].
(1994-11-16)

look ahead lefttoright parse rightmostderivation
Look Ahead Left-to-right parse, Rightmost-derivation
[parsing, algorithm] (LALR, Look ahead LR) A type of {LR parser} that can deal with more {context-free grammars} than {SLR parsers} but less than {LR[1]} parsers. LALR parsers are popular because they give a good trade-off between the number of grammars they can deal with and the size of the parsing table required. Compiler compilers like {yacc} and {Bison} generate LALR parsers.
{Wikipedia (http://www.wikipedia.org/wiki/LALR_parser)}.
(2003-05-13)

look ahead lr
Look ahead LR
{Look Ahead Left-to-right parse, Rightmost-derivation}

look and feel
[operating system] The appearance and function of a program's {user interface}. The term is most often applied to {graphical user 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
Looking Glass
A {desktop} manager for {Unix} from {Visix}.

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

loop through
To process each element of a list of things. "Hold on, I've got to loop through my paper mail." Derives from the computer-language notion of an iterative loop; compare "cdr down" (under {cdr}), which is less common among C and Unix programmers. ITS hackers used to say "IRP over" after an obscure pseudo-op in the MIDAS PDP-10 assembler.
[{Jargon File}]

loopn
LOOPN
[language, simulation, Petri net] A {compiler}, {simulator}, and associated {source} control for an {object-oriented} {Petri net} language developed by Charles Lakos [Charles.Lakos@adelaide.edu.au] at the {University of Tasmania}. In LOOPN, a Petri net is an extension of a {coloured timed Petri net}. The extension means firstly that token types are {class}es. In other words, they consist of both data fields and functions, they can be declared by inheriting from other token types, and they can be used {polymorphic}ally. The object-oriented extensions also mean that module or subnet types are classes.
LOOPN has been developed over a period of about five years at the University of Tasmania, where it has been used in teaching computer simulation and the modelling of {network} {protocols}.
{(ftp://ftp.cs.adelaide.edu.au/pub/OPN/loopn/)}.
(2000-09-02)

loops
LOOPS
{Lisp Object-oriented Programming System}

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
LOP
A language based on {first-order logic}.
["SETHEO - A High-Perormance Theorem Prover for First-Order Logic", Reinhold Letz et al, J Automated Reasoning 8(2):183-212 (1992)].

lord high fixer
[Primarily British, from Gilbert & Sullivan's "Lord High Executioner"] The person in an organisation who knows the most about some aspect of a system. See {wizard}.
[{Jargon File}]

lore
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
Lorem ipsum
[text] (Or "{greek}", "greeking", "greeked text") A common piece of text used as mock-{content} when testing a given page layout or {font}. The most common bit of greek 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 denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?
On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business 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.
(2000-04-03)

lorenz attractor
Lorenz attractor
[mathematics] (After {Edward Lorenz}, its discoverer) A region in the {phase space} of the solution to certain systems of (non-linear) {differential equations}. Under certain conditions, the motion of a particle described by such as system will neither converge to a steady state nor diverge to infinity, but will stay in a bounded but chaotically defined region. By {chaotic}, we mean that the particle's location, while definitely in the attractor, might as well be randomly placed there. That is, the particle appears to move randomly, and yet obeys a deeper order, since is never leaves the attractor.
Lorenz modelled the location of a particle moving subject to atmospheric forces and obtained a certain system of {ordinary differential equations}. When he solved the system numerically, he found that his particle moved wildly and apparently randomly. After a while, though, he found that while the momentary behaviour of the particle was chaotic, the general pattern of an attractor appeared. In his case, the pattern was the butterfly shaped attractor now known as the {Lorenz attractor}.
(1996-01-13)

loria
LORIA
{INRIA}

lose
[jargon] ({MIT}) 1. To fail. A program loses when it encounters an exceptional condition or fails to work in the expected manner.
2. To be exceptionally unesthetic or crocky.
3. Of people, to be obnoxious or unusually stupid (as opposed to ignorant).
4. Refers to something that is {losing}, especially in the phrases "That's a lose!" and "What a lose!"
[{Jargon File}]
(1995-04-19)

loser
[jargon] An unexpectedly bad situation, program, programmer, or person. Someone who habitually loses. (Even winners can lose occasionally). Someone who knows not and knows not that he knows not. Emphatic forms are "real loser", "total loser", and "complete loser" (but not **"moby loser", which would be a contradiction in terms).
See {luser}.
[{Jargon File}]
(1995-04-19)

losing
[jargon] Said of anything that is or causes a {lose} or {lossage}.
[{Jargon File}]

loss
[jargon] Something (not a person) that loses; a situation in which something is losing. Emphatic forms include "moby loss", and "total loss", "complete loss". Common interjections are "What a loss!" and "What a moby loss!" Note that "moby loss" is OK even though **"moby loser" is not used; applied to an abstract noun, moby is simply a magnifier, whereas when applied to a person it implies substance and has positive connotations.
Compare {lossage}.
(1995-04-19)

lossage
[jargon] /los'*j/ The result of a {bug} or malfunction. This is a mass or collective noun. "What a loss!" and "What lossage!" are nearly synonymous. The former is slightly more particular to the speaker's present circumstances; the latter implies a continuing {lose} of which the speaker is currently a victim. Thus (for example) a temporary hardware failure is a loss, but bugs in an important tool (like a compiler) are serious lossage.
[{Jargon File}]
(1995-04-19)

lossless
[algorithm, compression] A term describing a data {compression} {algorithm} which retains all the information in the data, allowing it to be recovered perfectly by decompression.
{Unix} {compress} and {GNU} {gzip} perform lossless compression.
Opposite: {lossy}.
(1995-03-29)

lossless audio compression
[audio, compression] Any kind of {audio compression} in which the original signal and the decoded signal are bitwise identical. Lossless audio compression algorithms are usually based on a data compression algorithm like {PKzip} or {gzip} but specialized for {PCM} audio data. The signal is divided into predictable {tonal} components and unpredictable noisy components. Tonal components are stored as coefficients of a predictor, the remaining signal is coded by a {Rice}, {Huffman}, or {arithmetic} coder.
(2001-12-24)

lossless predictive audio compression
Lossless Predictive Audio Compression
[audio, compression] (LPAC) A {lossless} {audio} {compression} {algorithm} with compression ratios from 1.5 to 4, depending on the input. Software is available for {Microsoft Windows}, {Linux} and {Solaris}. LPAC files (*.pac) can be played with a {Winamp} {plug-in}.
{Home (http://www-ft.ee.tu-berlin.de/~liebchen/lpac.html)}.
(2001-12-17)

lossy
[algorithm] A term describing a data {compression} {algorithm} which actually reduces the amount of information in the data, rather than just the number of bits used to represent that information. The lost information is usually removed because it is subjectively less important to the quality of the data (usually an {image} or {sound}) or because it can be recovered reasonably by {interpolation} from the remaining data.
{MPEG} and {JPEG} are examples of lossy compression techniques.
Opposite: {lossless}.
(1995-03-29)

lossy audio compression
[audio, compression] Any audio compression algorithm which does not retain every bit of data but only reproduces a signal that sounds more or less like the original. Examples are {MP1}, {MP2}, {MP3}, {AAC}.
(2001-12-24)

lost in the noise
Synonym {lost in the underflow}. This term is from signal processing, where signals of very small amplitude cannot be separated from low-intensity noise in the system. Though popular among hackers, it is not confined to hackerdom; physicists, engineers, astronomers, and statisticians all use it.
[{Jargon File}]

lost in the underflow
[jargon] Too small to be worth considering; more specifically, small beyond the limits of accuracy or measurement. This is a reference to "{floating point underflow}".
The {Hacker's Jargon File} claimed that it is also a pun on "undertow" (a kind of fast, cold current that sometimes runs just offshore and can be dangerous to swimmers).
"Well, sure, photon pressure from the stadium lights alters the path of a thrown baseball, but that effect gets lost in the underflow".
Compare {epsilon}, {epsilon squared}; see also {overflow bit}.
(1997-09-05)

lotis
LOTIS
LOgic, TIming, Sequencing. A language which describes a computer via its data flow.
[Sammet 1969, p. 620].

lotos
LOTOS
{Language Of Temporal Ordering Specification}

lots of mips but no io
lots of MIPS but no I/O
Used to describe a person who is technically brilliant but can't seem to communicate with human beings effectively. Technically it describes a machine that has lots of processing power but is bottlenecked on input-output (in 1991, the IBM Rios, a.k.a. RS/6000, is a notorious recent example).
[{Jargon File}]

lotus 123
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
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
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
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 x
Low Bandwidth X
[networking] (LBX) An implementation of the {X Window System} designed to improve performance over {ISDN}, {WAN}, and {serial lines}.
[Details?]
(2003-07-09)

low earth orbit
[communications] (LEO) The kind of orbit used by communications satellites that will offer high {bandwidth} for {video on demand}, television, and {Internet} communications. A satellite in LEO, in contrast to one in a {geostationary orbit}, is not in a fixed position relative to the Earth's surface so several satellites are required to provide continuous service.
[Ovum report, "Applications for the superhighway", John Moroney].
(1996-02-06)

low insertion force
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)

low pass filter
[electronics, graphics] A filter that attenuates high frequency components of a signal.
In {image processing}, a low pass filter might be used to remove {noise} from an {image}.
(2000-04-19)

low voltage differential
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)

lowbandwidth
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}.
[{Jargon File}]

lower layer protocol
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)

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

lowlevel language
low-level language
[language] Any {programming language} which either is {assembly language}, or which is meant to be closely related to, and easily translated into, {machine language}. Low-level languages lack the amenities of {high-level languages} but it may be possible to write more efficient code in them.
(2000-08-10)

lp mud
LP MUD
[games] A kind of player-programmable multi-user adventure game.
[More details?]
See {MUD}.

lp spooler
[printer] A {line printer} {spooler}.
(2000-04-03)

lpac
LPAC
1. [audio, compression] {Lossless Predictive Audio Compression}.
2. {London Parallel Applications Centre}.
(2001-12-17)

lpc
LPC
[language] A variant of {C} designed ca 1988 to program {LP MUD}s.
(1995-04-18)

lpf
LPF
{League for Programming Freedom}

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

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
LPS
Sets with restricted {universal quantifier}s.
["Logic Programming with Sets", G. Kuper, J Computer Sys Sci 41:44-64 (1990)].

lpt
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.
[{Jargon File}]

lr
[networking] The {country code} for Liberia.
(1999-01-27)

lrc
LRC
{Longitudinal Redundancy Check}

lrltran
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
LRU
{Least Recently Used}

ls
1. [file system, tool] The {Unix} command for listing a {directory}.
{Unix manual page}: ls(1).
2. [networking] The {country code} for Lesotho.
(2000-03-18)

lsa
LSA
{Link State Advertisement}

lsb
LSB
1. {Least Significant Bit}.
2. (Rarely) Least Significant Byte.

lse
LSE
{Language Sensitive Editor}

lsl
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
LSML
{Lazy Standard ML}

lsoft
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
LSP
{Label Switched Path}

lsr
LSR
1. [networking] {Label Switching Router}.
2. [operating system] {Local Shared Resources}.
(2002-02-17)

lssd
LSSD
{level-sensitive scan design}

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

lt2
LT-2
An early system on the {IBM 701}.
[Listed in CACM 2(5):16 (May 1959)].
(1995-01-31)

ltl
LTL
{Linear Temporal Logic}

ltr
LTR
Langage Temps-Reel.
(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
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)

lu62
LU6.2
{Logical Unit 6.2}

lub
{least upper bound}

lubarskys law of cybernetic entomology
Lubarsky's Law of Cybernetic Entomology
[humour] There is always one more {bug}.
[{Jargon File}]
(2001-07-12)

lucent technologies
Lucent Technologies
[company, telecommunications, Unix, C] The former systems and equipment portion of {AT&T} (including {Bell Laboratories}), split off in 1996.
{Home (http://www.lucent.com/)}.
(2002-06-23)

lucid
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
Lucid Emacs
{Xemacs}

lucinda
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
Lucy
[language] A {distributed} {constraint programming} language, which is an {actor} subset of {Janus}.
["Actors as a Special Case of Concurrent Constraint Programming", K. Kahn [kahn@parc.xerox.com] et al, SIGPLAN Notices 25(10):57-66 (OOPSLA/ ECOOP '90), Oct 1990].
(2001-03-04)

lug
LUG
{Linux User Group}

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
LUN
{Logical Unit Number}

lunatic fringe
[IBM] Customers who can be relied upon to accept release 1 versions of software.
[{Jargon File}]

lund simula
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
Lund Software House AB
[company] The company who produced {Lund Simula}.
Address: Box 7056, S-22007 Lund, Sweden.
(1995-03-29)

lurk
{lurking}

lurker
{lurking}

lurking
[messaging, jargon] The activity of one of the "silent majority" in a electronic forum such as {Usenet}; posting occasionally or not at all but reading the group's postings regularly. This term is not pejorative and indeed is casually used reflexively: "Oh, I'm just lurking". Often used in "the lurkers", the hypothetical audience for the group's {flamage}-emitting regulars.
Lurking and reading the {FAQ} are recommended {netiquette} for beginners who need to learn the history and practises of the group before posting.
(1997-06-14)

luser
[jargon, abuse] /loo'zr/ A {user}; especially one who is also a {loser}. ({luser} and {loser} are pronounced identically.) This word was coined around 1975 at {MIT}.
Under {ITS}, when you first walked up to a terminal at MIT and typed Control-Z to get the computer's attention, it printed out some status information, including how many people were already using the computer; it might print "14 users", for example. Someone thought it would be a great joke to patch the system to print "14 losers" instead. There ensued a great controversy, as some of the users didn't particularly want to be called losers to their faces every time they used the computer. For a while several hackers struggled covertly, each changing the message behind the back of the others; any time you logged into the computer it was even money whether it would say "users" or "losers". Finally, someone tried the compromise "lusers", and it stuck.
Later one of the ITS machines supported "luser" as a request-for-help command. ITS died the death in mid-1990, except as a museum piece; the usage lives on, however, and the term "luser" is often seen in program comments.
See: also {LART}. Compare: {tourist}, {weenie}.
[{Jargon File}]
(1998-07-01)

luser attitude readjustment tool
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
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
LVD
{Low Voltage Differential}

lwp
LWP
[programming] {light-weight process}.
(1996-02-22)

ly
[networking] The {country code} for Libya.
(1999-01-27)

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

lynx realtime systems
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)

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

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

lz compression
LZ compression
{Lempel-Ziv compression}

lz77 compression
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
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}].

lzexe
An executable file {compression} utility for {MS-DOS}. It adds a minimal header to the executable to decompress it when it is executed. See also {pklite}.

lzh
[filename extension] The {filename extension} for a file produced by the {LHA} program.
(1995-04-03)

lzh compression
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
LZW compression
{Lempel-Ziv Welch compression}

m
M
1. Alternative name for {MUMPS}.
2. A {C}-like language from {Silicon Compiler Systems} for multilevel {hardware description}. It is currently available in the {GDT} package from {Mentor Graphics}.
[{Jargon File}]
(1994-10-26)
3. [unit] The abbreviated for of {mega-}.
(1995-01-10)

m o drive
M O drive
{mageneto-optical drive}

m technology association
M Technology Association
[body] The {MUMPS} User's Group that disbanded some time between 1995 and 2003.
Address: 1738 Elton Road, Suite 205, Silver Spring, MD 20903-1725, USA.
Telephone: +1 301 431-4070. Fax: +1 301 431-0017.
(2003-06-04)

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
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
M3
A {macro} processor, forerunner of {M4}, for the {AP-3} {minicomputer}.

m4
A {macro} processor for {Unix} and {GCOS} which is more flexible than {cpp}. m4 copies its input to the output, expanding macros which can be either built-in or user-defined. m4 has built-in functions for including files, running {Unix} commands, doing integer arithmetic, manipulating text in various ways and recursing. m4 can be used either as a {front-end} to a compiler or as a stand-alone tool.
{sendmail}'s configuration file (/etc/sendmail.cf) is writen in m4 macros.
There is a {GNU m4 v1.1 (ftp://gnu.org/pub/gnu/m4-1.0.tar.Z)} by Francois Pinard [pinard@iro.umontreal.ca] and a {public domain} version by Ozan Yigit [oz@sis.yorku.ca] and Richard A. O'Keefe [ok@goanna.cs.rmit.OZ.AU] (FTP from any {386BSD}, {NetBSD} or {FreeBSD} archive). A {Macintosh} version is {here (ftp://nic.switch.ch/pub/software/mac/src/mpw-c/)}.
See also {m3}, {m5}.
["The M4 Macro Processor", Kernighan & Ritchie, Jul 1977].

m5
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
Mac
{Macintosh}

mac
MAC
1. {Media Access Control}.
2. Early system on {Ferranti} {Mercury}. Listed in CACM 2(5):16 (May 1959).

mac address
MAC address
The hardware address of a device connected to a shared {network} medium. See also {Media Access Control}.

mac ii
Mac II
{Macintosh II}

mac iicx
Mac IIcx
{Macintosh IIcx}

mac os
Mac OS
{Macintosh Operating System}

mac playmate
Mac Playmate
[games] An early (~1985) example of a pornographic computer game. Mac Playmate runs on the {Macintosh} and involves trying to stimulate a simulated woman to orgasm by applying various implements to her erogenous zones.
(2002-03-08)

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

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

macanalyst
MACAnalyst
An analysis {CASE} tool for the {Macintosh} from {Excel Software, Inc.}

macaulay
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
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
MACDesigner
A design CASE tool for the Mac from {Excel Software, Inc.}

macdink
/mak'dink/ To make many incremental and unnecessary cosmetic changes to a program or file. Often the subject of the macdinking would be better off without them. The {Macintosh} is said to encourage such behaviour.
See also {fritterware}, {window shopping}.
[{Jargon File}]
(1994-11-22)

mace
MACE
A concurrent {object-oriented} language.

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

mach interface generator
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)

machiavelli
Machiavelli
An extension of {Standard ML} developed by Peter Buneman & Atsushi Ohori of the {University of Pennsylvania} in 1989, based on {orthogonal persistence}.
["Database Programming in Machiavelli: A Polymorphic Language with Static Type Inference", A. Ohori, Proc SIGMOD Conf, ACM, June 1989].
(1995-02-21)

machinable
{Machine-readable}. Having the {softcopy} nature.
[{Jargon File}]

machine
Common term for "computer", usually when considered at the hardware level. The {Turing Machine}, an early example of this usage, was however neither hardware nor software, but only an idea.
[Earlier use?]
(1995-02-15)

machine code
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)

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}.
[{Jargon File}]
(1995-02-15)

macintosh
Macintosh
[computer] (Mac) A range of single user, 32-bit {personal computers} 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 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 ports} and a four-voice sound generator. This was all housed in one small plastic case, including the screen. When more memory was available later in the year, a 512K Macintosh was nicknamed the "Fat Mac."
The 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 disks}, {magnetic tape}, and other high-speed devices.
The Mac SE (March 1987) had up to four megabytes of {RAM}, an optional built-in 20 megabyte hard disk and one internal expansion slot for connecting a third-party device.
The Mac II (March 1987) used the faster {Motorola 68020} {CPU} with a 32-bit {bus}.
In 1994 {PowerPC} based Macs, {PowerMacs}, were launched, and in 1999, the {iMac}, updated on 2002-01-07. PowerMacs clocked at over 1GHz were planned for 2002-01-22, to be followed by dual 1GHz processors and "Superdrive" (combined DVD-ROM, DVD-RW, CD-ROM, CD-RW).
If "Macintosh" were an acronym, some say it would stand for "Many Applications Crash, If Not, The Operating System Hangs". While this was true for pre Mac OS 9 systems, it is less true for Mac OS 9, and totally incorrect for Mac OS X, which has protected memory, so even if one application crashes, the system and other applications are unaffected.
See also {Macintosh file system}, {Macintosh user interface}.
{Brock Kyle's Macintosh Guide Book (http://www.everymac.com/)}.
(2002-06-21)

macintosh common lisp
Macintosh Common Lisp
[language] (MCL) {Common Lisp} for the {Apple Macintosh}.
Guillaume Cartier, of the Mathematics Department at UQAM, Canada, has written some libraries.
Latest version: 1.2.
{(ftp://cambridge.apple.com/pub/mcl2/contrib/)}.
(1992-11-30)

macintosh file system
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
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
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
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 Run Time for {Java}.
Mac OS X ("X" for 10) is based on {FreeBSD}. Apple released the {kernel} of Mac OS X Server as "{darwin}", under an {open source} license.
See also {Macintosh file system}, {Macintosh user interface}.
(2002-06-29)

macintosh user interface
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
Macintoy
/mak'in-toy/ The Apple {Macintosh}, considered as a {toy}. Less pejorative than {Macintrash}.
[{Jargon File}]

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
MACL
{Macintosh} {Allegro CL}.
E-mail: [info-macl@cambridge.apple.com].

maclisp
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
MacMinix
[operating system] The {Macintosh} version of {MINIX}.
[Details? URL?]
(1997-06-17)

macppp
MacPPP
[networking] An implementation of {PPP} for the {Macintosh} developed by Larry J. Blunk and others at Merit Network, Inc. MacPPP was revised in 1993 with the release of MacPPP 2.0.1. The latest incarnation of MacPPP is {FreePPP}.
(2000-11-25)

macro
MACRO
1. Assembly language for {VAX/VMS}.
2. {PL/I}-like language with extensions for string processing. "MACRO: A Programming Language", S.R. Greenwood, SIGPLAN Notices 14(9):80-91 (Sep 1979).
[{Jargon File}]

macro
-
Prefix large. Opposite of {micro-}. In the mainstream and among other technical cultures (for example, medical people) this competes with the prefix {mega-}, but hackers tend to restrict the latter to quantification.
[{Jargon File}]

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 sap
Macro SAP
Macro processing modification of SAP. D.E. Eastwood and D.M. McIlroy, unpublished memorandum, Bell Labs 1959. Led to TRAC.

macrology
/mak-rol'*-jee/ 1. Set of usually complex or crufty {macros}, e.g. as part of a large system written in {Lisp}, {TECO}, or (less commonly) {assembler}.
2. The art and science involved in comprehending a macrology. Sometimes studying the macrology of a system is not unlike archaeology, ecology, or {theology}, hence the sound-alike construction. See also {boxology}.
(2003-09-02)

macromedia
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 modelling tool for multimedia, graphics and product design; SoundEdit 16, a digital sound recording and editing system; Fontographer, a typeface editing programme; and Action!, a multimedia presentation application.
Chief Executive Officer: Bud Colligan.
(1995-01-10)

macrotape
[storage] /mak'roh-tayp/ An industry-standard reel of {magnetic tape}, as opposed to a {microtape}.
See also {round tape}.
[{Jargon File}]
(1994-10-20)

macsyma
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
MacTCP
[networking] Part of earlier versions of {MacOS} that provided access to {TCP/IP} services. {Apple} removed MacTCP from MacOS in revision 7.5.3 in favor of the new {OpenTransport} (OT) TCP/IP stack. However, MacTCP lives on as a community development effort.
See also {MacPPP}.
[How did it work? Where was it from?]
(2000-06-25)

macx
MacX
A package allowing the {Macintosh} to be used as an {X} server.

mad
MAD
[language] 1. {Michigan Algorithm Decoder}.
2. A {data flow} language.
["Implementation of Data Structures on a Data Flow Computer", D.L. Bowen, Ph.D. Thesis, Victoria U Manchester, Apr 1981].
(1999-12-10)

mad1
Mad/1
[language] A later, much enhanced version of {Michigan Algorithm Decoder} (MAD), for the {IBM 360}. Mad/1 was University of Michigan's answer to {PL/I}.
(1999-12-10)

madaline
Madaline
A structure of many ADALINE units.

madcap
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
MADTRAN
Early preprocessor that translated Fortran to MAD, for gain in speed.

maggotbox
[abuse] /mag'*t-boks/ An even more derogatory term than {Macintrash}.
[{Jargon File}]
(1995-01-25)

magic
MAGIC
An early system on the {Midac} computer.
[Listed in CACM 2(5):16 (May 1959)].
[{Jargon File}]
(1995-01-25)

magic
1. As yet unexplained, or too complicated to explain; compare {automagically} and (Arthur C.) Clarke's Third Law:
Any sufficiently advanced technology is indistinguishable from magic.
"TTY echoing is controlled by a large number of magic bits." "This routine magically computes the parity of an 8-bit byte in three instructions."
2. Characteristic of something that works although no one really understands why (this is especially called {black magic}).
3. (Stanford) A feature not generally publicised that allows something otherwise impossible or a feature formerly in that category but now unveiled.
Compare {wizardly}, {deep magic}, {heavy wizardry}.
For more about hackish "magic" see {Magic Switch Story}.
4. {magic number}.
[{Jargon File}]
(2001-03-19)

magic bullet
[jargon] (Or "silver bullet" from vampire legends) A term widely used in software engineering for a supposed quick, simple cure for some problem. E.g. "There's no silver bullet for this problem".
(1999-01-13)

magic cookie
1. Something passed between routines or programs that enables the receiver to perform some operation; a {capability} ticket or {opaque identifier}. Especially used of small data objects that contain data encoded in a strange or intrinsically machine-dependent way. E.g. on non-{Unix} {operating 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}.
[{Jargon File}]
(1995-01-25)

magic number
[jargon, programming] 1. In {source code}, some non-obvious constant whose value is significant to the operation of a program and that is inserted inconspicuously in-line ({hard-coded}), rather than expanded in by a symbol set by a commented "#define". Magic numbers in this sense are bad style.
2. A number that encodes critical information used in an {algorithm} in some opaque way. The classic examples of these are the numbers used in {hash} or {CRC} functions or the coefficients in a {linear congruential generator} for {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 programs} (especially the {linker}) distinguish between types of executable file by looking for a magic number. Once upon a time, these magic numbers were {PDP-11} branch instructions that skipped over header data to the start of executable code; 0407, for example, was {octal} for "branch 16 bytes relative". Nowadays only a {wizard} knows the spells to create magic numbers. {MS DOS} executables begin with the magic string "MZ".
*The* magic number, on the other hand, is 7+/-2. The paper cited below established the number of distinct items (such as numeric digits) that humans can hold in short-term memory. Among other things, this strongly influenced the interface design of the phone system.
["The magical number seven, plus or minus two: some limits on our capacity for processing information", George Miller, in the "Psychological Review" 63:81-97, 1956].
[{Jargon File}]
(2003-07-02)

magic paper
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 backward. I only discovered that *after* I realised that {Intel} didn't put power-on lights under the quartz windows on the tops of their EPROMs - the die was glowing white-hot. Amazingly, the EPROM worked fine after I erased it, filled it full of zeros, then erased it again. For all I know, it's still in service. Of course, this is because the magic smoke didn't get let out."
Compare the original phrasing of {Murphy's Law}.
[{Jargon File}]
(1995-01-25)

magic switch story
Magic Switch Story
Some years ago, I was snooping around in the cabinets that housed the {MIT AI Lab}'s {PDP-10}, and noticed a little switch glued to the frame of one cabinet. It was obviously a homebrew job, added by one of the lab's hardware hackers (no-one knows who).
You don't touch an unknown switch on a computer without knowing what it does, because you might crash the computer. The switch was labelled in a most unhelpful way. It had two positions, and scrawled in pencil on the metal switch body were the words "magic" and "more magic". The switch was in the "more magic" position.
I called another hacker over to look at it. He had never seen the switch before either. Closer examination revealed that the switch had only one wire running to it! The other end of the wire did disappear into the maze of wires inside the computer, but it's a basic fact of electricity that a switch can't do anything unless there are two wires connected to it. This switch had a wire connected on one side and no wire on its other side.
It was clear that this switch was someone's idea of a silly joke. Convinced by our reasoning that the switch was inoperative, we flipped it. The computer instantly crashed.
Imagine our utter astonishment. We wrote it off as coincidence, but nevertheless restored the switch to the "more magic" position before reviving the computer.
A year later, I told this story to yet another hacker, {David Moon} as I recall. He clearly doubted my sanity, or suspected me of a supernatural belief in the power of this switch, or perhaps thought I was fooling him with a bogus saga. To prove it to him, I showed him the very switch, still glued to the cabinet frame with only one wire connected to it, still in the "more magic" position. We scrutinized the switch and its lone connection, and found that the other end of the wire, though connected to the computer wiring, was connected to a ground pin. That clearly made the switch doubly useless: not only was it electrically nonoperative, but it was connected to a place that couldn't affect anything anyway. So we flipped the switch.
The computer promptly crashed.
This time we ran for Richard Greenblatt, a long-time {MIT} hacker, who was close at hand. He had never noticed the switch before, either. He inspected it, concluded it was useless, got some diagonal cutters and {dike}d it out. We then revived the computer and it has run fine ever since.
We still don't know how the switch crashed the machine. There is a theory that some circuit near the ground pin was marginal, and flipping the switch changed the electrical capacitance enough to upset the circuit as millionth-of-a-second pulses went through it. But we'll never know for sure; all we can really say is that the switch was {magic}.
I still have that switch in my basement. Maybe I'm silly, but I usually keep it set on "more magic".
{GLS}
(1995-02-22)

magma
Magma
[symbolic mathematics, tool] A program used for heavy duty algebraic computation in many branches of mathematics. Magma, developed by John Cannon and associates at the University of Sydney, succeeded {Cayley}. It runs at several hundred sites.
E-mail: [magma@maths.usyd.edu.au].
{Home (http://www.maths.usyd.edu.au:8000/u/magma/)}.
[W. Bosma, J. Cannon and C. Playoust, The Magma algebra system I: The user language, J. Symb. Comp., 24, 3/4, 1997, 235-265].
(2000-12-21)

magma2
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
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}. 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}.
(2003-03-10)

magnetic ink character recognition
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 forward or rewinding it at high speed. These are typically used to separate logical files on a tape.
Most tape drives now include some kind of {data compression}. There are several {algorithms} which provide similar results: {LZ} (most), {IDRC} ({Exabyte}), {ALDC} ({IBM}, {QIC}) and {DLZ1} ({DLT}).
See also {cut a tape}, {flap}, {Group Code Recording}, {spool}, {macrotape}, {microtape}, {Non Return to Zero Inverted}, {Phase Encoded}.
(1997-04-05)

magnetic tape drive
[storage] (Or "tape drive") A {peripheral} device that reads and writes {magnetic tape}.
(1996-05-25)

magnetooptical disk
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)

magnetostrictive delay line
[storage, history] An early storage device that used tensioned wires of nickel alloy carrying longitudinal waves produced and detected electromagnetically.
They had better storage behaviour than {mercury delay lines}.
[H. Epstein and O.B. Stram, "A High Performance Magnetostriction-Sonic Delay Line," Transactions, Institute of Radio Engineers, Professional Group on Ultrasonic Engineering, 1957, pp. 1-24].
(2002-11-08)

magnum
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
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
Mail Application Programming Interface
{Messaging Application Programming Interface}

mail bomb
[messaging] To send, or urge others to send, massive amounts of {electronic mail} to a single system or person, with intent to crash or {spam} the recipient's system. A successful mail bomb may cause the victim's {disk quota} to be exhausted, the disk holding his mailbox to fill up, or his computer to spend a large proportion of its time processing mail.
Mail-bombing is sometimes done in retaliation against someone persistently abusing {Usenet} and violating {netiquette}. While it may inconvenience the intended victim (if they gave their real address), it will probably also inconvenience other users and administrators of the computers and networks involved. Mailbombing is thus a serious offense itself.
See {netiquette} for the correct way to respond to perceived violations.
Compare {letterbomb}, {nastygram}.
[{Jargon File}]
(1995-04-04)

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

mail merge
[messaging] A function of some {word processing} software (e.g. {Microsoft Word}) that produces multiple instances of a document by substituting different text strings from a {database} in place of certain field markers. This is often done with envelopes, resumes, spam, and various other mass mailings.

{(http://www.mtroyal.ab.ca/programs/academserv/ADC/workshops/staff/mail_merge/mail_merge_tutorial.html)}.
(2002-07-26)

mail path
{source route}

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 transport agent
Mail Transport Agent
{Message Transfer Agent}

mail user agent
[messaging] (MUA) The program that allows the user to compose and read {electronic mail} messages. The MUA provides the interface between the user and the {Message Transfer Agent}. Outgoing mail is eventually handed over to an MTA for delivery while the incoming messages are picked up from where the MTA left it (although MUA's running on single-user machines may pick up mail using {POP}).
Popular MUAs for {Unix} include {elm}, {mush}, {pine}, and {RMAIL}.
{FAQ
(http://www.cis.ohio-state.edu/hypertext/faq/usenet/mail/setup/unix/part2/faq-doc-3.html)}.
(1996-03-21)

mail users shell
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)

mailbox
1. [messaging] A file belonging to a particular user on a particular computer in which received {electronic mail} messages are stored ready for the user to read them. A mailbox may be just an {electronic mail address} to which messages are sent and may not actually correspond to a file if the messages are processed automatically, e.g. a {mail server} or {mailing list}.
2. [programming] A destination for interprocess messages in a {message passing} system. A mailbox is a {message} queue, usually stored in the memory of the processor on which the receiving process is running. {Primitives} are provided for sending a message to a named mailbox and for reading messages from a mailbox.
(1994-10-20)

mailing list
[messaging] (Often shortened in context to "list") An {electronic mail address} that is an alias (or {macro}, though that word is never used in this connection) which is expanded by a {mail exploder} to yield many other e-mail addresses. Some mailing lists are simple "reflectors", redirecting mail sent to them to the list of recipients. Others are filtered by humans or programs of varying degrees of sophistication; lists filtered by humans are said to be "moderated".
The term is sometimes used, by extension, for the people who receive e-mail sent to such an address.
Mailing lists are one of the primary forms of hacker interaction, along with {Usenet}. They predate {Usenet}, having originated with the first {UUCP} and {ARPANET} connections. They are often used for private information-sharing on topics that would be too specialised for or inappropriate to public {Usenet} groups. Though some of these maintain almost purely technical content (such as the {Internet Engineering Task Force} mailing list), others (like the "sf-lovers" list maintained for many years by Saul Jaffe) are recreational, and many are purely social. Perhaps the most infamous of the social lists was the eccentric bandykin distribution; its latter-day progeny, {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.
There are several programs to automate mailing list maintenance, e.g. {Listserv}, {Listproc}, {Majordomo}.
Requests to subscribe to, or leave, a mailing list should ALWAYS be sent to the list's "-request" address (e.g. ietf-request@cnri.reston.va.us for the IETF mailing list). This prevents them being sent to all recipients of the list and ensures that they reach the maintainer of the list, who may not actually read the list.
[{Jargon File}]
(2001-04-27)

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

main distribution frame
Main Distribution Frame
[networking] (MDF) The {network closet} containing the main {hub}.
(1995-05-05)

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}.
[{Jargon File}]

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)

mainbol
MAINBOL
[language] MAcro ImplementatioN of {SNOBOL4}.
(1997-09-14)

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.
[{Jargon File}]
(1996-07-22)

mainsail
MAINSAIL
MAchine INdependent SAIL. From XIDAK, Palo Alto CA, (415) 855-9271.

maintainer
[software] The person responsible for coordinating changes to a package of {software} and arranging the distribution of updates. The term usually applies only to {free software} where the maintainer (often the author) is doing it as a free public service.
(2001-01-27)

maintainer script
[Debian] One of the scripts (preinst, prerm, postinst, postrm) that may be included in a {Debian} {binary package}. These scripts may create and/or remove {symlinks}, files or directories that, for some reason, could not be done directly by {dpkg}. Maintainer scripts frequently create or update the symlinks in the /etc/rc?.d directories and start, stop, or restart {daemons}.
(2000-05-31)

maintenance
[programming] The modification of a software product, after delivery, to correct faults, to improve performance or other attributes, or to adapt the product to a changed environment.
Maintenance is an important part of the {software life-cycle}. It is expensive in manpower and resources, and one of the aims of {software engineering} is to reduce its cost.
(1996-12-27)

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

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)

majordomo
Majordomo
[messaging, tool] A popular {freeware} {mailing list} processor written in {Perl} which runs under {Unix}. Majordomo is a "groupware" project which evolved from code by Brent Chapman [brent@greatcircle.com], with maintenance by John Rouillard [rouilj@cs.umb.edu]. The current Majordomo maintainer is Chan Wilson [cwilson@sgi.com].
A majordomo is a person who speaks, makes arrangements, or takes charge for another; from Latin "major domus" - "master of the house".
{Home (http://www.greatcircle.com/majordomo/)}.
(2001-04-27)

make
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
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
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
MAL
{Micro Assembly Language}

malamud
Malamud
[publication] The book:
[Malamud, C., "Analyzing Sun Networks", Van Nostrand Reinhold, New York, NY, 1992.]
(1995-04-10)

mali
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
MAN
{Metropolitan Area Network}

man
{Unix manual page}

man page
{Unix manual page}

management
1. Corporate power elites distinguished primarily by their distance from actual productive work and their chronic failure to manage (see also {suit}). Spoken derisively, as in "*Management* decided that ...".
2. Mythically, a vast bureaucracy responsible for all the world's minor irritations. Hackers' satirical public notices are often signed "The Mgt"; this derives from the "Illuminatus!" novels.
[{Jargon File}]
(1995-02-28)

management information base
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
Management Information System
[application] (MIS) A computer system, usually based on a {mainframe} or {minicomputer}, designed to provide management personnel with up-to-date information on an organisation's performance, e.g. inventory and sales. These systems output information in a form that is useable by managers at all levels of the organisation: strategic, tactical, and operational. A good example of an MIS report is an annual report for a stockholder (a scheduled report).
[Que's Computer User's Dictionary Second Edition, 1992].
(2001-04-01)

manchester autocode
Manchester Autocode
[language, history] The predecessor of {Mercury Autocode}.
["The Programming Strategy Used with the Manchester University Mark I Computer", R.A. Brooker, Proc IEE 103B Suppl:151-157, 1956].
(2000-10-02)

manchester encoding
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
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
Mandelbrot, Benoit
{Benoit Mandelbrot}

mandelbrot set
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}.
[{Jargon File}]
(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}.
[{Jargon File}]

mangle
Used similarly to {mung} or {scribble}, but more violent in its connotations; something that is mangled has been irreversibly and totally trashed.

mangler
[DEC] A manager. Compare {mango}; see also {management}. Note that {system mangler} is somewhat different in connotation.
[{Jargon File}]

mango
[jargon] /mang'go/ (Originally in-house jargon at {Symbolics}) A manager.
Compare {mangler}. See also {devo} and {doco}.
(1995-03-21)

mantis
MANTIS
[language] A structured, full-function procedural {4GL} and application development system from {Cincom}. MANTIS enables the developer to design prototypes, create transaction screens and reports, define logical data views, write structured procedures, and dynamically test, correct, document, secure, and release applications for production in a single, integrated, interactive session.
MANTIS applications can be enhanced with gOOi, the graphical object-oriented interface, which creates graphical Windows representations of existing MANTIS screens.
{Home (http://www.cincom.com/products/mantis/)}.
(2003-08-08)

mantissa
1. [programming] The part of a {floating point} number which, when multiplied by its {radix} raised to the power of its {exponent}, gives its value. The mantissa may include the number's sign or this may be considered to be a separate part.
2. [mathematics] The fractional part of a {logarithm}.
(1996-06-15)

manual testing
[testing] That part of software testing that requires human input, analysis, or evaluation.
(1996-12-27)

manufacturer resource planning
Manufacturer Resource Planning
[application] (MRP II) A system based on {MRP} which allows manufacturers to optimise materials, procurement, manufacturing processes, etc., and provide financial and planning reports.
In the late 1970s and early 1980s, manufacturers integrated MRP and other manufacturing and business functions. This renaissance is commonly known as Manufacturing Resource Planning (MRP II). According to the American Production and Inventory Control Society, Inc. (APICS), MRP II is a method for the effective planning of all resources of a manufacturing company. Ideally, it addresses operational planning in units, financial planning in dollars, and has a simulation capability to answer "what if" questions. It includes business planning, sales and operations planning, production scheduling, material requirements planning (MRP), capacity requirements planning, and the execution support systems for capacity and material. Output from these systems is integrated with financial reports such as the business plan, purchase commitment report, shipping budget, and inventory projections in dollars. Manufacturing resource planning is a direct outgrowth and extension of closed-loop MRP.
See also {Enterprise Resource Planning}, {SAP} R/2, R/3, and {Baan}.
(1999-02-16)

manufacturers automation protocol
Manufacturers Automation Protocol
{Manufacturing Automation Protocol}

manufacturing automation protocol
Manufacturing Automation Protocol
[protocol] (MAP) A set of {protocols} developed by General Motors based on {Token Bus} ({IEEE 802.4}) and giving predictable {real-time} response.
(1994-10-21)

manularity
/man"yoo-la"ri-tee/ ("manual" + "granularity") A notional measure of the manual labor required for some task, particularly one of the sort that {automation} is supposed to eliminate. "Composing English on paper has much higher manularity than using a text editor, especially in the revising stage." Hackers tend to consider manularity a symptom of primitive methods; in fact, a true hacker confronted with an apparent requirement to do a computing task {by hand} will inevitably seize the opportunity to build another tool (see {toolsmith}).
[{Jargon File}]
(1994-10-26)

mao
MAO
An early {symbolic mathematics} system.
[A. Rom, Celest Mech 1:309-319 (1969)].
(1995-02-10)

map
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
MAPI
{Messaging Application Programming Interface}

maple
Maple
A {symbolic mathematics} package by B. Char, K. Geddes, G. Gonnet, M. Monagan and S. Watt of the {University of Waterloo}, Canada and {ETH} Zurich, Switzerland in 1980. Version: Maple V.
E-mail: [wmsi@daisy.waterloo.edu]. Mailing list: glabahn@daisy.waterloo.edu.
(1994-10-21)

mapping
{function}

marbles
[jargon] (From the mainstream "lost his marbles") The minimum needed to build your way further up some hierarchy of tools or abstractions. After a bad system {crash}, you need to determine if the machine has enough marbles to come up on its own, or enough marbles to allow a rebuild from {backups}, or if you need to rebuild from scratch. "This {compiler} doesn't even have enough marbles to compile {hello, world}."
[{Jargon File}]
(1998-05-21)

marc andreessen
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."
[{Jargon File}]
(1994-10-21)

marginal hacks
Marginal Hacks
[humour] Margaret Jacks Hall, a building into which the {Stanford AI Lab} was moved near the beginning of the 1980s (from the {D.C. Power Lab}).
[{Jargon File}]
(1998-05-21)

maril
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
Mark 1
[computer] (Or "Automatic Sequence Controlled Calculator") A {first generation computer} developed in 1944 by {Howard Aiken} of {Harvard University}. The Mark 1 is seen as the first full-sized digital computer. It weighed 5 tons, had 500 miles of wiring, was used only for numeric calculations, and took three seconds to carry out one multiplication.
[Mechanism? Capacity? Programmability?]
(1996-11-24)

marketroid
/mar'k*-troyd/ (Or "marketing slime", "marketeer", "marketing droid", "marketdroid") A member of a company's marketing department, especially one who promises users that the next version of a product will have features that are not actually scheduled for inclusion, are extremely difficult to implement, and/or are in violation of the laws of physics; and/or one who describes existing features (and misfeatures) in ebullient, buzzword-laden adspeak. Derogatory.
[{Jargon File}]
(1995-02-23)

markov
Markov
See {Andrei Markov}, {Markov chain}, {Markov model}, {Markov process}.
(1995-02-23)

markov chain
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
Markov model
[probability, simulation] A model or {simulation} based on {Markov chains}.
(2000-10-29)

markov process
Markov process
[probability, simulation] A process in which the sequence of events can be described by a {Markov chain}.
(1995-02-23)

markowitz
Markowitz
The author of the original {Simscript} language.

marksweep garbage collection
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
Marlais
[language] A simple-minded {interpreter} by Brent Benson at Harris for a programming language strongly resembling {Dylan}. Marlais version 0.2a is a "hackers release" for education, experimentation, porting, extension, and bug fixing.
It has been ported to {Sun-3}, {Sun-4}, {VAX}/{BSD}, {OS/2}, {Linux}, {Sequent Symmetry}, {Encore}, {HP-UX}, {Ultrix}, {SGI}, {Sony News}, and {A/UX}.
{(ftp://travis.csd.harris.com/pub/marlais-0.2a.tar.gz)}.
(1993-09-23)

mars
Mars
A legendary tragic failure, the archetypal Hacker Dream Gone Wrong. Mars was the code name for a family of PDP-10 compatible computers built by Systems Concepts (now, The SC Group): the multi-processor SC-30M, the small uniprocessor SC-25M, and the never-built superprocessor SC-40M. These machines were marvels of engineering design; although not much slower than the unique {Foonly} F-1, they were physically smaller and consumed less power than the much slower DEC KS10 or Foonly F-2, F-3, or F-4 machines. They were also completely compatible with the DEC KL10, and ran all KL10 binaries (including the operating system) with no modifications at about 2--3 times faster than a KL10.
When DEC cancelled the Jupiter project in 1983, Systems Concepts should have made a bundle selling their machine into shops with a lot of software investment in PDP-10s, and in fact their spring 1984 announcement generated a great deal of excitement in the PDP-10 world. {TOPS-10} was running on the Mars by the summer of 1984, and {TOPS-20} by early fall.
Unfortunately, the hackers running Systems Concepts were much better at designing machines than at mass producing or selling them; the company allowed itself to be sidetracked by a bout of perfectionism into continually improving the design, and lost credibility as delivery dates continued to slip. They also overpriced the product ridiculously; they believed they were competing with the KL10 and VAX 8600 and failed to reckon with the likes of Sun Microsystems and other hungry startups building workstations with power comparable to the KL10 at a fraction of the price.
By the time SC shipped the first SC-30M to Stanford in late 1985, most customers had already made the traumatic decision to abandon the PDP-10, usually for VMS or Unix boxes. Most of the Mars computers built ended up being purchased by {CompuServe}.
This tale and the related saga of {Foonly} hold a lesson for hackers: if you want to play in the {Real World}, you need to learn Real World moves.
[{Jargon File}]

marseille prolog
Marseille Prolog
[language] One of the two main dialects of {Prolog}, the other being {Edinburgh Prolog}. The difference is largely {syntax}. The original Marseille Interpreter (1973) was written in {Fortran}.
[Developed by?]
(1998-03-16)

marshaling
[spelling] Alternative US spelling of "{marshalling}".
(1998-03-16)

marshalling
[communications] (US -ll- or -l-) The process of packing one or more items of data into a message {buffer}, prior to transmitting that message buffer over a communication channel. The packing process not only collects together values which may be stored in non-consecutive memory locations but also converts data of different types into a standard representation agreed with the recipient of the message.
(2000-06-09)

marsyas
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
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?"
[{Jargon File}]

martin marietta laboratories moorestown
Martin Marietta Laboratories Moorestown
{(http://atlgw.atl.ge.com/)}.
Address: Building 145, Moorestown Corporate Center, Moorestown, NJ 08057, USA.
(1995-02-06)

marvin
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
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
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
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 readonly memory
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
MASM
{Microsoft} {Assembler} for {MS-DOS}.
(1995-04-22)

maspar unity
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
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}.
[{Jargon File}]

massey hope
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
Matchmaker
A language for specifying and automating the generation of multi-lingual interprocess communication interfaces. {MIG} is an implementation of a subset of Matchmaker.
(1994-11-22)

material requirements planning
Material Requirements Planning
[application] (MRP) A system for effectively managing material requirements in a manufacturing process.
Information systems have long been an important part of the manufacturing environment. In the 1960s, manufacturers developed Material Requirements Planning (MRP). According to the American Production and Inventory Control Society, Inc. (APICS), MRP is a set of techniques that uses bill of material data, inventory data, and the master production schedule to calculate requirements for materials. It makes recommendations to reorder materials. Furthermore, because it is time-phased, it makes recommendations to reschedule open orders when due dates and need dates are not in phase. Time-phased MRP begins with the items listed on the Master Production Schedule and determines the quantity of all components and materials required to fabricate those items and the date that the components and material are required. Time-phased MRP is accomplished by exploding the bill of material, adjusting for inventory quantities on hand or on order and offsetting the net requirements by the appropriate lead times.
See also {Manufacturer Resource Planning}.
(1999-02-16)

mathcad
Mathcad
A {symbolic mathematics} environment.

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

mathmatic or mathmatic
MATH-MATIC or MATHMATIC
Alternate name for AT-3. Early, pre-Fortran language for UNIVAC I or II. Sammet 1969.

mathout
math-out
(Possibly from "white-out", the blizzard variety) A paper or presentation so encrusted with mathematical or other formal notation as to be incomprehensible. This may be a device for concealing the fact that it is actually {content-free}.
See also {numbers}, {social science number}.
[{Jargon File}]
(1994-12-14)

mathworks
MathWorks
{The MathWorks, Inc.}

matlab
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
Matrix
[FidoNet] 1. What the Opus BBS software and sysops call {FidoNet}.
2. Fanciful term for a {cyberspace} expected to emerge from current networking experiments (see {network, the}).
3. The totality of present-day computer networks.
[{Jargon File}]

matrix compiler
Matrix Compiler
Early matrix computations on UNIVAC. Sammet 1969, p.642.

matrix math
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
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
MAU
{Media Access Unit}

mauchly john w
Mauchly, John W.
{John Mauchly}

mawk
[language, tool] An faster implementation of {nawk} written by Mike Brennan at Boeing in 1991 and distributed under {GPL} but distinct from {GNU}'s {gawk}.
Interpreter version 1.1.3 has been ported to {Sun-3}, {Sun-4}/{SunOS} 4.0.3; {Vax}/{BSD} 4.3, {ULTRIX} 4.1; {Stardent} 3000/{SYSV}R3; {DECStation}/{ULTRIX} 4.1, {MS-DOS}/{Turbo C++}.
{(ftp://oxy.edu/public/mawk)}.
(2000-05-04)

maximal free expression
(MFE) A {free expression} is sub-expression of a {lambda abstraction} not containing the {bound variable}. A maximal free expression is a free expression not contained within any other free expression. See {full laziness}.

maximin
{minimax}

maximop
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
maximum Maytag mode
[storage, humour] (From the US brand of washing machine) What a {washing machine} or, by extension, any {hard disk} is in when it's being used so heavily that it's shaking like an old Maytag with an unbalanced load. If prolonged for any length of time, can lead to disks becoming {walking drives}.
[{Jargon File}]
(1997-07-22)

maximum seek time
[storage] (Or full stroke seek time) The time it takes to {seek} over all {tracks}, i.e., from the innermost to the outermost or vice versa. The maximum seek time gives a worst-case measure of the speed of the drive which is useful in some {real-time} applications where it is important that data flows continuously (such as video editing or CD recording).
(1997-07-15)

maximum segment size
[networking] (MSS) The maximum amount of {TCP} data that a {node} can send in one {segment}. This should be the size of the receiver's reassembly buffer to try to avoid {fragmentation}.
The equivalent at the {physical layer} is "{Maximum Transmission Unit}".
(1998-03-06)

maximum transmission unit
Maximum Transmission Unit
[networking] (MTU) The largest number of bytes of "payload" {data} a {frame} can carry, not counting the frame's header and trailer.
A frame is a single unit of transportation on the {data link layer}. It consists of header data plus data which was passed down from the {network layer} (e.g. an {IP} {datagram}) plus sometimes trailer data.
An Ethernet (V2) frame has a MTU of 1500 bytes but the size of the frame can be up to 1526 bytes (22 byte header, 4 byte CRC trailer).
See also {fragmentation}.
(2000-10-07)

maxis software
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
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
MBASIC
{Microsoft} BASIC.

mbogo dr fred
Mbogo, Dr. Fred
/*m-boh'goh, dok'tr fred/ [Stanford] The archetypal man you don't want to see about a problem, especially an incompetent professional; a shyster. "Do you know a good eye doctor?" "Sure, try Mbogo Eye Care and Professional Dry Cleaning." The name comes from synergy between "bogus" and the original Dr. Mbogo, a witch doctor who was Gomez Addams' physician on the old "Addams Family" TV show. Compare {Bloggs Family, the}, see also {fred}.
[{Jargon File}]
(2002-04-14)

mbone
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
MBS
{mobile broadband services}

mc
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
MC68000
{Motorola 68000}

mc6809
MC6809
{Motorola 6809}

mca
MCA
{Micro Channel Architecture}

mcc
MCC
1. {Mosaic Communications Corporation}.
2. The {Microelectronics and Computer Technology Corporation}.

mccullochpitts neuron
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
McG360
Interactive, similar to PAL[5], for IBM 360.
"McG360 Programmer's Guide", RC 2693, IBM TJWRC, Nov 1969.

mci
MCI
[company] A United States long-distance telecommunications company. Recently bought from {British Telecom} [by ?].
(1998-05-18)

mcl
MCL
{Macintosh Common LISP}

mcode
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
MCP
{motion compensated prediction}

mcp1600
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
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
MCSD
{Microsoft Certified Solution Developer}

mcse
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
MD
1. [audio, storage] {Mini Disk}.
2. [programming] {major delivery}.
3. {message digest function}.
(2001-12-02)

md
[networking] The {country code} for Moldova.
(1999-01-27)

md5
MD5
{Message Digest 5}

mdf
MDF
{Main Distribution Frame}

mdi
MDI
{Multiple Document Interface}

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

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)

mean time between failures
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 Faults
{Mean Time Between Failures}

mean time to recovery
Mean Time To Recovery
[specification] (MTTR) The average time that a device will take to recover from a non-terminal failure. Examples of such devices range from self-resetting fuses (where the MTTR would be very short, probably seconds), up to whole systems which have to be replaced.
The MTTR would usually be part of a maintenance contract, where the user would pay more for a system whose MTTR was 24 hours, than for one of, say, 7 days. This means the supplier is guaranteeing to have the system up and running again within 24 hours (or 7 days) of being notified of the failure.
Some devices have a MTTR of zero, which means that they have redundant components which can take over the instant the primary one fails, see {RAID} for example.
See also {Mean Time Between Failures}.
(1998-05-01)

measure
[testing] To ascertain or appraise by comparing to a {standard}; to apply a {metric}.
(1996-12-27)

measurement
[testing] The act or process of measuring; a figure, extent, or amount obtained by measuring.
(1996-12-27)

meatspace
[jargon] The physical world (as opposed {virtual reality}) where you might spend {facetime} with the {carbon community}.
(1999-01-15)

meatware
Less common synonym for {wetware}.
[Was it Marvin Minsky who described brains as "machines?/computers? made of meat"?]
[{Jargon File}]
(1994-10-21)

media access control
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
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
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
Media Gateway Control Protocol
[communications, protocol] (MGCP) A {protocol} used within a {Voice over IP} system. MGCP is an {IETF} work in progress, it superseded {SGCP}.
MGCP is an internal protocol used within a {distributed} system that appears to the outside world as a single VoIP {gateway}.
This system is composed of a {Call Agent}, and a set of gateways, including at least one "media gateway" that performs the conversion of media signals between {circuits} and {packets}, and at least one "signalling gateway" when connected to an {SS7} controlled network.
{IETF MGCP draft
(http://www.ietf.org/internet-drafts/draft-huitema-megaco-mgcp-v0r1-05.txt)}.
(1999-03-17)

medium access control
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*!"
[{Jargon File}]
(1996-12-09)

meet
Meet
{greatest lower bound}

meg
{megabyte}

mega
-
{prefix}

megabits per second
[unit] (Mbps, Mb/s) Millions of {bit}s per second. A unit of {data rate}. 1 Mb/s = 1,000,000 bits per second (not 1,048,576).
E.g. {Ethernet} can carry 10 Mbps.
(2002-03-23)

megabyte
[unit] ({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] Etymologically incorrect singular of "{megaflops}".
(1995-02-28)

megaflops
[unit] One million {floating-point} operations per second. A common unit of measurement of performance of computers used for numerical work.
(2000-08-03)

megahertz
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.
[{Jargon File}]

mego
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
[library] A set of {class libraries} by Atsushi Aoki [aoki@sra.co.jp] and others for {Objectworks Smalltalk} Release 4.1. Mei includes: Grapher Library for drawing diagrams; Meta Grapher Library (grapher to develop grapher); Drawing tools and painting tools (structured diagram editors and drawing editors); {GUI builder}; {Lisp} {interpreter}; {Prolog} interpreter; Pluggable gauges; Extended browser; (package, history, recover, etc.)
Mei is available under {General Public License} and requires Objectworks Smalltalk Release 4.1.
Current version: 0.50, as of 1993-01-20.
{Home (http://www.sra.co.jp/people/aoki/htmls/FreeSoftwareForSmalltalk.html)}.
E-mail: Watanabe Katsuhiro [katsu@sran14.sra.co.jp]
(1999-12-08)

mel
Mel
{The story of Mel}

meld
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
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
["Melinda: Linda with Multiple Tuple Spaces", S. Hupfer, [hupfer-susanne@yale.edu] YALEU/DCS/RR-766, Yale U Feb 1990].
(1994-11-11)

mellor
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}.
[{Jargon File}]
(1996-08-11)

meme plague
[philosophy] The spread of a successful but pernicious {meme}, especially one that parasitises the victims into giving their all to propagate it. Astrology, BASIC, and the other guy's religion are often considered to be examples. This usage is given point by the historical fact that "joiner" ideologies like Naziism or various forms of millennarian Christianity have exhibited plague-like cycles of exponential growth followed by collapses to small reservoir populations.
[{Jargon File}]
(1996-08-11)

memetic algorithm
[algorithm] A {genetic algorithm} or {evolutionary algorithm} which includes a non-genetic local search to improve genotypes. The term comes from the Richard Dawkin's term "{meme}".
One big difference between memes and genes is that memes are processed and possibly improved by the people that hold them - something that cannot happen to genes. It is this advantage that the memetic algorithm has over simple genetic or evolutionary algorithms.
These algorithms are useful in solving complex problems, such as the "{Travelling Salesman Problem}," which involves finding the shortest path through a large number of nodes, or in creating {artificial life} to test evolutionary theories.
Memetic algorithms are one kind of {metaheuristic}.
{UNLP memetic algorithms home page (http://www.ing.unlp.edu.ar/cetad/mos/memetic_home.html)}.
(07 July 1997)

memetics
[philosophy] /me-met'iks/ The study of {memes}.
As of mid-1993, this is still an extremely informal and speculative endeavor, though the first steps toward at least statistical rigor have been made by H. Keith Henson and others. Memetics is a popular topic for speculation among hackers, who like to see themselves as the architects of the new information ecologies in which memes live and replicate.
[{Jargon File}]
(2000-01-09)

memex
Memex
[hypertext] {Vannevar Bush}'s original name for {hypertext}, which he invented in the 1930s.
{Fantastic article (http://jefferson.village.virginia.edu/elab/hfl0051.html)}.
(2000-01-09)

memo function
[programming] (Or "memoised function") A {function} that remembers which {arguments} it has been called with and the result returned and, if called with the same arguments again, returns the result from its memory rather than recalculating it.
Memo functions were invented by Professor {Donald Michie} of {Edinburgh University}. The idea was further developed by {Robin Popplestone} in his {Pop2} language long before it was ever worked into LISP.
This same principle is found at the hardware level in computer architectures which use a {cache} to store recently accessed memory locations.
A {Common Lisp} package by Marty Hall [hall@aplcenmp.apl.jhu.edu] {(ftp://archive.cs.umbc.edu/pub/Memoization)}.
["'Memo' functions: and machine learning", Donald Michie, Nature, 218, 19-22, 1968].
(2002-07-02)

memoisation
{memo function}

memoised function
{memo function}

memoization
{memo function}

memoized function
{memo function}

memory
[storage] These days, usually used synonymously with {Random Access Memory} or {Read-Only Memory}, but in the general sense it can be any device that can hold {data} in {machine-readable} format.
(1996-05-25)

memory address space
[architecture] 1. Any part of a {processor}'s {address space} that is occupied by {memory}.
2. The range of addresses seen by a memory device relative to the base address at which it is mapped into the processor's address space.
(1999-11-01)

memory farts
[jargon, humour] The flatulent sounds that some {MS-DOS} box {BIOS}es (most notably {AMI}'s) make when checking memory at {boot} time.
[{Jargon File}]
(1994-11-02)

memory leak
[programming] 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}.
[{Jargon File}]
(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
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 {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 io
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}.
[{Jargon File}]
(1994-11-02)

memory type range registers
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
MEMS
{microelectromechanical system}

mentat
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
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}.
[{Jargon File}]
(1994-12-02)

menymas
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
Mercury Autocode
{Autocode} for the {Ferranti} {Mercury} machine.

mercury delay line
[storage, history] An archaic {first-in first-out} fixed time period data storage device using {acoustic transducers} to transmit data as waves in a trough or tube of mercury.
EDSAC (Cambridge) and UNIVAC I used delay lines.
(2002-06-12)

merise
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
Merlin
{OS/2}

meroon
MEROON
[language] An {object-oriented} system built on {Scheme}.
[What kind of system?]
{(ftp://nexus.yorku.ca/pub/scheme/new/)}.
(1997-05-05)

mesa
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
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
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
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
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
Message Transfer Agent
[messaging] (MTA, Mail Transport Agent) 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}, which communicates using {SMTP}.
[Other OSes?]
(1997-02-28)

messaging application programming interface
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 Applications Programming Interface
{Messaging Application Programming Interface}

messdos
mess-dos
/mes-dos/ (Or MS-DOG, Messy-DOS, mess-dross, mess-loss, mush-dos) Derisory term for {MS-DOS}. Often followed by the ritual banishing "Just say No!"
Most hackers (even many {MS-DOS} hackers) loathe {MS-DOS} for its single-tasking nature, its limits on application size, its nasty primitive interface, and its ties to {IBM}ness (see {fear and loathing}).
In Ireland and the UK it is sometimes called "Domestos" after a brand of toilet cleanser.
[{Jargon File}]
(1994-11-16)

meta
META
[language] The {assembly language} for the {CYBER 200}, developed at {CDC} ca 1977.
[CDC Pub 60256020].
[{Jargon File}]
(1994-11-16)

meta
[philosophy] /me't*/ or /may't*/ or (Commonwealth) /mee't*/ A prefix meaning one level of description higher. If X is some concept then meta-X is data about, or processes operating on, X.
For example, a {metasyntax} is {syntax} for specifying syntax, {metalanguage} is a language used to discuss language, {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.
[{Jargon File}]
(1999-04-06)

meta 5
META 5
Early syntax-directed {compiler-compiler}, used for translating one {high-level language} to another.
Versions: META II, META-3.
["META 5: A Tool to Manipulate Strings of Data", D.K. Oppenheim et al, Proc 21st Natl Conf, ACM 1966].
[Sammet 1969, p. 638].
(1995-01-23)

meta bit
The top bit of an 8-bit character, which is on in character values 128--255. Also called {high bit}, {alt bit}, or {hobbit}. Some terminals and consoles (see {space-cadet keyboard}) have a META shift key. Others (including, *mirabile dictu*, keyboards on IBM PC-class machines) have an ALT key. See also {bucky bits}.
Historical note: although in modern usage shaped by a universe of 8-bit bytes the meta bit is invariably {hex} 80 ({octal} 0200), things were different on earlier machines with 36 bit words and 9-bit bytes. The MIT and Stanford keyboards (see {space-cadet keyboard}) generated hex 100 (octal 400) from their meta keys.
[{Jargon File}]

meta element
META element
[World-Wide Web] An {element}, with tag name of "META", expressing {meta-data} about a given {HTML} document. HTML standards do not require that documents have META elements; but if META elements occur, they must be inside the document's HEAD element.
The META element can be used to identify properties of a document (e.g., author, expiration date, a list of key words, etc.) and assign values to those properties, typically by specifying a NAME {attribute} (to name the property) and a CONTENT attribute (to assign a value for that property). The HTML 4 specification doesn't standardise particular NAME properties or CONTENT values; but it is conventional to use a "Description" property to convey a short summary of the document, and a "Keywords" property to provide a list of {keywords} relevant to the document, as in:
[META NAME="Description" CONTENT="Information from around the world on kumquat farming techniques and current kumquat production and consumption data"] [META NAME="Keywords" CONTENT="kumquat, Fortunella"]
META elements with HTTP-EQUIV and CONTENT attributes can simulate the effect of {HTTP} header lines, as in:
[META HTTP-EQUIV="Expires" CONTENT="Tue, 22 Mar 2000 16:18:35 GMT"] [META HTTP-EQUIV="Refresh" CONTENT="10; URL=http://www.foldoc.org/"]
Other properties may be application-specific. For example, the {Robots Exclusion (http://info.webcrawler.com/mak/projects/robots/norobots.html)}. standard uses the "robots" property for asserting that the given document should not be indexed by robots, nor should links in it be followed:
[META NAME="robots" CONTENT="noindex,follow"]
(2001-02-07)

meta tag
META tag
{META element}

metacard
MetaCard
A commercial human interface and {hypertext} system for {Unix} and the {X Window System}, similar to {Hypercard}.
(1994-11-17)

metacase tool
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
Metaclass
The class of a class. A metaclass is a class whose instances are themselves classes.

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

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

metaii
Meta-II
An early {compiler-compiler}.
["Meta-II: a Syntax Oriented Compiler Writing Language", V. Schorre, Proc 19th ACM Natl Conf 1964].
(1995-01-23)

metainformation
{meta-data}

metaiv
Meta-IV
{Vienna Development Method Specification Language}

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

metal oxide semiconductor
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
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)

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.

metaphone
[algorithm, text] An {algorithm} for encoding a word so that similar sounding words encode the same. It's similar to {soundex} in purpose, but as it knows the basic rules of English pronunciation it's more accurate. The higher accuracy doesn't come free, though, metaphone requires more computational power as well as more storage capacity, but neither of these requirements are usually prohibitive. It is in the public domain so it can be freely implemented.
Metaphone was developed by Lawrence Philips [lphilips@verity.com]. It is described in ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995].
(1998-12-22)

metaprogram
A program which modifies or generates other programs. A {compiler} is an example of a metaprogram: it takes a program as input and produces another (compiled) one as output.
(1994-10-24)

metasyntactic variable
[grammar] Strictly, a {variable} used in {metasyntax}, but often used for any name used in examples and understood to stand for whatever thing is under discussion, or any random member of a class of things under discussion. The word {foo} is the {canonical} example. To avoid confusion, hackers never (well, hardly ever) use "foo" or other words like it as permanent names for anything.
In filenames, a common convention is that any filename beginning with a metasyntactic-variable name is a {scratch} file that may be deleted at any time.
To some extent, the list of one's preferred metasyntactic variables is a cultural signature. They occur both in series (used for related groups of variables or objects) and as singletons. Here are a few common signatures:
{foo}, {bar}, {baz}, {quux}, quuux, quuuux...: MIT/Stanford usage, now found everywhere. At MIT (but not at Stanford), {baz} dropped out of use for a while in the 1970s and '80s. A common recent mutation of this sequence inserts {qux} before {quux}.
bazola, ztesch: Stanford (from mid-'70s on).
{foo}, {bar}, thud, grunt: This series was popular at CMU. Other CMU-associated variables include ack, barf, foo, and {gorp}.
{foo}, {bar}, fum: This series is reported to be common at {Xerox PARC}.
{fred}, {barney}: See the entry for {fred}. These tend to be Britishisms.
{toto}, titi, tata, tutu: Standard series of metasyntactic variables among francophones.
{corge}, {grault}, {flarp}: Popular at Rutgers University and among {GOSMACS} hackers.
zxc, spqr, {wombat}: Cambridge University (England).
shme: Berkeley, GeoWorks, Ingres. Pronounced /shme/ with a short /e/.
{foo}, {bar}, zot: {Helsinki University of Technology}, Finland.
blarg, wibble: New Zealand
Of all these, only "foo" and "bar" are universal (and {baz} nearly so). The compounds {foobar} and "foobaz" also enjoy very wide currency.
Some jargon terms are also used as metasyntactic names; {barf} and {mumble}, for example.
See also {Commonwealth Hackish} for discussion of numerous metasyntactic variables found in Great Britain and the Commonwealth.
[{Jargon File}]
(1995-11-13)

metasyntax
[grammar] {Syntax} used to describe {syntax}. The best known example is {BNF} and its variants such as {EBNF}.
A {metasyntactic variable} is a {variable} used in {metasyntax}.
(1999-04-06)

metavlisp
Meta-Vlisp
[language] An innovative {Lisp} dialect by E. St.James of IBP, France.
(2000-12-19)

metenglish
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
METEOR
A version of COMIT with Lisp-like syntax, written in MIT Lisp 1.5 for the IBM 7090. "METEOR - A List Interpreter for String Transformation", D.G. Bobrow in The Programming Language LISP and its Interpretation, E.D. and D.G. Bobrow eds, 1964.

meter
[spelling] US spelling of "{metre}".
(1998-02-07)

method
[programming] The name given in {Smalltalk} and other {object-oriented languages} to a procedure or routine associated with one or more {classes}. An {object} of a certain class knows how to perform actions, e.g. printing itself or creating a new instance of itself, rather than the function (e.g. printing) knowing how to handle different types of object.
Different classes may define methods with the same name (i.e. methods may be {polymorphic}). The term "method" is used both for a named operation, e.g. "PRINT" and also for the code which a specific class provides to perform tha t operation.
Most methods operate on objects that are instances of a certain class. Some object-oriented languages call these "object methods" to distinguish then from "{class methods}".
In {Smalltalk}, a method is defined by giving its name, documentation, temporary local variables and a sequence of expressions separated by "."s.
(2000-03-22)

methodology
1. [programming] An organised, documented set of procedures and guidelines for one or more phases of the {software life cycle}, such as analysis or design. Many methodologies include a diagramming notation for documenting the results of the procedure; a step-by-step "cookbook" approach for carrying out the procedure; and an objective (ideally quantified) set of criteria for determining whether the results of the procedure are of acceptable quality.
An example is The {Yourdon methodology}.
2. A pretentious way of saying "method".
(1995-04-10)

methods
Methods
[language] A line-oriented {Smalltalk} for {PC}'s, produced by Digitalk ca 1985. Methods was the predecessor of {Smalltalk/V}.
(1995-04-16)

metre
[unit] (US "meter") The fundamental {SI} unit of length.
From 1889 to 1960, the metre was defined to be the distance between two scratches in a platinum-iridium bar kept in the vault beside the Standard Kilogram at the International Bureau of Weights and Measures near Paris.
This replaced an earlier definition as 10^-7 times the distance between the North Pole and the Equator along a meridian through Paris; unfortunately, this had been based on an inexact value of the circumference of the Earth.
From 1960 to 1984 it was defined to be 1650763.73 wavelengths of the orange-red line of krypton-86 propagating in a vacuum.
It is now defined as the length of the path traveled by light in a vacuum in the time interval of 1/299,792,458 of a second.
(1998-02-07)

metric
{software metric}

metric space
[mathematics] A set of points together with a {function}, d, called a metric function or distance function. The function assigns a positive {real number} to each pair of points, called the distance between them, such that:
1. For any point x, d(x,x)=0;
2. For any two distinct points x and y, d(x,y)]0;
3. For any two points x and y, not necessarily distinct,
d(x,y) = d(y,x).
4. For any three points x, y, and z, that are not necessarily distinct,
d(x,z) [= d(x,y) + d(y,z).
The distance from x to z does not exceed the sum of the distances from x to y and from y to z. The sum of the lengths of two sides of a triangle is equal to or exceeds the length of the third side.
(2003-06-26)

metropolitan area network
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)

mexpression lisp
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
MFC
{Microsoft Foundation Class}
(1995-11-16)

mfe
MFE
{maximal free expression}

mflops
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
MFM
{Modified Frequency Modulation}

mftl
MFTL
{My Favourite Toy Language}

mg
[networking] The {country code} for Madagascar.
(1999-01-27)

mgcp
MGCP
{Media Gateway Control Protocol}

mh
[networking] The {country code} for Marshall Islands.
(1999-01-27)

mhdl
MHDL
1. {MIMIC Hardware Description Language}.
2. {Microwave Hardware Description Language}.

mheg
MHEG
{Multimedia and Hypermedia information coding Expert Group}

mhs
MHS
{message handling system}

mhz
MHz
{MegaHertz}

mib
MIB
{Management Information Base}

mib variable
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)

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

mic2
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
MICE
{Multimedia Integrated Conferencing for European Researchers}

mice
{mouse}

michigan algorithm decoder
Michigan Algorithm Decoder
[language] (MAD) An early programming language, based on {IAL}, developed at the University of Michigan by R. Graham, Bruce Arden, and Bernard Galler in 1959.
MAD ran on the {IBM 704}, {IBM 709}, and {IBM 7090}, and was later ported to {Philco}, {Univac} and {CDC} computers. It was one of the first extensible languages: the user could define his own {operators} and {data types}.
{Mad/1} was a later version.
["Michigan Algorithm Decoder (The MAD Manual)", U Michigan Computing Center, 1966].
[Sammet 1969, p. 205].
(1999-12-10)

mickey
[unit, humour] The unit of resolution of {mouse} movement.
It has been suggested that the "disney" will become a benchmark unit for animation graphics performance.
[{Jargon File}]
(1999-06-30)

mickey mouse program
[jargon] The North American equivalent of a "{noddy} program", i.e. trivial. The term doesn't necessarily have the belittling connotations of mainstream slang "Oh, that's just mickey mouse stuff!"; sometimes trivial programs can be very useful.
[{Jargon File}]
(1995-04-10)

micr
MICR
{Magnetic Ink Character Recognition}

micro
{microprocessor}

micro
-
{prefix}

micro assembly language
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)

micro channel architecture
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)

micro instrumentation and telemetry systems
Micro Instrumentation and Telemetry Systems
[company] (MITS) The company which made the {Altair 8800} {micrcomputer} kit. They also made instrumentation kits for model rockets and RC vehicles. Ed Roberts owned MITS for a few years until he sold out, moved to Georgia, and went to med school.
Address: Albuquerque NM, USA.
(2002-06-17)

micro interpreter for knowledge engineering
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)

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

micro saint
MICRO SAINT
A general purpose simulation tool from US company {Micro Analysis and Design}.

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

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
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
MicroDroid
[{Usenet}] A {Microsoft} employee, especially one who posts to various operating-system advocacy newsgroups. MicroDroids post follow-ups to any messages critical of {Microsoft}'s operating systems, and often end up sounding like visiting Mormon missionaries.
[{Jargon File}]

microelectromechanical system
[hardware] (MEMS) The integration of mechanical structures (moving parts) with microelectronics. MEMS devices are "custom" designed for a purpose which requires a mechanical action to be controlled by a computer.
Applications include sensors, medical devices, process controls.
{(http://mems.mcnc.org/)}.
See also {nanotechnology}.
(1999-03-25)

microelectronics and computer technology corporation
Microelectronics and Computer Technology Corporation
[body] (MCC) One of the first, and now one of the largest, US computer industry research and development consortia.
Founded in late 1982 by major computer and semiconductor manufacturers, MCC's membership has diversified to include a broad range of high-profile corporations from electronics, computers, aerospace, semiconductors, and related industries, reflecting the full range of companies vital to the life cycle of {Information Technology} products. Active involvement of small- and medium-sized firms and technology users, along with well-established alliances with government research and development agencies and leading universities, allows MCC's partners to maximise the benefit of scarce research and development resources.
Some of the technical areas in which MCC has distinguished itself are:
System Architecture and Design (optimise hardware and software design, provide for scalability and interoperability, allow rapid prototyping for improved time-to-market, and support the re-engineering of existing systems for open systems).
Advanced Microelectronics Packaging and Interconnection (smaller, faster, more powerful, and cost-competitive).
Hardware Systems Engineering (tools and methodologies for cost-efficient, up-front design of advanced electronic systems, including modelling and design-for-test techniques to improve cost, yield, quality, and time-to-market).
Environmentally Conscious Technologies (process control and optimisation tools, information management and analysis capabilities, and non-hazardous material alternatives supporting cost-efficient production, waste minimisation, and reduced environmental impact).
Distributed {Information Technology} (managing and maintaining physically distributed corporate information resources on different {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
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}.
[{Jargon File}]

microfortnight
One millionth of the fundamental unit of time in the Furlong/Firkin/Fortnight system of measurement; 1.2096 sec. (A furlong is 1/8th of a mile; a firkin is 1/4th of a barrel; the mass unit of the system is taken to be a firkin of water).
The VMS operating system has a lot of tuning parameters that you can set with the SYSGEN utility, and one of these is TIMEPROMPTWAIT, the time the system will wait for an operator to set the correct date and time at boot if it realises that the current value is bogus. This time is specified in microfortnights!
Multiple uses of the millifortnight (about 20 minutes) and {nanofortnight} have also been reported.

micrognuemacs
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, and Dave Brower [rtech!daveb@sun.com].
{(ftp://src.doc.ic.ac.uk/usenet/comp.sources.unix/volume8/micrognu)}.
(2000-04-03)

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
microLenat
/mi:"-kroh-len"-*t/ The unit of {bogosity}, written uL; the consensus is that this is the largest unit practical for everyday use. The microLenat, originally invented by David Jefferson, was promulgated as an attack against noted computer scientist {Doug Lenat} by a {tenured graduate student} at {CMU}. Doug had failed the student on an important exam for giving only "AI is bogus" as his answer to the questions. The slur is generally considered unmerited, but it has become a running gag nevertheless. Some of Doug's friends argue that *of course* a microLenat is bogus, since it is only one millionth of a Lenat. Others have suggested that the unit should be redesignated after the grad student, as the microReid.
[{Jargon File}]

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)

micron
{micrometre}

micron
Micron
{Micron Electronics, Inc.}

micron electronics inc
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
Micronetics Standard MUMPS
(MSM) A version of {MUMPS} for the {IBM PC RT} and {R6000}.
[Address?]
(1995-01-10)

microoft
Micro$oft
[abuse, company] {Microsoft}.
{Hate Mirco$oft (http://www.oeh.uni-linz.ac.at:8001/~chris/HATE/hate.html)}.
(1995-03-03)

microphone
[hardware, audio] Any electromechanical device designed to convert sound into an electrical signal.
A microphone converts an acoustic waveform consisting of alternating high and low air pressure travelling through the air into a voltage. To do this it uses some kind of pressure or movement sensor. The simplest kind of microphone is actually very similar in construction to a {loudspeaker}.
The analogue electrical signal can be fed into a computer's {sound card} where it is amplified and {sampled} to convert it into a {digital} waveform for storage or transmission.
(2002-11-04)

microplanner
microPLANNER
A subset of {PLANNER}, implemented in {Lisp} by {Gerald Sussman} et al at {MIT}. Its important features were goal-oriented, pattern-directed procedure invocation, an embedded knowledge base, and automatic {backtracking}.
microPLANNER was superseded by {Conniver}.
["microPLANNER Reference Manual", G.J. Sussman et al, AI Memo 203, MIT AI Lab, 1970].
(1995-01-10)

microprocesor
[spelling] It's spelled {microprocessor}.
(1997-02-13)

microprocessor
[architecture] (Or "micro") A computer whose entire {CPU} is contained on one (or a small number of) {integrated circuits}.
The important characteristics of a microprocessor are the widths of its internal and external {address bus} and {data bus} (and instruction), its {clock rate} and its {instruction set}. Processors are also often classified as either {RISC} or {CISC}.
The first commercial microprocessor was the {Intel 4004} which appeared in 1971. This was the CPU member of a set of four {LSI} {integrated circuits} called the MCS-4, which was originally designed for use in a calculator but was marketed as "programmable controller for logic replacement". The 4004 is referred to as a 4-bit microprocessor since it processed only 4 bits of data at a time. This very short word size is due mainly to the limitations imposed by the maximum integrated circuit density then achievable.
As integrated circuit densities increased with the rapid development of integrated circuit manufacturing technology, the power and performance of the microprocessors also increased. This is reflected in the increase in the CPU word size to 4, 8, 16, and by mid-1980s, 32 bits. The smaller microprocessors have relatively simple {instruction sets}, e.g., no {floating point} instructions, but they are nevertheless suitable as controllers for a very wide range of applications such as car engines and microwave ovens.
The {Intel 4004} was followed with, among others the {4040}, {8008}, {8080}, {8086}, {80186}, {80286}, {80386}, {486} and {Pentium}. Other families include the {Motorola} {6800} and {680x0} families, {National Semiconductor} {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}.
(2002-07-16)

microprocessor without interlocked pipeline stages
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
microReid
/mi:'kroh-reed/ See {bogosity}.
[{Jargon File}]

microsecond
[unit] One millionth (10^-6) of a second.
(1995-03-14)

microserf
Microserf
[jargon] {Wired magazine}'s term for a {Microsoft} employee.
(1995-03-02)

microslop
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
Microsloth Windows
[abuse, operating system] /mi:'kroh-sloth" win"dohz/ (Or "Windoze", /win'dohz/) A derogatory term for {Microsoft Windows} which is so limited by bug-for-bug compatibility with {mess-dos} that it is agonisingly slow on anything less than a fast {486}. Also called just "Windoze", with the implication that you can fall asleep waiting for it to do anything; the latter term is extremely common on {Usenet}.
Compare {X}, {sun-stools}.
[{Jargon File}]
(1996-10-08)

microsoft
Microsoft
{Microsoft Corporation}

microsoft access
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
Microsoft Basic
[language] (MS-BASIC) A dialect of {BASIC} from {Microsoft}, originally developed by {Bill Gates} in a garage back in the {CP/M} days. It was originally known as GWBasic, then QBASIC and finally MS-BASIC.
When the {MS-DOS} {operating system} came out, it incorporated the GWBASIC.EXE or BASICA.EXE interpreters. GWBASIC ("Gee Whiz") incorporated graphics and a {screen editor} and was compatible with earlier BASICs.
QBASIC was more sophisticated. Version 4.5 had a full screen editor, debugger and compiler. The compiler could also produce executable files but to run these a utility program (BRUN44.EXE) had to be present. Thus {source code} could be kept private.
From DOS 5.0 or 6.0 onward, MS-BASIC was standard.
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 solution developer
Microsoft Certified Solution Developer
[programming, education] (MCSD) A course for the {VAR} or software {developer}. Candidates must pass three core exams and an elective exam. The core exams cover {systems analysis}, and {desktop} and {distributed} development.
{(http://www.microsoft.com/mcsd)}.
(2001-05-20)

microsoft certified system engineer
Microsoft Certified System Engineer
[education] (MCSE) A qualification obtained by passing {Microsoft}'s system engineer certification exams.
{(http://www.microsoft.com/mcse)}.
(2002-07-02)

microsoft certified systems developer
Microsoft Certified Systems Developer
[spelling] Do you mean {Microsoft Certified Solution Developer} or {Microsoft Certified System Engineer}?
(2001-05-20)

microsoft corporation
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
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, as of 1997-01-14.
{Home (http://www.microsoft.com/msexcel/)}.
[Feature summary? History?]
(1997-01-14)

microsoft exchange
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
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
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
Microsoft IIS
{Internet Information Server}

microsoft intellimouse explorer
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
Microsoft Internet Information Server
{Internet Information Server}

microsoft mail
Microsoft Mail
[messaging, tool] (MS Mail) A {Microsoft Windows} {electronic mail} program.
[Features? Version?]
(1996-08-26)

microsoft mail application program interface
Microsoft Mail Application Program Interface
{Messaging Application Programming Interface}

microsoft network
Microsoft Network
{The Microsoft Network}

microsoft networking
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
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
Microsoft Point to Point Encryption
[protocol] (MPPE) An {encryption} {protocol} that may be used with {PPTP} to provide an encrypted connection.
(1998-09-24)

microsoft project
Microsoft Project
[product] A {Microsoft Windows} program offering various {project management} tools.
{(http://www.microsoft.com/office/project/)}.
(2003-07-02)

microsoft sql server
Microsoft SQL Server
[database] A {relational database management system} (RDBMS) which is part of {Microsoft}'s {BackOffice} family of {servers}. SQL Server was designed for {client/server} use and is accessed by applications using {SQL}. It runs on {Windows NT} version 3.5 or higher and is compliant with the {ANSI} {SQL-92} and {FIPS} 127-2 {SQL} {standards}.
SQL Server supports {symmetric multiprocessing} hardware; {SNMP}, {ODBC}, and major {open standard} communications {protocols}. It has {Internet} integration, data {replication}, and {data warehousing} features.
Microsoft SQL Server was originally developed by {Sybase Corporation} but the cooperation was broken sometime [when?] before version 6.0.
Latest version: 7.0. [Or is it 2000?]
{Home (http://www.microsoft.com/sql)}.
{Usenet} newsgroup: {news:comp.databases.ms-sqlserver}.
(2001-04-27)

microsoft windows
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
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)

microstation
MicroStation
[application] A full-featured 2-D and 3-D {CAD} program for {MS-DOS}, {Microsoft Windows}, {Macintosh}, and {Unix} {workstations} from {Bentley Systems, Inc.} Created in 1984, MicroStation is a high-end package used worldwide in environments where many designers work on large, complex projects. MicroStation Modeler is a superset of MicroStation that provides {solid modelling}, and MasterPiece is MicroStation's {rendering} and {animation} program.
(2001-04-19)

microtape
[hardware, storage] /mi:'kroh-tayp/ Occasionally used to mean a {DECtape}, as opposed to a {macrotape}.
Apparently the term "microtape" was actually the official term used within DEC for these tapes until someone coined the word "DECtape", which, of course, sounded sexier to the {marketroid}s. Another version of the story holds that someone discovered a conflict with another company's "microtape" trademark.
[{Jargon File}]
(1995-03-16)

microware corporation
Microware Corporation
Authors of {OS-9}.
Address: Des Moines, Iowa, USA.
(1995-02-02)

microwave hardware description language
Microwave Hardware Description Language
[language, hardware] (MHDL) A {Hardware Description Language} by David Barton[?] from {Intermetrics} incorporating {Haskell} 1.2.
Not to be confused with other {MHDL}s.
(2000-11-14)

midas
MIDAS
A digital simulation language.
[Sammet 1969, p.627].

midas
Midas
A {Motif}-based toolkit for interactive data analysis by T. Johnson, SLAC. The basis for the {Midas-WWW} {browser}.

midaswww
Midas-WWW
[World-Wide Web] A {Motif}-based {browser} for {WWW} based on the {Midas} toolkit.
(1998-08-09)

middleendian
middle-endian
[data, architecture] Neither {big-endian} nor {little-endian}. Used of perverse byte orders such as 3-4-1-2 or 2-1-4-3, occasionally found in the {packed decimal} formats of some {minicomputer} manufacturers.
See {-endian}.
[{Jargon File}]
(1998-08-09)

middleware
Software that mediates between an {application program} and a {network}. It manages the interaction between disparate applications across the heterogeneous computing {platform}s. The {Object Request Broker} (ORB), software that manages communication between {objects}, is an example of a middleware program.

midi
MIDI
{Musical Instrument Digital Interface}

midlevel network
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
MIF
{Maker Interchange Format}

mig
MIG
{Mach Interface Generator}

migraines
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
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
MIIS
[language] /Meese/ An interpreted language with one-letter {keywords}.
[Details? Similar to {MUMPS}?]
(1995-01-10)

mike
MIKE
{Micro Interpreter for Knowledge Engineering}

mil
[networking] The {top-level domain} for entities affiliated with US armed forces.
(1999-01-26)

milarepa
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
MILITRAN
A {discrete simulation} system for military applications produced by the Sys Res Group at {ONR} in 1964.
[Sammet 1969, p. 657].
(1994-11-11)

mill
{Arithmetic and Logic Unit}

millennium bug
{Year 2000}

millennium meltdown
{Year 2000}

milli
-
{prefix}

millihelen
[unit, humour] The amount of beauty required to launch one ship.
(2002-03-19)

millilampson
milliLampson
/mil'*-lamp"sn/ A unit of talking speed, abbreviated mL. Most people run about 200 milliLampsons. The eponymous Butler Lampson (a CS theorist and systems implementor highly regarded among hackers) goes at 1000. A few people speak faster. This unit is sometimes used to compare the (sometimes widely disparate) rates at which people can generate ideas and actually emit them in speech. For example, noted computer architect C. Gordon Bell (designer of the {PDP-11}) is said, with some awe, to think at about 1200 mL but only talk at about 300; he is frequently reduced to fragments of sentences as his mouth tries to keep up with his speeding brain.
[{Jargon File}]

millisecond
[unit] (ms) One thousandth of a second, one thousand {microsecond}s. A long time for a modern computer.
(1995-08-18)

milnet
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
MIMD
{Multiple Instruction/Multiple Data}

mime
MIME
{Multipurpose Internet Mail Extensions}

mime type
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)

mimencode
(Originally distributed as "mmencode"). A replacement for {uuencode} for use in {electronic mail} and {news}. Part of {MIME}. uuencode uses characters that don"t translate well across all mail gateways (particularly those which convert between {ASCII} and {EBCDIC}). Also, different variants of uuencode encode data in different and incompatible ways, with no standard. Finally, few uuencode variants work well in a pipe. Mimencode implements the encodings which were defined for {MIME} as uuencode replacements, and should be considerably more robust for e-mail use. Written by Nathaniel S. Borenstein of Bell Communications Research, Inc. ({Bellcore}) in 1991.

mimer sql
Mimer SQL
[database] A {relational database management system}, free for non-commercial use, developed by the Swedish company {Upright Database Technology AB}.
{Mimer Home (http://developer.mimer.com)}.
(2002-06-03)

mimic
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
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
Minerva software
A company producing software for the {Acorn} {Archimedes}.
{(http://www.zynet.co.uk/minerva/)}.
(1995-01-31)

mini disc
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)

mini pli
Mini PL/I
A commercial {PL/I} subset for the {Olivetti} {Audit 7} {minicomputer}.

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

minifloppy
[storage] 5.25-inch {vanilla} floppy disks, as opposed to 3.5-inch or {microfloppies} and the now-obsolescent 8-inch variety.
At one time, this term was a trademark of {Shugart Associates} for their SA-400 minifloppy drive. Nobody paid any attention.
See {stiffy}.
(1996-05-03)

minimal automaton
[theory] An {automaton} possessing with {redundant states}.
(1996-05-03)

minimax
[games] An {algorithm} for choosing the next move in a two player game. A player moves so as to maximise the minimum value of his opponent's possible following moves. If it is my turn to move, I give a value to each legal move I might make. If the result of a move is an immediate win for me I give it positive infinity and, if it is an immediate win for you, negative infinity. The value to me of any other move is the minimum of the values resulting from each of your possible replies.
The above algorithm will give every move a value of positive or negative infinity since the value of every move will be the value of some final winning or losing move. This can be extended if we can supply a {heuristic} {evaluation function} which gives values to non-final game states without considering all possible following complete sequences. We can then limit the minimax algorithm to look only a certain number of moves ahead. This number is called the "look-ahead" or "ply".
See also {alpha/beta pruning}.
[Is "maximin" used? Is it significantly different?]
(2000-12-07)

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

minitab ii
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
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
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
[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
MINT
{Mint Is Not TRAC}

mint is not trac
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
Minuet
[networking] {Minnesota Internet Users Essential Tool}.

minuit
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
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.}
[{Jargon File}]
(1996-03-01)

mips project
MIPS project
{Microprocessor without Interlocked Pipeline Stages}

mips r2000
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
MIPS R2010
A {FPU} for the {MIPS R2000}.
(1995-02-09)

mips r3000
MIPS R3000
A version of the {MIPS R2000} with improved {cache} control.
(1995-02-09)

mips r4000
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
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
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
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} 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://www.foldoc.org/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
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 gnu.org. There are also several {mirrors of this dictionary (http://www.foldoc.org/foldoc/mirrors.html)}.
(1998-06-11)

mirroring
{mirror}

mis
MIS
{Management Information System}

misbug
/mis-buhg/ [MIT] An unintended property of a program that turns out to be useful; something that should have been a {bug} but turns out to be a {feature}. Usage: rare. Compare {green lightning}. See {miswart}.
[{Jargon File}]

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
MISHAP
Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16, (May 1959).

missedemfive
Missed'em-five
[operating system, abuse] (Or "SysVile" /sis-vi:l'/) A pejorative hackerism for AT&T {System V} {Unix}, generally used by {BSD} partisans in a bigoted mood.
See {software bloat}, {Berzerkeley}.
[{Jargon File}]
(1998-07-01)

missile address
{ICBM address}

miswart
/mis-wort/ [By analogy with {misbug}] A {feature} that superficially appears to be a {wart} but has been determined to be the {Right Thing}. For example, in some versions of the {Emacs} text editor, the "transpose characters" command exchanges the character under the cursor with the one before it on the screen, *except* when the cursor is at the end of a line, in which case the two characters before the cursor are exchanged. While this behaviour is perhaps surprising, and certainly inconsistent, it has been found through extensive experimentation to be what most users want. This feature is a miswart.
[{Jargon File}]

mit
MIT
{Massachusetts Institute of Technology}

mit ai lab
MIT AI Lab
[body] ({Massachusetts Institute of Technology} {artificial intelligence} laboratory) Workplace of many famous AI researchers at MIT including {GLS} and {RMS}.
{Home (http://www.ai.mit.edu/)}.
Address: 545 Technology Sq., Cambridge, MA 02139, USA.
(2003-02-28)

mit lisp machine
MIT Lisp Machine
{Lisp Machine}

mit research laboratory for electronics
MIT Research Laboratory for Electronics
[body]
See also {Jay Forrester}, {core memory}, the {Whirlwind} computer, {MIT Lincoln Laboratory}.
[Summary?]
(1999-12-16)

mit scheme
MIT Scheme
[language] (Previously "C-Scheme") A {Scheme} implementation by the {MIT} Scheme Team (Chris Hanson, Jim Miller, Bill Rozas, and many others) with a rich set of utilities, a compiler called {Liar} and an editor called {Edwin}.
MIT Scheme includes an {interpreter}, large {run-time library}, {Emacs} {macros}, {native-code compiler}, emacs-like editor, and a {source-level debugger}.
Current version: 7.7.1, as of 2002-06-18.
{MIT Scheme} conforms fully with {R4RS} and almost with the {IEEE Scheme} {standard}. It runs on {Motorola 68000}: {HP9000}, {Sun-3}, {NeXT}; {MIPS}: {Decstation}, {Sony}, {SGI}; {HP-PA}: 600, 700, 800; {VAX}: {Ultrix}, {BSD}, {DEC} {Alpha}: {OSF}; {Intel i386}: {MS-DOS}, {MS Windows}, and various other {Unix} systems.
See also: {LAP}, {Schematik}, {Scode}.
{Home (http://www.gnu.org/software/mit-scheme/)}.
{Usenet} newsgroup: {news:comp.lang.scheme.c}.
Mailing list: mit-scheme-announce@gnu.org (cross-posted to news).
E-mail: [mit-scheme-devel@gnu.org] (maintainers).
(2003-08-14)

miti
MITI
{SQRIBE}

mitilac
MITILAC
[language] An early system on the {IBM 650}.
[Listed in CACM 2(5):16, May 1959].
(1998-09-24)

mitre corporation
MITRE Corporation
[body] A US federally funded R&D center, spun off in 1958 from the {MIT Lincoln Laboratory} (also an FFRDC). MITRE is a non-profit corporation chartered to do R&D in the public interest.
MITRE were responsible for system engineering and implementation oversight of {SAGE}.
MITRE does not stand for MIT Research and Engineering, though it could have.
{Home (http://www.mitre.org/)}.
(1999-12-16)

mits
MITS
{Micro Instrumentation and Telemetry Systems}

mix
MIX
Knuth's hypothetical machine, used in The Art of Computer Programming v.1, Donald Knuth, A-W 1969.

mix communications
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)

mixal
MIXAL
MIX Assembly Language.
The {assembly language} for {Donald Knuth}'s hypothetical {MIX} machine.
(1995-01-05)

mjpeg
M-JPEG
{Moving JPEG}

mjs
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
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 kit
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)

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

ml2000
ML-2000
An extension and redesign of {Standard ML}. Under development.

mlab
MLAB
Modeling LABoratory. An interactive mathematical modelling system.
["MLAB, An On-Line Modeling Laboratory", NIH (Mar 1975)].
(1994-10-13)

mli
ML/I
Early macro translating system. P.J. Brown, CACM 10(10):618-623, (Oct 1967).

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

mll
MLL
Medium-Level Language.
Sometimes used half-jokingly to describe {C}, alluding to its "structured-assembler" image.
(1994-12-07)

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

mllinda
ML-Linda
U Edinburgh, under development.

mltwig
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
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
MMCD
[storage] {MultiMedia Compact Disc}.
(1995-11-23)

mmdf
MMDF
{Multi-channel Memorandum Distribution Facility}

mmi
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
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
MMU
{Memory Management Unit}

mmx
MMX
{Matrix Math eXtensions}

mmx technology
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
MNP
{Microcom Networking Protocol}

mo
[networking] The {country code} for Macau.
(1999-01-27)

mobile triton
Mobile Triton
[processor] (Official name 82430MX) A version of {Intel}'s {Triton} I processor chip set intended for mobile computers.
Mobile Triton consists of one 82437MX and two 82438MX.
[Special features?]
(1996-04-03)

mobo
{motherboard}

mobssluaf
MOBSSL-UAF
Merritt and Miller's Own Block-Structured Simulation Language-Unpronounceable Acronym For.
A l for interactive continuous {simulation}.
["MOBSSL - An Augmented Block Structured Continuous System Simulation Language for Digital and Hybrid Computers", M.J. Merritt et al, Proc FJCC 35, AFIPS (Fall 1969)].
(1995-01-31)

moby
[jargon] /moh'bee/ (From {MIT}, seems to have been in use among model railroad fans years ago. Derived from Melville's "Moby Dick", some say from "Moby Pickle") 1. Large, immense, complex, impressive. "A Saturn V rocket is a truly moby frob." "Some MIT undergrads pulled off a moby hack at the Harvard-Yale game."
2. (Obsolete) The maximum {address space} of a computer (see below). For a 680[234]0 or {VAX} or most modern 32-bit architectures, it is 4,294,967,296 8-bit bytes (four {gigabytes}).
3. A title of address (never of third-person reference), usually used to show admiration, respect, and/or friendliness to a competent hacker. "Greetings, moby Dave. How's that address-book thing for the Mac going?"
4. In backgammon, doubles on the dice, as in "moby sixes", "moby ones", etc. Compare this with {bignum}: double sixes are both bignums and moby sixes, but moby ones are not bignums (the use of "moby" to describe double ones is sarcastic).
5. The largest available unit of something which is available in discrete increments. Thus a "moby Coke" is not just large, it's the largest size on sale.
This term entered hackerdom with the Fabritek 256K memory added to the MIT AI PDP-6 machine, which was considered unimaginably huge when it was installed in the 1960s (at a time when a more typical memory size for a {time-sharing} system was 72 kilobytes). Thus, a moby is classically 256K 36-bit words, the size of a PDP-6 or PDP-10 moby. Back when {address registers} were narrow the term was more generally useful, because when a computer had {virtual memory} mapping, it might actually have more physical memory attached to it than any one program could access directly. One could then say "This computer has six mobies" meaning that the ratio of physical memory to address space is six, without having to say specifically how much memory there actually is. That in turn implied that the computer could timeshare six "full-sized" programs without having to swap programs between memory and disk.
Nowadays the low cost of processor logic means that address spaces are usually larger than the most physical memory you can cram onto a machine, so most systems have much *less* than one theoretical "native" moby of {core}. Also, more modern memory-management techniques (especially paging) make the "moby count" less significant. However, there is one series of widely-used chips for which the term could stand to be revived --- the Intel 8088 and 80286 with their incredibly {brain-damaged} segmented-memory designs. On these, a "moby" would be the 1-megabyte address span of a segment/offset pair (by coincidence, a PDP-10 moby was exactly one megabyte of nine-bit bytes).
[{Jargon File}]
(1997-10-01)

mock lisp
Mock Lisp
The {Lisp} used by the {Gosling Emacs} editor.

mockingbird
Software that intercepts communications (especially login transactions) between users and hosts and provides system-like responses to the users while saving their responses (especially account IDs and passwords). A special case of {Trojan Horse}.
[{Jargon File}]

mockingboard
Mockingboard
[hardware] A sound and speech board for the {Apple II} computer, on sale in 1978.
See also {zxnrbl}.
(1997-03-18)

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
*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)].
[{Jargon File}]
(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
MODCAL
A version of {HP-PASCAL} enhanced with system programming constructs, used internally by {HP}.
(1995-02-07)

mode
Mode
An {object-oriented language}.
["The Programming Language Mode: Language Definition and User Guide", J. Vihavainen, C-1987-50, U Helsinki, 1987].
[{Jargon File}]
(1994-10-21)

mode
1. A general state, usually used with an adjective describing the state. Use of the word "mode" rather than "state" implies that the state is extended over time, and probably also that some activity characteristic of that state is being carried out. "No time to hack; I'm in thesis mode."
In its jargon sense, "mode" is most often attributed to people, though it is sometimes applied to programs and inanimate objects. In particular, see {hack mode}, {day mode}, {night mode}, {demo mode}, {fireworks mode}, and {yoyo mode}; also {chat}.
2. More technically, a mode is a special state that certain user interfaces must pass into in order to perform certain functions. For example, in order to insert characters into a document in the Unix editor "vi", one must type the "i" key, which invokes the "Insert" command. The effect of this command is to put vi into "insert mode", in which typing the "i" key has a quite different effect (to wit, it inserts an "i" into the document). One must then hit another special key, "ESC", in order to leave "insert mode". Nowadays, modeful interfaces are generally considered {losing} but survive in quite a few widely used tools built in less enlightened times.
[{Jargon File}]
(1994-12-22)

mode bit
A {flag}, usually in hardware, that selects between two (usually quite different) modes of operation. The connotations are different from {flag} bit in that mode bits are mainly written during a boot or set-up phase, are seldom explicitly read, and seldom change over the lifetime of an ordinary program. The classic example was the EBCDIC-vs.-ASCII bit (#12) of the Program Status Word of the {IBM 360}. Another was the bit on a PDP-12 that controlled whether it ran the PDP-8 or the LINC instruction set.
[{Jargon File}]

modef
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
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}.
Note: British spelling: "modelling", US: "modeling".
(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)

model view controller
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.

modeling
[spelling] US spelling of "{model}ling".
(1999-12-10)

modelling
{model}

modelsim
Modelsim
[simulation] A simulation tool for programming {VLSI} {ASIC}s, {FPGA}s, {CPLD}s, and {SoC}s.
{Manual by Arnd Riebartsch (http://www.arieba.net/simulators.htm#ModelSim)}.
(2003-07-19)

modem
[hardware, communications] (Modulator/demodulator) An electronic device for converting between serial data (typically {EIA-232}) from a computer and an audio signal suitable for transmission over a telephone line connected to another modem. In one scheme the audio signal is composed of silence (no data) or one of two frequencies representing zero and one.
Modems are distinguished primarily by the maximum data rate they support. Data rates can range from 75 bits per second up to 56000 and beyond. Data from the user (i.e. flowing from the local terminal or computer via the modem to the telephone line) is sometimes at a lower rate than the other direction, on the assumption that the user cannot type more than a few characters per second.
Various data {compression} and error correction {algorithms} are required to support the highest speeds. Other optional features are {auto-dial} (auto-call) and {auto-answer} which allow the computer to initiate and accept calls without human intervention. Most modern modems support a number of different {protocols}, and two modems, when first connected, will automatically negotiate to find a common protocol (this process may be audible through the modem or computer's loudspeakers). Some modem protocols allow the two modems to renegotiate ("retrain") if the initial choice of data rate is too high and gives too many transmission errors.
A modem may either be internal (connected to the computer's {bus}) or external ("stand-alone", connected to one of the computer's {serial ports}). The actual speed of transmission in characters per second depends not just the modem-to-modem data rate, but also on the speed with which the processor can transfer data to and from the modem, the kind of compression used and whether the data is compressed by the processor or the modem, the amount of noise on the telephone line (which causes retransmissions), the serial character format (typically {8N1}: one {start bit}, eight data bits, no {parity}, one {stop bit}).
See also {acoustic coupler}, {adaptive answering}, {baud barf}, {Bulletin Board System}, {Caller ID}, {SoftModem}, {U.S. Robotics}, {UUCP}, {whalesong}.
{Usenet} newsgroup: {news:comp.dcom.modems}.
(2002-05-04)

modem7
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
Modified Frequency Modulation
[storage] (MFM, Modified {FM}, or sometimes "Multiple Frequency Modulation") A modification to the original {frequency modulation} scheme for encoding data on {magnetic disks}. MFM allows more than 1 symbol per flux transition (up to 3), giving greater density of data. It is used with a data rate of between 250-500 kbit/s on industry standard 3.5" and 5.25" low and high density {diskettes}, and up to 5 Mbit/s on {ST-506} {hard disks}. Except for 1.44 MB floppy disks, this encoding is obsolete.
Other data encoding schemes include {GCR}, {FM}, {RLL}. See also: {PRML}.
(2002-06-24)

modifier
[programming] An operation that alters the state of an {object}. Modifiers often have names that begin with "set" and corresponding {selector} functions whose names begin with "get".
(1998-01-12)

modsim
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
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
Modula
{MODUlar LAnguage}

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

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

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

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

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

modula3pi
Modula-3pi
Machine-independent intermediate language for compilation of Modula-3*. "Modula-3pi Language Definition", E.A. Heinz, TR, U Karlsruhe 1993.

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

modulaprolog
Modula-Prolog
Adds a Prolog layer to Modula-2. "Modula-Prolog: A Software Development Tool", C. Muller IEEE Software pp.39-45 (Nov 1986).

modular
Modula/R
Modula with relational database constructs added. LIDAS Group (J. Koch, M. Mall, P. Putfarken, M. Reimer, J.W. Schmidt, C.A. Zehnder) "Modula/R Report", LIDAS Memo 091-83, ETH Zurich, Sep 1983.

modular arithmetic
[mathematics] (Or "clock arithmetic") A kind of integer arithmetic that reduces all numbers to one of a fixed set [0..N-1] (this would be "modulo N arithmetic") by effectively repeatedly adding or subtracting N (the "modulus") until the result is within this range.
The original mathematical usage considers only _equivalence_ modulo N. The numbers being compared can take any values, what matters is whether they differ by a multiple of N. Computing usage however, considers modulo to be an operator that returns the remainder after integer division of its first argument by its second.
Ordinary "clock arithmetic" is like modular arithmetic except that the range is [1..12] whereas modulo 12 would be [0..11].
(2003-03-28)

modular c
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
MODUlar LAnguage
[language] (Modula) {Wirth}'s 1977 predecessor of {Modula-2}. The original Modula was, more oriented toward {concurrent} programming, but otherwise quite similar.
["Modula - A Language for Modular Multiprogramming", N. Wirth, Soft Prac & Exp 7(1):3-35, Jan 1977].
(1999-07-12)

modular prolog
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 sbprolog
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
Modulex
Based on Modula-2. Mentioned by M.P. Atkinson & J.W. Schmidt in a tutorial in Zurich, 1989.

modulo
/mod'yu-loh/
1. [mathematics] {modular arithmetic}.
2. [mathematics] {modulo operator}.
(1999-07-12)

modulo arithmetic
{modular arithmetic}

modulo operator
[mathematics] (mod) The operator that returns the remainder after integer division of its first argument by its second. Written as "%" in {C} and some other languages.
Where the second argument is a power of two, the result can be calculated much more quickly using {bitwise and} with the appropriate {bit-mask}.
(1999-07-12)

mollyguard
molly-guard
/mol'ee-gard/ [University of Illinois] A shield to prevent tripping of some {Big Red Switch} by clumsy or ignorant hands. Originally used of the plexiglass covers improvised for the BRS on an IBM 4341 after a programmer's toddler daughter (named Molly) frobbed it twice in one day. Later generalised to covers over stop/reset switches on disk drives and networking equipment.
[{Jargon File}]

monad
[theory, functional programming] /mo'nad/ A technique from {category theory} which has been adopted as a way of dealing with {state} in {functional programming languages} in such a way that the details of the state are hidden or abstracted out of code that merely passes it on unchanged.
A monad has three components: a means of augmenting an existing type, a means of creating a default value of this new type from a value of the original type, and a replacement for the basic application operator for the old type that works with the new type.
The alternative to passing state via a monad is to add an extra argument and return value to many functions which have no interest in that state. Monads can encapsulate state, side effects, exception handling, global data, etc. in a purely lazily functional way.
A monad can be expressed as the triple, (M, unitM, bindM) where M is a function on types and (using {Haskell} 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) ))
(2000-03-09)

monadic
1. [programming] {unary}, when describing an {operator} or {function}. The term is part of the {dyadic}, {niladic} sequence.
2. [theory] See {monad}.
(1998-07-24)

mongolian hordes technique
Mongolian Hordes technique
[programming, jargon] (Or "Chinese Army technique") Assigning a large number of inexperienced programmers to a job which would better performed by a few skilled ones. The term was first used by Dr. Fred Brooks in his book "{The Mythical Man-Month}", Chapter 3.
According to Dr. Brooks, he had in mind the vision of the Mongol Hordes sweeping across Asia and Europe when he created the term.
[{Jargon File}]
(1996-06-20)

moniter
[spelling] It's spelled "{monitor}".
(1996-11-28)

monitor
1. A {cathode-ray tube} and associated electronics connected to a computer's video output. A monitor may be either {monochrome} (black and white) or colour ({RGB}). Colour monitors may show either digital colour (each of the red, green and blue signals may be either on or off, giving eight possible colours: black, white, red, green, blue, cyan, magenta and yellow) or analog colour (red, green and blue signals are continuously variable allowing any combination to be displayed). Digital monitors are sometimes known as {TTL} because the voltages on the red, green and blue inputs are compatible with TTL logic chips.
See also {gamut}, {multisync}, {visual display unit}.
2. A programming language construct which encapsulates variables, access procedures and initialisation code within an abstract data type. The monitor's variable may only be accessed via its access procedures and only one process may be actively accessing the monitor at any one time. The access procedures are {critical 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
monkey, scratch
{scratch monkey}

monkey sort
{bogo-sort}

monkey up
To hack together hardware for a particular task, especially a one-shot job. Connotes an extremely crufty and consciously temporary solution. Compare {hack up}, {kluge up}.

mono
Mono
[software, .NET] An {open source} {.NET framework} for {Unix}.
{Mono Home (http://www.go-mono.com/)}.
(2003-09-24)

monochrome
[graphics] Literally "one colour". Usually used for a black and white (or sometimes green or orange) {monitor} as distinct from a color monitor. Normally, each {pixel} on the display will correspond to a single bit of {display memory} and will therefore be one of two intensities. A {grey-scale} display requires several bits per {pixel} but might still be called monochrome.
Compare: {bitonal}.
(1994-11-24)

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
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
Montage
An {object-relational database management system} from {Montage Software}, the commercialisation of {POSTGRES}.
(1995-02-23)

monte carlo
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.
[{Jargon File}]

moo
MOO
{MUD Object Oriented}

moof
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.
[{Jargon File}]

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

moores law
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}.
[{Jargon File}]
(1997-03-04)

moose call
{whalesong}

mooz
MooZ
[language, specification] An {object-oriented} extension of {Z}.
["Object Orientation in Z", S. Stepney et al eds, Springer 1992].
(1997-07-09)

mops
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
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.
[{Jargon File}]

morphing
[graphics] The animated transformation of one image into another by gradually distorting the first image so as to move certain chosen points to the position of corresponding points in the second image.
Compare {tweening}.
(1995-04-03)

morse code
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
MORTRAN
A {public domain} {Fortran} {preprocessor} for {structured programming}.
(1995-09-20)

mos
MOS
{Metal Oxide Semiconductor}

mos technologies
MOS Technologies
[company] A {microprocessor} design company started by some ex-{Motorola} designers, shortly after the {Intel 8080} and {Motorola 6800} appeared, in about 1975. MOS Technologies introduced the {650x} series, based on the {Motorola 6800} design, though they were not exact clones for legal reasons.
The design goal was a low-cost (smaler chip) design, realized by simplifying the decoder stage. There were no instructions with the value xxxxxx11, reducing the 1-of-4 decoder to a single {NAND} gate. Instructions with the value xxxxxx11 actually executed two instructions in paralell, some of them useful.
The 6501 was pin-compatible with the 6800 for easier market penetration. The 650x-series had an on-chip clock oscillator while the 651x-series had none.
The 6510 was used in the {Commodore 64}, released September 1981 and MOS made almost all the ICs for Commodore's {pocket calculators}.
The {PET} was an idea of the of the 6500 developers. It was completly developed by MOS, but was manufactured and marketed by Commodore. By the time the it was ready for production (and Commodore had cancelled all orders) MOS had been taken over by {Rockwell} (Commodore's parent company). Just at this time the 6522 (VIA) was finished, but the data sheet for it was not and its developers had left MOS. For years, Rockwell didn't know in detail how the VIA worked.
(2001-03-31)

mosaic
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
Mosaic Communications Corporation
{Netscape Communications Corporation}

moscow ml
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
MOSFET
{Metal Oxide Semiconductor Field-Effect Transistor}

mosiac
Mosiac
Do you mean {Mosaic}?

most general unifier
[logic] If U is the most general {unifier} of a set of expressions then any other unifier, V, can be expressed as V = UW, where W is another substitution.
See also {unification}.
(2000-03-07)

most significant bit
Most Significant Bit
(MSB) {Bit} n-1 in an n bit {binary} number, the bit with the greatest weight (2^(n-1)). The first or leftmost bit when the number is written in the usual way.
(1995-07-13)

motd
{message of the day}

mother
{parent}

motherboard
[hardware] (mobo) The main {printed circuit board} in an electronic device, particularly a computer, which may contain sockets that accept additional boards ("daughter-boards").
In a {personal computer}, the motherboard contains the {bus}, the {microprocessor}, and {integrated circuits} used for controlling any built-in {peripherals} such as the {keyboard}, text and graphics display, {serial ports} and {parallel ports}, {joystick}, and {mouse} {interfaces}.
(2000-08-10)

motif
Motif
The standard {graphical user interface} and {window manager} from {OSF}, running on the {X Window System}.

motion jpeg
Motion JPEG
{Moving JPEG}

motion picture experts group
Motion Picture Experts Group
[spelling] Incorrect expansion of MPEG, which stands for {Moving Picture Experts Group}.
(2000-05-31)

motorola
Motorola
{Motorola, Inc.}

motorola 14500b
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
Motorola 6800
[processor] A {microprocessor} released shortly after the {Intel 8080}, in about 1975. It had 78 instructions, including the undocumented HCF ({Halt and Catch Fire}) bus test instruction. The 6800 evolved into the {Motorola 6801} and 6803.
The {6502} was based on the design of the 6800 but had one less data register and one more index register.
(1994-10-31)

motorola 68000
Motorola 68000
[processor] (MC68000) The first member of {Motorola, Inc.}'s family of 16- and 32-bit {microprocessors}. The successor to the {Motorola 6809} and followed by the {Motorola 68010}.
The 68000 has 32-bit registers but only a 16-bit {ALU} and external {data bus}. It has 24-bit addressing and a {linear address space}, with none of the evil {segment registers} of {Intel}'s contemporary processors that make programming them unpleasant. That means that a single directly accessed {array} or structure can be larger than 64KB in size. Addresses are computed as 32 bit, but the top 8 bits are cut to fit the address bus into a 64-pin package (address and data share a bus in the 40 pin packages of the {8086} and {Zilog Z8000}).
The 68000 has sixteen 32-bit {registers}, split into data and address registers. One address register is reserved for the {Stack Pointer}. Any register, of either type, can be used for any function except direct addressing. Only address registers can be used as the source of an address, but data registers can provide the offset from an address.
Like the {Zilog Z8000}, the 68000 features a supervisor and user mode, each with its own {Stack Pointer}. The {Zilog Z8000} and 68000 are similar in capabilities, but the 68000 is 32 bits internally, making it faster and eliminating forced segmentations.
Like many other CPUs of its generation, it can fetch the next instruction during execution (2 stage {pipeline}).
The 68000 was used in many {workstations}, notably early {Sun-2} machines, and {personal computers}, notably {Apple Computer}'s first {Macintoshes} and the {Amiga}. It was also used in most of {Sega}'s early arcade machines, and in the {Genesis}/{Megadrive} consoles.
Variants of the 68000 include the {68HC000} (a low-power HCMOS implementation) and the {68008} (an eight-bit data bus version used in the {Sinclair QL}).
["The 68000: Principles and Programming", Leo Scanlon, 1981].
(2003-07-11)

motorola 6801
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
Motorola 68010
[processor] A {microprocessor} from {Motorola}. It was the successor to the {Motorola 68000} and was followed by the {Motorola 68020}. Some instructions which were previously {user mode} were made {system mode}, which necessitated patches to a few programs.
The 68010's main advantage over the 68000 was that it could recover from a {bus fault}. The 68000 {microcode} didn't save enough state to restart all instructions; the 68010 corrected this fault. This allowed it to use {paged virtual memory}.
The 68010's DBxx (decrement and branch) instructions could hold and execute the preceding instruction in the {prefetch buffer}, allowing some two-instruction loops to execute without refetching instructions.
At one time there was a 68010 variant that was pin-for-pin compatible with the 68000. Early {Amiga} hackers replaced their 68000s with 68010s in order to get a small performance increase.
(1995-11-29)

motorola 68020
Motorola 68020
[processor] A {microprocessor} from {Motorola}. It was the successor to the {Motorola 68010} and was followed by the {Motorola 68030}. The 68020 has 32-bit internal and external data and address buses and a 256-byte {instruction buffer}, arranged as 64 {direct-mapped} 4-byte entries[?].
The 68020 added many improvements to the 68010 including a 32-bit {ALU} and external {data bus} and {address bus}, and new instrucitons and {addressing modes}. The 68020 (and 68030) had a proper three-stage {pipeline}.
The new instructions included some minor improvements and extensions to the supervisor state, some support for {high-level languages} which didn't get used much (and was removed from future 680x0 processors[?]), bigger (32 x 32-bit) multiply and divide instructions, and bit field manipulations.
The new adderessing modes added another level of indirection to many of the pre-existing modes, and added quite a bit of flexibility to various indexing modes and operations.
The {instruction buffer} (an {instruction cache}) was 256 bytes, arranged as 64 direct-mapped 4-byte entries. Although small, it made a significant difference in the performance of many applications.
The 68881 and the faster 68882 {FPU} chips could be used with the 68020.
The 68020 was used in many models of the {Apple Macintosh} II series of {personal computers} and {Sun} 3 {workstations}.
(2001-03-07)

motorola 68030
Motorola 68030
[processor] A 32-bit {microprocessor} in {Motorola}'s {Motorola 68000} family, with on-chip split instruction and data {cache} of 256 {bytes} each. The 68030 has an on-chip {MMU} (except in the 680EC30 version).
The 68881 and the faster 68882 {FPU} chips could be used with the 68030.
The 68030 was the successor to the {Motorola 68020}, and was followed by the {Motorola 68040}.
The 68030 is used in many models of the {Apple Macintosh} II series of {personal computers}.
(2001-01-08)

motorola 68040
Motorola 68040
[processor] A {microprocessor} from {Motorola}. It was the successor to the {Motorola 68030} and was followed by the {Motorola 68060}.
The 68040 (but not the 680EC40) was the first {680x0} family member with an on-chip {FPU}. It also had split instruction and data {caches} of 4 kilobytes(?) each. It was fully pipelined, with six stages.
The 68040 was used in the {Apple Macintosh} Quadra series of {personal computers}.
(2001-03-11)

motorola 68050
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
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
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 {accumulator}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
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
Motorola 68HC11
[processor] A {microcontroller} family from {Motorola} descended from the {Motorola 6800} {microprocessor}.
The 68HC11 devices are more powerful and more expensive than the 68HC05 family.
{FAQ
(ftp://src.doc.ic.ac.uk/usenet/usenet-by-group/comp.answers/microcontroller-faq/68hc11)}.
There is an {opcode} simulator for the 68HC11, by Ted Dunning [ted@nmsu.edu]. Interrupts, hardware I/O, and half carries are still outside the loop. Adding interrupts may require simulating at the clock phase level. Version 1.
{(ftp://crl.nmsu.edu/pub/non-lexical/6811/sim6811.shar)}.
(1995-04-28)

motorola 68lc040
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
Motorola 88000
A family of {RISC} {microprocessor}s from {Motorola}.
[Details?]
(1995-03-01)

motorola inc
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
[hardware, graphics] The most commonly used computer {pointing device}, first introduced by {Douglas Engelbart} in 1968. The mouse is a device used to manipulate an on-screen {pointer} that's normally shaped like an arrow. With the mouse in hand, the computer user can select, move, and change items on the screen.
A conventional {roller-ball mouse} is slid across the surface of the desk, often on a {mouse mat}. As the mouse moves, a ball set in a depression on the underside of the mouse rolls accordingly. The ball is also in contact with two small shafts set at right angles to each other inside the mouse. The rotating ball turns the shafts, and sensors inside the mouse measure the shafts' rotation. The distance and direction information from the sensors is then transmitted to the computer, usually through a connecting wire - the mouse's "tail". The computer then moves the mouse pointer on the screen to follow the movements of the mouse. This may be done directly by the {graphics adaptor}, but where it involves the processor the task should be assigned a high {priority} to avoid any perceptible delay.
Some mice are contoured to fit the shape of a person's right hand, and some come in left-handed versions. Other mice are symmetrical.
Included on the mouse are usually two or three buttons that the user may press, or click, to initiate various actions such as running {programs} or opening {files}. The left-most button (the {primary mouse button}) is operated with the index finger to select and activate objects represented on the screen. Different {operating systems} and {graphical user interfaces} have different conventions for using the other button(s). Typical operations include calling up a {context-sensitive menu}, modifying the selection, or pasting text. With fewer mouse buttons these require combinations of mouse and keyboard actions. Between its left and right buttons, a mouse may also have a wheel that can be used for scrolling or other special operations defined by the software. Some systems allow the mouse button assignments to be swapped round for left-handed users.
Just moving the pointer across the screen with the mouse typically does nothing (though some CAD systems respond to patterns of mouse movement with no buttons pressed). Normally, the pointer is positioned over something on the screen (an {icon} or a {menu} item), and the user then clicks a mouse button to actually affect the screen display.
The five most common "gestures" performed with the mouse are: {point} (to place the pointer over an on-screen item), {click} (to press and release a mouse button), {double-click} {to press and release a mouse button twice in rapid succession}, {right-click} (to press and release the right mouse button}, and {drag} (to hold down the mouse button while moving the mouse).
Most modern computers include a mouse as standard equipment. However, some systems, especially portable {laptop} and {notebook} models, may have a {trackball}, {touchpad} or {Trackpoint} on or next to the {keyboard}. These input devices work like the mouse, but take less space and don't need a desk.
Many other alternatives to the conventional roller-ball mouse exist. A {tailless mouse}, or {hamster}, transmits its information with {infrared} impulses. A {foot-controlled mouse (http://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/)}.
{(http://peripherals.about.com/library/weekly/aa041498.htm)}.
{PC Guide's "Troubleshooting Mice" (http://www.pcguide.com/ts/x/comp/mice.htm)}.
(1999-07-21)

mouse
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 ahead
The {point-and-click} analog of "{type ahead}". To manipulate a computer's pointing device (almost always a mouse in this usage, but not necessarily) and its selection or command buttons before a computer program is ready to accept such input, in anticipation of the program accepting the input. Handling this properly is rare, but it can help make a {WIMP environment} much more usable, assuming the users are familiar with the behaviour of the user interface.
[{Jargon File}]
(1994-12-05)

mouse around
To explore public portions of a large system, especially a network such as Internet via {FTP} or {TELNET}, looking for interesting stuff to {snarf}.
[{Jargon File}]
(1994-12-05)

mouse arrest
[jargon] Getting busted for violating an on-line service's rule of conduct. "Sorry I couldn't get back to you. {AOL} put me under mouse arrest."
(1997-03-30)

mouse belt
See {rat belt}.
[{Jargon File}]

mouse droppings
1. [graphics, operating system, jargon] {Pixels} (usually single) that are not properly restored when the {mouse pointer} moves away from a particular location on the screen, producing the appearance that the mouse pointer has left droppings behind. The major causes for this problem are {MS-DOS} programs that write to the screen memory corresponding to the mouse pointer's current location without hiding the mouse pointer first, and mouse drivers that do not quite support the {graphics mode} in use.
2. [World-Wide Web, jargon] The client address recorded in a {World-Wide Web} server's log whenever a client connects to a site.
Users may be unaware that their activity is being logged in this way but the potential for misuse of the information is limited.
[March 1996 Macworld, p260, Viewpoint article by Larry Irving].
(1994-12-05)

mouse elbow
[jargon, medical] A tennis-elbow-like fatigue syndrome resulting from excessive use of a {WIMP}. Similarly, "mouse shoulder". {GLS} reports that he used to get this a lot before he taught himself to be ambimoustrous.
[{Jargon File}]
(1994-12-05)

mouse mat
[hardware] (U.S.: "mouse pad") A small sheet with a special surface for a rolling ball {mouse} to move on. Most mouse mats are sheets of rubber or foam about 20cm by 25cm and about 5mm thick with one side covered with cloth or sometimes hard plastic. Deluxe versions come combined with a {wrist rest}.
It is rare to find a mouse mat which does not carry some form of advertisement for some company or other. They are such a common free gift that few people actually have to buy one.
Mats are supposed to provide better traction and a clean, lint-free surface over which to move but it debatable whether they are useful at all, or whether any appropriate surface (preferably hard, even, flat, and clean) is as good. Howevever, some mice which use optical (e.g. {Sun}) or radio-frequency sensors (e.g. ?) to detect motion (instead of using a rolling ball) will only work on specially designed mouse mats. Critics may consider this to be part of the {connector conspiracy}, though the designers would claim greater reliability due to the absence of moving parts.
(1997-04-14)

mouse pad
{mouse mat}

mouse trails
[operating system] A feature (usually of {Graphical User 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}.
[{Jargon File}]
(1996-04-21)

moving jpeg
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 picture expert group
Moving Picture Expert Group
[spelling] Incorrect expansion of MPEG, which stands for {Moving Picture Experts Group}.
(2000-05-31)

moving picture experts group
Moving Picture Experts Group
[compression, standard, algorithm, file format, body] (MPEG, ISO/IEC JTC1/SC29 WG11) An {ISO} committee that generates {standards} for digital {video compression} and audio. Also the name of their {algorithms}.
{MPEG-1} is optimised for {CD-ROM} and is the basis for {MP3}. {MPEG-2} is aimed at {broadcast quality video} for applications such as {digital television} {set-top boxes} and {DVD}. {MPEG-4} is a standard for low {bandwidth} {video telephony} and {multimedia} on the {World-Wide Web}. MPEG-3 was merged into MPEG-2.
{Home (http://www.cselt.it/mpeg/)}. {MPEG.org (http://www.mpeg.org/)}. {MPEG decoder (ftp://toe.cs.berkeley.edu/pub/multimedia/mpeg/)}. {MPEG routines (ftp://ftp.mni.mcgill.ca/pub/mpeg/)}.
(2000-05-31)

moving pictures experts group
Moving Pictures Experts Group
[spelling] Incorrect expansion of MPEG, which stands for {Moving Picture Experts Group}.
(2000-05-31)

moxie
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
Mozilla
[World-Wide Web, body, open source] The {open source} {web browser}, designed for standards-compliance, performance, and portability, whose development is coordinated by mozilla.org.
The Mozilla project started in March 1998 when {Netscape Communications Corporation} released the {source code} of {Netscape Communicator}. The now abandoned version based on that code is referred to as "Mozilla Classic". Since then, much has been rewritten, including the layout engine, the networking library, and the front-end.
mozilla.org was set up by {Netscape} in January 1998 to coordinate development and to provide a point of contact for interested people. Mozilla 1.0 was finally released on 2002-06-05.
Although a lot of Mozilla code is under the original Netscape Public License, some parts of the code are under the Mozilla Public License or dual MPL/GPL.
"Mozilla" was the original project code name for {Netscape Navigator} and, according to some of the documentation, the correct pronunciation of "Netscape".
{Home (http://www.mozilla.org/)}.
[Derived from "{Mosaic} killer/Godzilla"?]
(2002-11-13)

mozilla public license
Mozilla Public License
{open source license}

mp
[networking] The {country code} for the Northern Mariana Islands.
(1999-01-27)

mp1
MP1
{MPEG-1 audio layer 1}

mp1
MP-1
{Assembly language} for the {MasPar} computer.
(1994-12-05)

mp2
MP2
{MPEG-1 audio layer 2}

mp3
MP3
{MPEG-1 audio layer 3}

mp3pro
MP3Pro
[audio, compression] An extention of {MP3} using {SBR}, targetting data rates of 64-96 kbps.
(2001-12-20)

mpc
MPC
1. [operating system] {Memory Protection Check}.
[Origin?]
2. [computer] {Multimedia Personal Computer}.
3. {Multiprocess Communications}.

mpc level 1 specification
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
MPC Level 2 Specification
[multimedia] An improved version of the {MPC Level 1 Specification} for {Multimedia Personal Computers}.
Minimum requirements are a 25 Mhz {486SX} with 4 MB of RAM and a 160 MB {hard disk drive}. The {CD-ROM} drive must support a sustained data transfer rate of 300 KB/s using at most 60% of {CPU} {bandwidth} on 16 KB minimum block read size. Its average {seek time} must be 400 milliseconds maximum. Capability Mode 1, Mode 2 form 1, Mode 2 form 2, Multisession. It must be {CD-ROM XA}-ready.
The computer must have 16-bit digital sound, an 8-note synthesizer, and {MIDI} playback. A sample rate of 44.1 kHz must be available on stereo channels with more than 15% of CPU bandwidth.
A video display with a {resolution} of 640 x 480 in 65,536 colours, and MIDI, I/O, and joystick ports must be provided.
(1997-01-19)

mpeg
MPEG
{Moving Picture Experts Group}

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

mpeg1 audio layer 1
MPEG-1 audio layer 1
[audio, compression, algorithm] (MP1) A simple 32-{subband} {audio compressor} using a {floating point} representation for subband samples. Resolution and scale factor are stored for groups of 12 subsamples. MP1 is only used for {Philips} DCC {Digital Compact cassette} with data rates of 384 kbps.
(2001-12-02)

mpeg1 audio layer 3
MPEG-1 audio layer 3
[music, file format] (MP3) A {digital audio} {compression algorithm} that acheives a compression factor of about twelve while preserving sound quality. It does this by optimising the compression according to the range of sound that people can actually hear. MP3 is currently (July 1999) the most powerful algorithm in a series of audio encoding standards developed under the sponsorship of the {Moving Picture Experts Group} (MPEG) and formalised by the International Organization for Standardization (ISO).
MP3 is very different from Layer 2, using an additional {MDCT} layer to increase frequency resolution. Its scale factor groups are more optimised for the human ear, and it uses nonlinear {sample quantisation} and {Huffman coding}.
MP3 files ({filename extension} ".mp3") can be downloaded from many {World-Wide Web} sites and can be played using software available for most {operating systems} (also downloadable), e.g. Winamp for {PC}, MacAmp for {Macintosh}, and mpeg123 for {Unix}.
MP3 files are usually downloaded completely before playing but {streaming} MP3 is also possible. A program called a "ripper" can be used to copy a selection from a music {CD} onto your {hard disk} and another program called an encoder can convert it to an MP3 file.
(2001-12-04)

mpeg1 layer 3
MPEG-1 layer 3
{MPEG-1 audio layer 3}

mpeg2
MPEG-2
[compression, standard, algorithm, file format] A variant of the {MPEG} video and audio {compression} {algorithm} and file format, optimised for {broadcast quality video}. MPEG-2 was designed to transmit images using {progressive coding} at 4 {Mbps} or higher for use in broadcast {digital TV} and {DVD}. An MPEG-2 player can handle {MPEG-1} data as well.
MPEG-2 has been approved as {International Standard} {IS-13818}.
(1995-04-18)

mpeg2 aac low profile
MPEG-2 AAC Low Profile
[compression, standard, algorithm, file format] A successor of {MP3} allowing transparent coding at data rates of 75-80% of that of {MP3}. It is very different from MP3, only used {MDCT}, no {subband coding}.
(2001-12-08)

mpeg2 audio layer 3
MPEG-2 audio layer 3
[compression, standard, algorithm, file format] An extention of {MPEG-1 audio layer 3} for lower sampling rates (16-24 kHz) targeting bit rates from 32-64 kbps (possibly 8-160 kbps). It is often combined with {MPEG-2 LSF}.
(2001-12-04)

mpeg2 low sampling frequencies extention
MPEG-2 Low Sampling Frequencies Extention
[compression, standard, algorithm, file format] (MPEG-2 LSF) An extension of {MPEG-2}, mostly used with {MPEG-2 audio layer 3} because the aim was medium quality at low bit rates, not lower sampling frequencies.
(2001-12-04)

mpeg2 lsf
MPEG-2 LSF
{MPEG-2 Low Sampling Frequencies Extention}

mpeg2 mc
MPEG-2 MC
{MPEG-2 Multi Channel Extention}

mpeg2 multi channel extention
MPEG-2 Multi Channel Extention
[compression, standard, algorithm, file format] (MPEG-2 MC) An extension of {MPEG-2} that uses up to 5 channels and about 1200 kbps.
(2001-12-08)

mpeg21
MPEG-21
[compression, standard, algorithm, file format] A {file format} designed to merge very different things in one object, so you can store interactive material in this format (audio, video, questions, answers, overlays, non-linear order, calculation from user inputs, etc.)
[Technical details?]
(2001-12-02)

mpeg25 audio layer 3
MPEG-2.5 audio layer 3
[compression, standard, algorithm, file format] A non-standard extention of {MPEG-2 audio layer 3} by {FhG} for lowest sampling rates (8-12 kHz) targeting bit rates from 16-32 kbps (possibly 8-160 kbps).
(2001-12-04)

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

mpeg4
MPEG-4
[compression, standard, algorithm, file format] A {video compression} standard planned for late 1998. MPEG-4 extends the earlier {MPEG-1} and {MPEG-2} algorithms with synthesis of speech and video, {fractal compression}, {computer visualisation} and {artificial intelligence}-based {image processing} techniques.
[Technical details?]
(1999-01-06)

mpeg4 aac main profile
MPEG-4 AAC Main Profile
[compression, standard, algorithm] A successor of {MP3} allowing transparent coding at data rates of 70-75% of that of {MP3}. It is very different from MP3, only used {MDCT}, no {subband coding}. It is much more complex that {MP3} and {MPEG-2 AAC Low Profile}.
(2001-12-08)

mpeg4 aac ssr
MPEG-4 AAC SSR
{MPEG-4 Advanced Audio Coding Scalable Sampling Rate}

mpeg4 advanced audio coding scalable sampling rate
MPEG-4 Advanced Audio Coding Scalable Sampling Rate
[compression, standard, algorithm] (MPEG-4 AAC SSR) An {AAC} flavour supporting different qualities for different targets. One stream can contain up to 3 streams for 11.025 kHz (Stream 1), 22.05 (Stream 1 and 2) and 44.1 kHz (all 3 Streams) sampling frequency. Quality is between Low Profile and Main profile. See also {JPEG-2000}.
(2001-12-09)

mpeg4 harmonic vector excitation
MPEG-4 Harmonic Vector eXCitation
[compression, standard, algorithm] (MPEG-4 HVXC) An {MPEG-4} variant using {parametric encoding} with a target {bit rate} of 20 kbps, for voice coding.
(2001-12-09)

mpeg4 harmonics individual lines and noise
MPEG-4 Harmonics, individual lines and noise
[compression, standard, algorithm] (MPEG-4 HILN) An {MPEG-4} variant using {parametric encoding} with a target {bit rate} of 30 kbps.
(2001-12-09)

mpeg4 hiln
MPEG-4 HILN
{MPEG-4 Harmonics, individual lines and noise}

mpeg4 hvxc
MPEG-4 HVXC
{MPEG-4 Harmonic Vector eXCitation}

mpeg7
MPEG-7
[compression, standard, algorithm] A successor to {MPEG-4}, not standardized yet.
(2001-12-02)

mpegplus
MPEGplus
[compression, algorithm] A non-{ISO} standard compressed {audio} file format derived from {MPEG-1 Layer 2}.
(2001-12-11)

mpg
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
MPI
{Message Passing Interface}

mpl
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
MPL II
[Burroughs VMS MPL II Language Reference Manual].

mpls
MPLS
{Multiprotocol Label Switching}

mpls domain
MPLS domain
[networking] A portion of a {network} that contains devices that understand {MPLS}.
(1999-06-14)

mpm
MP/M
{Multi-tasking Program for Microcomputers}

mpp
MPP
{Multiple Parallel Processing}

mppe
MPPE
{Microsoft Point to Point Encryption}

mppl
MPPL
[language] An early possible name for {PL/I}.
[Sammet 1969, p. 542].
(1995-03-07)

mpr ii
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)

mprolog
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
MPS III
Solving matrices and producing reports. "MPS III DATAFORM User Manual", Management Science Systems (1976).

mpsx
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
MPV
An extension of the {VRTX} {real-time} {operating system} to support {multi-processing}.
(1994-11-08)

mpx
MPX
{Multiplexor Channel}

mq
[networking] The {country code} for Martinique.
(1999-01-27)

mqg
MQG
{Multi-threaded Query Gate}

mr
[networking] The {country code} for Mauritania.
(1999-01-27)

mrds
MRDS
{Multics Relational Data Store}

mri
MRI
1. [application] {Magnetic Resonance Imaging}.
2. {Measurement Requirements and Interface}.

mroc
MROC
{Miniature Ruggedized Optical Correlator}

mrom
MROM
{Mask Read-Only Memory}

mrp
MRP
{Material Requirements Planning}

mrp ii
MRP II
{Manufacturer Resource Planning}

mrs
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
MS Access
{Microsoft Access}

ms mail
MS Mail
{Microsoft Mail}

ms project
MS Project
{Microsoft Project}

ms word
MS Word
{Microsoft Word}

msau
MSAU
{Media Access Unit}

msb
MSB
{Most Significant Bit}

msbasic
MS-BASIC
[language] {Microsoft Basic}.

msdog
MS-DOG
[abuse] A pejorative name for {MS-DOS}.

msdos
MS-DOS
[operating system] /M S 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 1 MB limit. Add-ons to DOS, such as {Microsoft Windows} and {DESQview}, take advantage of EMS and allow the user to have multiple applications loaded at once and switch between them.
Numerous features, including vaguely {Unix}-like but rather broken support for subdirectories, {I/O redirection}, and {pipelines}, were hacked into MS-DOS 2.0 and subsequent versions; as a result, there are two or more incompatible versions of many system calls, and MS-DOS programmers can never agree on basic things like what character to use as an option switch or 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 {microprocessors} and {IBM PC} compatibles.
Many of the original DOS functions were calls to {BASIC} (in {ROM} on the original {IBM PC}), e.g. Format and Mode. People with non-IBM PCs had to buy {MS-Basic} (later called {GWBasic}). Most version of DOS came with some version of BASIC.
Also know as PC-DOS or simply 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!").
[{Jargon File}]
(1998-07-19)

msg84
MSG.84
[language] A language for the {functional specification} and module design phases of the {software life cycle}, first presented in Berzins and Gray's 1985 paper. Not unlike {PDL}.
["Analysis and design in MSG.84: formalizing functional specifications", Valdis Berzins, Michael Gray, Volume 11 Issue 8, IEEE Transactions on Software Engineering, Aug 1985].
(2003-05-15)

msggui
msgGUI
[library] A {graphical user interface} for {GNU Smalltalk}. The msgGUI package contains the basics for creating window {applications} in the manner available in other graphical {Smalltalk} implementations. Version 1.0 of the library was by Mark Bush, ECS, Oxford University, UK.
{(ftp://ftp.comlab.ox.ac.uk/pub/Packages/mst/mstGUI-1.0.tar.Z)}.
(2000-06-14)

msie
MSIE
{Internet Explorer}

msm
MSM
{Micronetics Standard MUMPS}

msn
MSN
{The Microsoft Network}

mss
MSS
{maximum segment size}

mswindows
MS-Windows
{Microsoft Windows}

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

msx
MSX
{Microsoft Extended}

msxdos
MSX-DOS
{Microsoft Extended}

mt
[networking] The {country code} for Malta.
(1999-01-27)

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

mtos
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
MTS
1. {Message Transport System}.
2. [programming] {Microsoft Transaction Server}.
(1999-03-29)

mttr
MTTR
{Mean Time To Recovery}

mtu
MTU
{Maximum Transmission Unit}

mu
Mu
[character] (Greek letter).
1. [unit] /micro/ prefix denoting division by 10^6, e.g. mu m (micrometre, a millionth part of a metre). Sometimes written as a 'u', the ASCII character nearest in appearance.
2. [mathematics] /myoo/ In the theory of functions, mu x . E denotes the least value of x for which E = x, i.e. the {least fixed point} of the function \ x . E. The {recursive} function mu f . H f satisfies (and is defined by) the equation
mu f . H f = H (mu f . H f)
An alternative notation for the same function is
fix H = H (fix H)
See {fixed point combinator}.
3. [database] {multiple value}.
[{Jargon File}]
(1995-10-30)

mu
1. [networking] The {country code} for Mauritius.
2. [philosophy] /moo/ The correct answer to the classic trick question "Have you stopped beating your wife yet?". Assuming that you have no wife or you have never beaten your wife, the answer "yes" is wrong because it implies that you used to beat your wife and then stopped, but "no" is worse because it suggests that you have one and are still beating her. According to various Discordians and Douglas Hofstadter the correct answer is usually "mu", a Japanese word alleged to mean "Your question cannot be answered because it depends on incorrect assumptions".
Hackers tend to be sensitive to logical inadequacies in language, and many have adopted this suggestion with enthusiasm. The word "mu" is actually from Chinese, meaning "nothing"; it is used in mainstream Japanese in that sense, but native speakers do not recognise the Discordian question-denying use. It almost certainly derives from overgeneralisation of the answer in the following well-known Rinzei Zen teaching riddle:
A monk asked Joshu, "Does a dog have the Buddha nature?" Joshu retorted, "Mu!"
See also {has the X nature}, {AI Koan}.
[Douglas Hofstadter, "Godel, Escher, Bach: An Eternal Golden Braid"].
[{Jargon File}]
(2000-11-22)

mua
MUA
{Mail User Agent}

mucal
MUCAL
[language, music] A language for playing music on the {PDP-8}.
(1995-04-16)

mud
MUD
[games] {Multi-User Dimension} or "Multi-User Domain". Originally "Multi-User Dungeon".
[{Jargon File}]
(1995-04-16)

mud object oriented
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)

muddie
[games] Synonym {mudhead}. More common in Great Britain, possibly because system administrators there like to mutter "bloody muddies" when annoyed at the species.
[{Jargon File}]

muddle
Muddle
Original name of {MDL}.

mudhead
[games] A {MUD} player who eats, sleeps, and breathes MUD. Mudheads have been known to fail their degrees, drop out, etc. with the consolation, however, that they made wizard level. When encountered in person, on a MUD or in a chat system, all a mudhead will talk about is three topics: the tactic, character, or wizard that is supposedly always unfairly stopping him/her from becoming a wizard or beating a favourite MUD; why the specific game he/she has experience with is so much better than any other; and the MUD he or she is writing or going to write because his/her design ideas are so much better than in any existing MUD. See also {wannabee}.
To the anthropologically literate, this term may recall the Zuni/Hopi legend of the mudheads or "koyemshi", mythical half-formed children of an unnatural union. Figures representing them act as clowns in Zuni sacred ceremonies.
[{Jargon File}]
(1994-11-29)

mufp
muFP
A {functional language} for hardware design, a predecessor of {Ruby}.

mulaw
mu-law
The North America {standard} for {nonuniform quantising logarithmic compression}.
[Equation?]
(1995-02-21)

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

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

multibinprolog
Multi-BinProlog
[language] A {multi-threaded} {Linda}-style parallel extension to {BinProlog} for {Solaris} 2.3.
Version: 3.30.
(1995-04-04)

multic
multiC
[language] A {data-parallel} version of {C} from {Wavetracer}.
(1995-04-04)

multical system
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)

multichannel memorandum distribution facility
Multi-channel Memorandum Distribution Facility
[messaging] (MMDF) An {electronic mail} system for Unix(?) which is much easier to configure than {sendmail}. The source is available.
MMDF is a versatile and configurable mail routing system ({MTA}) which also includes user interface programs ({MUA}). It can be set up to route mail to different {domains} and {hosts} over different channels (e.g. {SMTP}, {UUCP}). On {UNIX} systems, its configuration begins with the /usr/mmdf/mmdftailor file, which defines the machine and domain names, various other configuration tables (alias, domain, channel) and other configuration information.
[Home?]
(1997-01-14)

multician
[jargon, person] /muhl-ti'shn/ A term coined at {Honeywell}, ca. 1970 for a competent user of {Multics}. Perhaps oddly, no one has ever promoted the analogous "Unician".
[{Jargon File}]
(1996-08-24)

multics
Multics
[operating system] /muhl'tiks/ MULTiplexed Information and Computing Service. A {time-sharing} {operating system} co-designed by a consortium including {MIT}, {GE} and {Bell Laboratories} as a successor to MIT's {CTSS}. The system design was presented in a special session of the 1965 Fall Joint Computer Conference and was planned to be operational in two years. It was finally made available in 1969, and took several more years to achieve respectable performance and stability.
Multics was very innovative for its time - among other things, it was the first major OS to run on a {symmetric multiprocessor}; provided a {hierarchical file system} with {access control} on individual files; mapped files into a paged, segmented {virtual memory}; was written in a {high-level language} ({PL/I}); and provided dynamic inter-procedure linkage and memory (file) sharing as the default mode of operation. Multics was the only general-purpose system to be awarded a B2 {security rating} by the {NSA}.
Bell Labs left the development effort in 1969. {Honeywell} commercialised Multics in 1972 after buying out GE's computer group, but it was never very successful: at its peak in the 1980s, there were between 75 and 100 Multics sites, each a multi-million dollar {mainframe}.
One of the former Multics developers from Bell Labs was {Ken Thompson}, a circumstance which led directly to the birth of {Unix}. For this and other reasons, aspects of the Multics design remain a topic of occasional debate among hackers. See also {brain-damaged} and {GCOS}.
MIT ended its development association with Multics in 1977. Honeywell sold its computer business to {Bull} in the mid 1980s, and development on Multics was stopped in 1988 when Bull scrapped a Boston proposal to port Multics to a {platform} derived from the {DPS-6}.
A few Multics sites are still in use as late as 1996.
The last Multics system running, the Canadian Department of National Defence Multics site in Halifax, Nova Scotia, Canada, shut down on 2000-10-30 at 17:08 UTC.
The {Jargon file} 3.0.0 claims that on some versions of Multics one was required to enter a password to log out but James J. Lippard [lippard@primenet.com], who was a Multics developer in Phoenix, believes this to be an {urban legend}. He never heard of a version of Multics which required a password to logout. Tom Van Vleck [thvv@multicians.org] agrees. He suggests that some user may have implemented a 'terminal locking' program that required a password before one could type anything, including logout.
{Home (http://www.multicians.org/)}.
{Usenet} newsgroup: {news:alt.os.multics}.
[{Jargon File}]
(2002-04-12)

multics relational data store
Multics Relational Data Store
[database] (MRDS) The first commercial {relational database}, implemented as part of {Multics} by Jim Weeldreyer and Oris Friesen of {Honeywell} Phoenix in about 1977. MRDS included a report writer called LINUS written by Jim Falksen.
(1997-01-29)

multiflow computer
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)

multigarnet
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
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 and Hypermedia information coding Expert Group
[multimedia, standard] (MHEG) is an {ISO} {standard} encoding for {multimedia} and {hypermedia} information, designed to facilitate use and interchange of such information in varied domains such as games, electronic publishing and medical applications.
{MHEG Home (http://www.mheg.org/)}.
(2002-12-30)

multimedia compact disc
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
MultiMedia Extension
{Matrix Math eXtensions}

multimedia integrated conferencing for european researchers
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
Multimedia Internet Mail Extensions
Called {Multipurpose Internet Mail Extensions} in the {RFC}.
[Is this an old name for it?]

multimedia personal computer
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)

multipart key
multi-part key
{compound key}

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

multiple instructionmultiple 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
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.html)}.
{Useable fonts
(http://susi.informatik.rwth-aachen.de/Mirror/winsite/win3/fonts_atm.html)}.
(1998-05-31)

multiple perspective software development
[programming] A decentralised approach to software development which, instead of adopting a monolithic representation and centralised control, models development in terms of collaboration between autonomous partial systems.
Software development usually involves people with different goals, expertise, and backgrounds, and the use of a wide range of formalisms, tools, and environments. As information is exchanged between participants, dependencies may be established between information created by them. Multiple perspective software development may be mapped into the transaction model which can be used to prevent uncoordinated access to interdependent information causing inconsistency.
[Fox Wai-Leung Poon]
(1995-12-14)

multiple value
[database] (MU) A one-to-many relationship between entries in a database, for example a person may have an address field which spanned multiple records (with different indexes). Multiple values are a non-{relational} technique.
MUs have recently been made available in {DB2}, despite the product being so heavily influenced by {Codd's Laws} of {relational databases}.
[Confirm, clarify?]
(1995-10-30)

multiple virtual storage
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)

multiplex printer
[hardware] A {duplex} circuit using {time-division multiplexing} to provide multiple duplex channels over one wire.
For example, channels A, B, C, and D could be used for simultaneous transmission in both directions.
(2000-04-02)

multiplexer
{multiplexor}

multiplexing
1. [communications] (Or "multiple access") Combining several signals for transmission on some shared medium (e.g. a telephone wire). The signals are combined at the transmitter by a multiplexor (a "mux") and split up at the receiver by a demultiplexor. The communications channel may be shared between the independent signals in one of several different ways: {time division multiplexing}, {frequency division multiplexing}, or {code division multiplexing}.
If the inputs take turns to use the output channel ({time division multiplexing}) then the output {bandwidth} need be no greater than the maximum bandwidth of any input.
If many inputs may be active simultaneously then the output bandwidth must be at least as great as the total bandwidth of all simultaneously active inputs. In this case the multiplexor is also known as a {concentrator}.
(1995-03-02)
2. [storage] Writing multiple {logical} copies of {data} {files}. Placing the copies on totally separate {paths} to {mirror}ed {devices} greatly reduces the probability of all copies being corrupt. Multiplexing differs from mirroring in that mirroring takes one data file and copies it to many devices, thus making it possible to copy a corrupt file many times. Multiplexing writes the data files to many places simultaneously; there is no "original" data file.
(2001-05-10)

multiplexor
{multiplexing}

multiplexor channel
Multiplexor Channel
(MPX) {mainframe} terminology for a slow peripheral device connection, e.g. for a {printer}, operator console, or card reader.
(1997-06-30)

multipop68
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
Multiprotocol Label Switching
[networking] (MPLS) A {packet switching} {protocol} developed by the {IETF}. Initially developed to improve switching speed, other benefits are now seen as being more important.
MPLS adds a 32-{bit} label to each {packet} to improve {network} efficiency and to enable {routers} to direct {packets} along predefined routes in accordance with the required {quality of service}. The label is added when the {packet} enters the MPLS {network}, and is based on an analysis of the {packet} {header}. The label contains information on the route along which the {packet} may travel, and the {forwarding equivalence class} (FEC) of the {packet}. Packets with the same {FEC} are routed through the {network} in the same way.
Routers make forwarding decisions based purely on the contents of the label. This simplifies the work done by the {router}, leading to an increase in speed. At each {router}, the label is replaced with a new label, which tells the next {router} how to forward the {packet}. The label is removed when the {packet} leaves the MPLS {network}.
Modern {ASIC}-based routers can look up routes fast enough to make the speed increase less important. However, MPLS still has some benefits. The use of {FEC}s allows {QoS} levels to be guaranteed, and MPLS allows {IP} {tunnel}s to be created through a {network}, so that {VPN}s can be implemented without {encryption}.
{MPLS Resource Center (http://www.mplsrc.com/)}.
[RFC 3031]
(2002-04-14)

multipurpose internet mail extensions
Multipurpose Internet Mail Extensions
[file format, multimedia] (MIME) A {standard} for multi-part, {multimedia} {electronic mail} messages and {World-Wide Web} {hypertext} documents on the {Internet}. MIME provides the ability to transfer non-textual data, such as graphics, {audio} and fax. It is defined in {RFC 2045}, {RFC 2046}, {RFC 2047}, {RFC 2048}, {RFC 2049}, and {BCP0013}. It uses {mimencode} to encode binary data into {base 64} using a subset of {ASCII}.
{FAQ
(http://www.cis.ohio-state.edu/hypertext/faq/usenet/mail/mime-faq/top.html)}.
(1995-04-04)

multiscan
[hardware] A {monitor} that can synchronise to a variety of {horizontal scan rates} and {refresh rates}, allowing it to display images at different {resolutions}.
(1996-02-09)

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

multitasking program for microcomputers
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
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)

multiuser dimension
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)

multiuser dungeon
Multi-User Dungeon
{Multi-User Dimension}

multiuser shared hallucination
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)

multiversion concurrency control
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)

multiway branch
multi-way branch
{switch statement}

mumath
MuMath
[mathematics, tool] A {symbolic mathematics} package for the {IBM PC}, written in {MuSimp}.
(1995-04-12)

mumblage
/muhm'bl*j/ The topic of one's mumbling (see {mumble}). "All that mumblage" is used like "all that stuff" when it is not quite clear how the subject of discussion works, or like "all that crap" when "mumble" is being used as an implicit replacement for pejoratives.
[{Jargon File}]

mumble
1. Said when the correct response is too complicated to enunciate, or the speaker has not thought it out. Often prefaces a longer answer, or indicates a general reluctance to get into a long discussion. "Don't you think that we could improve LISP performance by using a hybrid reference-count transaction garbage collector, if the cache is big enough and there are some extra cache bits for the {microcode} to use?" "Well, mumble ... I'll have to think about it."
2. Yet another {metasyntactic variable}, like {foo}.
3. Sometimes used in "public" contexts on-line as a placefiller for things one is barred from giving details about. For example, a poster with pre-released hardware in his machine might say "Yup, my machine now has an extra 16M of memory, thanks to the card I'm testing for Mumbleco."
4. A conversational wild card used to designate something one doesn't want to bother spelling out, but which can be {glark}ed from context. Compare {blurgle}.
5. [XEROX PARC] A colloquialism used to suggest that further discussion would be fruitless.
(1997-03-27)

mumble mode
[jargon] The mode a program, piece of hardware, or other system is said to be in when it is still running and perhaps reacting to input and/or occasionally producing output (especially if it shouldn't), but in a way that appears wildly inappropriate to the task it is supposed to perform.
Compare "{off the trolley}" and "{deep space}".
(1997-03-27)

mumps
MUMPS
[language] (Or "M") Massachusetts General Hospital Utility Multi-Programming System.
A programming language with extensive tools for the support of {database management systems}. MUMPS was originally used for medical records and is now widely used where multiple users access the same databases simultaneously, e.g. banks, stock exchanges, travel agencies, hospitals.
Early MUMPS implementations for {PDP-11} and {IBM PC} were complete {operating systems}, as well as programming languages, but current-day implementations usually run under a normal host {operating system}.
A MUMPS program hardly ever explicitly performs low-level operations such as opening a file - there are programming constructs in the language that will do so implicitly, and most MUMPS programmers are not even aware of the {operating system} activity that MUMPS performs.
Syntactically MUMPS has only one data-type: strings. Semantically, the language has many data-types: text strings, {binary strings}, {floating point} values, {integer} values, {Boolean} values. Interpretation of strings is done inside functions, or implicitly while applying mathematical {operators}. Since many operations involve only moving data from one location to another, it is faster to just move uninterpreted strings. Of course, when a value is used multiple times in the context of arithmetical operations, optimised implementations will typically save the numerical value of the string.
MUMPS was designed for portability. Currently, it is possible to share the same MUMPS database between radically different architectures, because all values are stored as text strings. The worst an implementation may have to do is swap pairs of bytes. Such multi-CPU databases are actually in use, some offices share databases between {VAX}, {DEC Alpha}, {SUN}, {IBM PC} and {HP} {workstations}.
Versions of MUMPS are available on practically all {hardware}, from the smallest ({IBM PC}, {Apple Macintosh}, {Acorn} {Archimedes}), to the largest {mainframe}. MSM ({Micronetics Standard MUMPS}) runs on {IBM PC RT} and {R6000}; DSM (Digital Standard Mumps) on the {PDP-11}, {VAX}, {DEC Alpha}, and {Windows-NT}; {Datatree MUMPS} from {InterSystems} runs on {IBM PC}; and {MGlobal MUMPS} on the {Macintosh}. Multi-{platform} versions include {M/SQL}, available from {InterSystems}, {PFCS} [mumps@pfcs.com] and {MSM}.
{Greystone Technologies}' GT/M runs on {VAX} and {DEC Alpha}. This is a compiler whereas the others are {interpreters}. {GT/SQL} is their {SQL} pre-processor.
ISO standard 11756 (1991). ANSI standard: "MUMPS Language Standard", X11.1 (1977, 1984, 1990, 1995?).
The MUMPS User's Group was the {M Technology Association}.
{Usenet} newsgroups: {news:comp.lang.mumps}.
(2003-06-04)

munch
To transform information in a serial fashion, often requiring large amounts of computation. To trace down a data structure. Related to {crunch} and nearly synonymous with {grovel}, but connotes less pain.
Often confused with {mung}.
[{Jargon File}]
(1995-01-10)

munching
Exploration of security holes of someone else's computer for thrills, notoriety or to annoy the system manager. Compare {cracker}. See also {hacked off}.
[{Jargon File}]

munching squares
A {display hack} dating back to the {PDP-1} (ca. 1962, reportedly discovered by Jackson Wright), which employs a trivial computation (repeatedly plotting the graph Y = X XOR T for successive values of T - see {HAKMEM} items 146--148) to produce an impressive display of moving and growing squares that devour the screen. The initial value of T is treated as a parameter, which, when well-chosen, can produce amazing effects. Some of these, later (re)discovered on the {LISP Machine}, have been christened "munching triangles" (try AND for XOR and toggling points instead of plotting them), "munching w's", and "munching mazes". More generally, suppose a graphics program produces an impressive and ever-changing display of some basic form, foo, on a display terminal, and does it using a relatively simple program; then the program (or the resulting display) is likely to be referred to as "munching foos". [This is a good example of the use of the word {foo} as a {metasyntactic variable}.]

munchkin
/muhnch'kin/ [Squeaky-voiced little people in L. Frank Baum's "The Wizard of Oz"] A teenage-or-younger micro enthusiast hacking BASIC or something else equally constricted. A term of mild derision - munchkins are annoying but some grow up to be hackers after passing through a {larval stage}. The term {urchin} is also used. See also {wannabee}, {bitty box}.
[{Jargon File}]

mundane
[jargon] Someone outside some group that is implicit from the context, such as the computer industry or science fiction fandom. The implication is that those in the group are special and those outside are just ordinary.
(2000-07-22)

mung
/muhng/ (MIT, 1960) Mash Until No Good.
Sometime after that the derivation from the {recursive acronym} "Mung Until No Good" became standard. 1. To make changes to a file, especially large-scale and irrevocable changes.
See {BLT}.
2. To destroy, usually accidentally, occasionally maliciously. The system only mungs things maliciously; this is a consequence of {Finagle's Law}.
See {scribble}, {mangle}, {trash}, {nuke}.
Reports from {Usenet} suggest that the pronunciation /muhnj/ is now usual in speech, but the spelling "mung" is still common in program comments (compare the widespread confusion over the proper spelling of {kluge}).
3. The kind of beans of which the sprouts are used in Chinese food. (That's their real name! Mung beans! Really!)
Like many early hacker terms, this one seems to have originated at {TMRC}; it was already in use there in 1958. Peter Samson (compiler of the original TMRC lexicon) thinks it may originally have been onomatopoeic for the sound of a relay spring (contact) being twanged. However, it is known that during the World Wars, "mung" was army slang for the ersatz creamed chipped beef better known as "SOS".
[{Jargon File}]
(1994-12-02)

munge
/muhnj/ 1. A derogatory term meaning to imperfectly transform information.
2. A comprehensive rewrite of a routine, data structure or the whole program.
This term is often confused with {mung} and may derive from it, or possibly vice-versa. One correspondent believes it derives from the french "mange" /monzh/, eat.
[{Jargon File}]
(2002-04-15)

mup
MUP
{Multiple Universal naming convention Provider}

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

murphys law
Murphy's Law
[humour] (Or "Sod's Law") The correct, *original* Murphy's Law reads: "If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it." This is a principle of defensive design, cited here because it is usually given in mutant forms less descriptive of the challenges of design for {lusers}. For example, you don't make a two-pin plug symmetrical and then label it "THIS WAY UP"; if it matters which way it is plugged in, then you make the design asymmetrical (see also the anecdote under {magic smoke}).
Edward A. Murphy, Jr. was one of the engineers on the rocket-sled experiments that were done by the US Air Force in 1949 to test human acceleration tolerances (USAF project MX981). One experiment involved a set of 16 accelerometers mounted to different parts of the subject's body. There were two ways each sensor could be glued to its mount, and somebody methodically installed all 16 the wrong way around. Murphy then made the original form of his pronouncement, which the test subject (Major John Paul Stapp) quoted at a news conference a few days later.
Within months "Murphy's Law' had spread to various technical cultures connected to aerospace engineering. Before too many years had gone by variants had passed into the popular imagination, changing as they went. Most of these are variants on "Anything that can go wrong, will"; this is sometimes referred to as {Finagle's Law}. The memetic drift apparent in these mutants clearly demonstrates Murphy's Law acting on itself!
[{Jargon File}]
(1998-02-14)

muse
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
MUSH
1. [games] {Multi-User Shared Hallucination}.
2. [messaging] {Mail Users' Shell}.

music
Music
[language, music] A series of languages for musical sound synthesis from {Bell Labs}, 1960's. Versions: Music I through Music V.
["An Acoustical Compiler for Music and Psychological Stimuli", M.V. Mathews, Bell Sys Tech J 40 (1961)].
[{Jargon File}]
(1999-06-04)

musical instrument digital interface
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)

musicam
Musicam
[audio, compression] A name for {MPEG-1 Layer 2} used for broadcasting. Common data rates are 192, 224, and 256 kbps.
(2001-12-13)

musimp
MuSimp
[language] A {Lisp} variant used as the programming language for the {IBM PC} {symbolic mathematics} package {MuMath}.
(1995-04-12)

musl
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
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
MuTeX
[tool, music] An extension of {TeX} for typesetting music.
{(ftp://nic.stolaf.edu/pub/mutex/MuTeX.tar.Z)}.
(1995-02-06)

mutex
[parallel] A {mutual exclusion} object that allows multiple {threads} to synchronise access to a shared resource. A mutex has two states: locked and unlocked. Once a mutex has been locked by a thread, other threads attempting to lock it will block. When the locking thread unlocks (releases) the mutex, one of the blocked threads will acquire (lock) it and proceed.
If multiple threads or tasks are blocked on a locked mutex object, the one to take it and proceed when it becomes available is determined by some type of scheduling algorithm. For example, in a priority based system, the highest priority blocked task will acquire the mutex and proceed. Another common set-up is put blocked tasks on a first-in-first-out queue.
See also: {priority inversion}
(2002-03-14)

mutter
To quietly enter a command not meant for the ears, eyes, or fingers of ordinary mortals. Often used in "mutter an {incantation}".
See also {wizard}.
[{Jargon File}]
(1995-02-06)

mutual exclusion
[parallel, operating system] (Or "mutex", plural: "mutexes") A collection of techniques for sharing resources so that different uses do not conflict and cause unwanted interactions. One of the most commonly used techniques for mutual exclusion is the {semaphore}.
(1995-04-08)

mutual recursion
{recursion}

mutually recursive
{recursion}

mux
{multiplexing}

mv
[networking] The {country code} for Maldives.
(1999-01-27)

mvc
MVC
1. [programming] {Model View Controller}.
2. [filename extension] The {filename extension} of {JPEG} images output by {Sony}'s {Mavica} range of {digital cameras}.
(2002-05-28)

mvcc
MVCC
{Multi-Version Concurrency Control}

mvs
MVS
{Multiple Virtual Storage}

mvsesa
MVS/ESA
{Multiple Virtual Storage}

mvsoe
MVS/OE
{Multiple Virtual Storage}

mvsopen edition
MVS/Open Edition
{Multiple Virtual Storage}

mvssp
MVS/SP
{Multiple Virtual Storage}

mvsxa
MVS/XA
{Multiple Virtual Storage}

mw
[networking] The {country code} for Malawi.
(1999-01-27)

mx
MX
{Mail Exchange Record}

mx
[networking] The {country code} for Mexico.
(1999-01-27)

mx record
MX Record
{Mail Exchange Record}

mxi
MXI
{Multisystem eXtention Interface Bus}

mxibus
MXIbus
{Multisystem eXtention Interface Bus}

my
[networking] The {country code} for Malaysia.
(1999-01-27)

my favourite toy language
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
MYOB
[chat] mind your own business.

mystic
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
MZ
[standard, file-format] The file signature of an {MS-DOS} executable (.{EXE}) file (0x4d 5a), always the first two {bytes} of the file. It was reportedly invented by, and named after, a {Microsoft} programmer, Mark Zbikowski.
In {Unix} systems, the string MZ is the {magic number} that identifies an MS-DOS EXE file.
(2003-06-10)

mz
[networking] The {country code} for Mozambique.
(1999-01-27)

n
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}.
[{Jargon File}]

n10
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.
[{Jargon File}]

nag
NAG
1. {Numerical Algorithms Group}.
2. The {Linux Network Administrators' Guide}.

nagling coalescence
Nagling Coalescence
[networking, algorithm] An algorithm for improving {TCP/IP} network performance by combining small {packets} ("tinygrams") into larger ones, thus reducing the per-packet overhead. The server transmits the packet either when it has reached a preset size or when it receives an acknowledgment of the previous packet.
[Who was Nagling?]
(1998-11-06)

nagware
/nag'weir/ [{Usenet}] The variety of {shareware} that displays a large screen at the beginning or end reminding you to register, typically requiring some sort of keystroke to continue so that you can't use the software in batch mode. Compare {crippleware}.
[{Jargon File}]

nailed to the wall
[like a trophy] Said of a {bug} finally eliminated after protracted, and even heroic, effort.

nailing jelly
See {like nailing jelly to a tree}.
[{Jargon File}]

naive
Untutored in the perversities of some particular program or system; one who still tries to do things in an intuitive way, rather than the right way (in really good designs these coincide, but most designs aren't "really good" in the appropriate sense). This trait is completely unrelated to general maturity or competence or even competence at any other specific program. It is a sad commentary on the primitive state of computing that the natural opposite of this term is often claimed to be "experienced user" but is really more like "cynical user".
(1994-11-29)

naive user
A {luser}. Tends to imply someone who is ignorant mainly owing to inexperience. When this is applied to someone who *has* experience, there is a definite implication of stupidity.
[{Jargon File}]

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

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}

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)

namespace
A set of names in which all names are unique.

nan
NaN
{Not-a-Number}

nand
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} meaning 10^-9 or one billionth.
Used loosely to mean "small", e.g. {nanotechnology}, or (rarely), following "nanosecond", to mean a short time, e.g. "I'll be with you in a nano".
[{Jargon File}]
(2002-03-02)

nanoacre
[unit, humour] /nan'oh-ay"kr/ A unit (about 2 mm square) of real estate on a {VLSI} {integrated circuit}. VLSI nanoacres have costs in the same range as real acres once one allows for design and fabrication setup costs.
[{Jargon File}]
(1995-09-20)

nanobot
[robotics] /nan"oh-bot/ A robot of microscopic proportions, presumably built by means of {nanotechnology}. As yet, only used informally (and speculatively!). Also called a "nanoagent".
[{Jargon File}]
(1999-07-19)

nanocomputer
/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.
[{Jargon File}]

nanofortnight
[jargon] ({Adelaide University}) 10^-9 fortnights or about 1.2 {milliseconds}. This unit was used largely by students doing undergraduate practicals.
See {microfortnight}, {attoparsec}, and {micro-}.
(1996-11-15)

nanometre
[unit] 10^-9 metres; one thousand millionth part of a metre.
The wavelength of visible light and dimensions in {nanotechnology} are typically measured in nanometres.
(2003-05-02)

nanosecond
[unit] (ns) 10^-9 seconds; one thousand millionth part of a second.
This is the unit in which the fundamental logical operations of modern digital circuits are typically measured. For example, a {microprocessor} with a {clock} frequency of 100 {megahertz} will have a 10 nanosecond clock period.
(1996-11-15)

nanotechnology
/nan'-oh-tek-no"l*-jee/ Any fabrication technology in which objects are designed and built by the specification and placement of individual atoms or molecules or where at least one dimension is on a scale of {nanometers}.
The first unequivocal nanofabrication experiments took place in 1990, for example with the deposition of individual xenon atoms on a nickel substrate to spell the logo of a certain very large computer company.
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)}.
(2003-05-02)

napier
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
NAPLPS
North American Presentation-Level-Protocol Syntax. Format for sending text and graphics over communication lines. Used by {videotex} systems.

napss
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
NAS
[networking] 1. {Network Application Support}.
2. [storage] {Network Attached Storage}.
3. [company] {National Advanced Systems}.
(2003-07-20)

nasal demons
Recognised shorthand on the {Usenet} group comp.std.c for any unexpected behaviour of a {C} compiler on encountering an undefined construct. During a discussion on that group in early 1992, a regular remarked "When the compiler encounters [a given undefined construct] it is legal for it to make demons fly out of your nose" (the implication is that the compiler may choose any arbitrarily bizarre way to interpret the code without violating the {ANSI C} {standard}). Someone else followed up with a reference to "nasal demons", which quickly became established.
[{Jargon File}]

nasi
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
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}.
[{Jargon File}]

nat
NAT
{Network Address Translation}

nathan hale
Nathan Hale
[character] An asterisk ("*", see also {splat}, {ASCII}). Notionally, from "I regret that I have only one asterisk for my country!" ("life to give" -] "ass to risk" -] "asterisk"), a misquote of the famous remark uttered by Nathan Hale just before he was hanged. Hale was a (failed) spy for the rebels in the American War of Independence.
[{Jargon File}]
(1996-09-22)

national advanced systems
National Advanced Systems
[company] (NAS) A company, previously known as ITEL, that made {IBM} {plug-compatible} {hardware} and was bought by Hitachi.
[Is this correct? Dates? US?]
(2003-07-20)

national bureau of standards
National Bureau of Standards
{National Institute of Standards and Technology}

national center for supercomputing applications
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/)}.
[Summary?]
(1994-10-27)

national characters
[character] {Characters} with accents and other diacritical marks that are used in certain written languages (that are based on the Roman alphabet) but not in others, particularly not in English. A standard list is {ISO} {Latin 1}.
(1996-06-24)

national database language
National Database Language
[database, standard] (NDL) A US {standard} for portability of {database} definitions and {application programs}.
(1996-06-24)

national information infrastructure
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
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
National Institute of Standards and Technology
[body] (NIST, formerly the National Bureau of Standards) A United States governmental body that helps develop {standards} including {FIPS}.
{NIST Home (http://www.nist.gov/)}.
(2003-06-04)

national research and education network
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
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
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
National Software Reuse Directory
(NSRD) A directory of reusable software in the {ASSET} system.
(1995-02-03)

national spatial data infrastructure
National Spatial Data Infrastructure
(NSDI)
{(http://fgdc.er.usgs.gov/nsdiover.html)}.
[Summary?]
(1995-03-06)

national television standards committee
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
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
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
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
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
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
Navigator
{Netscape Navigator}

nawk
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
NB
{C}

nbfcp
NBFCP
{NetBIOS Frames Control Protocol}

nbs
NBS
National Bureau of Standards: part of the US Department of Commerce, now NIST.

nbt
NBT
{NetBios over TCP/IP}

nc
NC
{Network Computer}

nc
[networking] The {country code} for New Caledonia.
(1999-01-27)

ncd
NCD
{Network Computing Devices}

ncp
NCP
[networking]
1. {IBM} {Advanced Communication Function/Network Control Program}.
2. {Novell, Inc.} {NetWare Core Protocol}.
(1999-01-20)

ncr corporation
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
NCS
Network Computing System: Apollo's RPC system used by DEC and Hewlett-Packard.The protocol has been adopted by {OSF}.

ncsa
NCSA
{National Center for Supercomputing Applications}

nd
ND
{natural deduction}

ndis
NDIS
{Network Device Interface Specification}

ndl
NDL
1. {National Database Language}.
2. {Network Definition Language}.

nds
NDS
{Netware Directory Services}

ne
[networking] The {country code} for Niger.
(1999-01-27)

neat hack
1. A clever technique.
2. A brilliant practical joke, where neatness is correlated with cleverness, harmlessness, and surprise value. Example: the Caltech Rose Bowl card display switch. See also {hack}.
[{Jargon File}]

neats vs scruffies
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
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
NEC
{Nippon Electronics Corporation}

nec 780c
NEC 780-C
[processor] A copy of the {Zilog Z80A} {microprocessor}, running at 3.25 MHz.
The NEC 780-C was the processor used in the Sinclair {ZX-80}.
(2002-03-11)

neepneep
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!".
[{Jargon File}]
(1994-11-29)

negation by failure
An {extralogical} feature of {Prolog} and other {logic programming} languages in which failure of {unification} is treated as establishing the negation of a {relation}. For example, if Ronald Reagan is not in our {database} and we asked if he was an American, Prolog would answer "no".
(1994-11-29)

negative acknowledgement
1. [character] (NAK) The {mnemonic} for {ASCII} character 21.
Sometimes used as the response to receipt of a corrupted {packet} of information.
Opposite of {acknowledgement}.
2. [communications] (NAK) Any message transmitted to indicate that some data has been received incorrectly, for example it may have a {checksum} or message length error. A NAK message allows the sender to distinguish a message which has been received in a corrupted state from one which is not received at all.
An alternative is to use only {ACK} messages, in which case the non-receipt of an ACK after a certain time is counted as a NAK but gives no information about the integrity of the communications channel.
See also {ACK}.
(1997-01-07)

neliac
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
Neon
Charles Duff. An object-oriented extension of FORTH, for the Mac. Inheritance, SANE {floating-point}, system classes and objects for Mac interfacing, overlays. Sold by Kriya Systems, 1985-1988. Modified, made PD and renamed Yerk.

neophilia
/nee"oh-fil"-ee-*/ The trait of being excited and pleased by novelty. Common among most hackers, SF fans, and members of several other connected leading-edge subcultures, including the pro-technology "Whole Earth" wing of the ecology movement, space activists, many members of Mensa, and the Discordian/neo-pagan underground. All these groups overlap heavily and (where evidence is available) seem to share characteristic hacker tropisms for science fiction, music, and oriental food. The opposite tendency is "neophobia".
[{Jargon File}]
(1999-06-04)

neptune
Neptune
A hypertext system for computer assisted software engineering, developed at Tektronix.

nerd pride
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
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
NESL
[language] A parallel language loosely based on {ML}, developed at {Carnegie Mellon University} by the {SCandAL} project. NESL integrates parallel {algorithms}, {functional languages} and implementation techniques from the system's community.
Nested {data parallelism} offers concise code that is easy to understand and debug and suits irregular data structures such as {trees}, {graphs} or {sparse matrices}.
NESL's language based performance model is a formal way to calculate the "work" and "depth" of a program. These measures can be related to running time on a {parallel computer}.
NESL was designed to make parallel programming easy and portable. Algorithms are typically more concise in NESL than in most other parallel programming languages and the code resembles high-level {pseudocode}. This places more responsibility on the {compiler} and {run-time system} for achieving good efficiency.
NESL currently runs on {Unix} {workstations}, the {IBM SP-2}, the {Thinking Machines} {CM5}, the {Cray} {C90} and {J90}, the {MasPar} {MP2}, and the {Intel} {Paragon}. Work is underway (April 1997) on a portable {MPI} {back end}, and an implementation for {symmetric multiprocessors}, such as the {SGI} {Power Challenge} or the {DEC} {AlphaServer}.
Latest version: Release 3.1, as of 1995-11-01.
{Home
(http://www.cs.cmu.edu/afs/cs.cmu.edu/project/scandal/public/www/nesl.html)}.
["NESL: A Nested Data-Parallel Language", Guy Blelloch, CMU-CS-93-129, April 1993].
(1997-04-13)

net
1. [networking] {network}.
2. [networking] {network, the}.
3. [architecture] {neural network}.
4. [networking] The {top-level domain} originally for networks, although it sees heavy use for {vanity domains} of all types.
[{Jargon File}]
(1999-01-26)

net
.-
[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}.
[{Jargon File}]
(1995-03-21)

net framework
.NET framework
[language, tool, library] A software development and execution environment designed by {Microsoft} as a direct competitor to {Java}. .NET framework should not be confused with {Microsoft}'s past labeling of a line of products as ".NET".
.NET simplifies interoperability between languages and machines on {Microsoft Windows} especially, although not specifically, for web based services. Essentially the .NET framework consists of the CLR (common language runtime), CTS (common type system), CLS (common language system), and IL (intermediate language).
The CLR consists of a number of resources provided to .NET applications such as the security model, type system and .NET classes (c.f. Java classes). The CTS is the range of all types that .NET understands although it is not necessarily the case that a .NET program will understand all of these types. The CLS however is a subset of the CTS which all .NET languages must support: any two .NET languages can interoperate via. the CLS.
All .NET languages are at some stage compiled into the IL, a {byte-code} like language. However unlike a standard Java run time environment, the IL is converted to {machine code} either upon installation of the software or at {run time} by a {just in time compiler} (JIT). The IL is not interpretted.
.NET's main weakness is that Microsoft have ignored the {Unix} and {mainframe} environments, effectively ruling .NET out of use in many {enterprise} environments. However there is {Mono} - an {open source} .NET framework for Unix}.
.NET was based on research by Steven Lucco on a product called {OmniVM}, sold by {Colusa software}. Attracted to OmniVM since VB and C/C++ environments were already available, Microsoft bought Colusa in 1996. Microsoft provides .NET compilers for {C#}, {C++}, {VB}, and {Jscript}.
(2003-09-24)

netaddress
See {Knowbot Information Service}.

netbeui
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
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
NetBIOS Frames Control Protocol
[protocol] (NBFCP, NBF protocol, originally "NetBEUI protocol")
[RFC 2097]
[What is it?]
(1997-05-10)

netbios over tcpip
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
NetBOLLIX
["bollix": to bungle] {IBM}'s {NetBIOS}, an extremely {brain-damaged} {network} {protocol} that, like {Blue Glue}, is used at commercial shops that don't know any better.
[{Jargon File}]

netbui
[spelling] It's spelled "{NetBEUI}".
(1996-12-23)

netburp
[networking, chat] (Or "netsplit") When {netlag} gets really bad, and delays between {IRC} servers exceed a certain threshhold, the network effectively becomes partitioned for a period of time, and large numbers of people seem to be signing off at the same time and then signing back on again when things get better. An instance of this is called a "netburp" (or, sometimes, {netsplit}).
[{Jargon File}]
(1996-06-04)

netcdf
netCDF
Network Common Data Form. A machine-independent, self-describing file format for scientific data.

netcom online communication services inc
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".
[{Jargon File}]

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

netgod
net.god
[person] /net god/ Accolade referring to anyone who satisfies some combination of the following conditions: has been visible on {Usenet} for more than 5 years, ran one of the original backbone sites, moderated an important newsgroup, wrote news software, or knows Gene, Mark, Rick, Mel, Henry, Chuq, and Greg personally.
Net.goddesses such as Rissa or the Slime Sisters have (so far) been distinguished more by personality than by authority.
See {demigod}.
[{Jargon File}]
(1996-01-07)

nethack
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)}.
[{Jargon File}]
(1999-10-18)

netl
NETL
A {semantic network} language, for {connectionist} architectures.
["NETL: A System for Representing and Using Real-World Data", S.E. Fahlman, MIT Press 1979].
(1995-01-05)

netlag
[networking] A condition that occurs when the delays in the {IRC} network, a {MUD} connection, a {telnet} connection, or any other networked interactive system, become severe enough that servers briefly lose and then reestablish contact, causing messages to be delivered in bursts, often with delays of up to a minute. (Note that this term has nothing to do with mainstream "jet lag").
[{Jargon File}]
(1996-06-21)

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
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
NetNanny
[networking] A small program for children to block access to certain sites.
[Company? Address?]
(1997-02-12)

netnews
/net'n[y]ooz/ 1. The software that makes {Usenet} run.
2. The content of {Usenet}. "I read netnews right after my mail most mornings."
[{Jargon File}]
(1994-12-14)

netpersonality
net.personality
Someone who has made a name for him or herself on {Usenet}, through either longevity or attention-getting posts, but doesn't meet the other requirements of {net.god}hood.
[{Jargon File}]

netpipes
[networking] A package by Robert Forsman [thoth@cis.ufl.edu] to manipulate {BSD Unix} {TCP/IP} stream {sockets}. The netpipes package makes TCP/IP streams usable in {shell scripts}. It can also simplify {client-server} code by allowing the programmer to skip all the tedious programming related to sockets and concentrate on writing a filter/service.
{Home (http://www.cis.ufl.edu/~thoth/netpipes/)}.
(1996-10-03)

netpolice
net.police
/net-p*-lees'/ (Or "net police", "net.cops") Those {Usenet} readers who feel it is their responsibility to pounce on and {flame} any posting which they regard as offensive or in violation of their understanding of {netiquette}. Generally used sarcastically or pejoratively.
See also {net.-}, {code police}.
[{Jargon File}]

netquette
[spelling] It's spelled "{netiquette}".
(1999-09-30)

netrek
Netrek
[games] A 16-player graphical {real-time} battle simulation with a Star Trek theme. The game is divided into two teams of eight (or less), who dogfight each other and attempt to conquer each other's planets. There are several different types of ships, from fast, fragile scouts up to big, slow battleships; this allows a great deal of variance in play styles. Netrek is played using a {client} to connect to one of several Netrek {servers} on the {Internet}. There is a metaserver which distributes details of games in progress on other servers.
See also {ogg}.
[Dates? Versions? Authors? Addresses?]
(1998-02-01)

netrock
/net'rok/ (IBM) A {flame}; used especially on {VNET}, {IBM}'s internal corporate network.
[{Jargon File}]
(1994-11-18)

netscape
Netscape
1. {Netscape Navigator}.
2. {Netscape Communications Corporation}.

netscape communications corporation
Netscape Communications Corporation
[company] (Formlerly "Mosaic Communications Corporation", MCC) A company set up in April 1994 by {Dr. James H. Clark} and {Marc Andreessen} [marca@netcom.com] (creator of the {NCSA} {Mosaic} program) to market their version of {Mosaic}, known as {Netscape} or {Mozilla}.
They {changed their name (http://www.netscape.com/newsref/pr/newsrelease5.html)} on 1994-11-14 to reflect their other activities rather than just their browser based on {Mosaic}.
{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.
(2000-02-08)

netscape navigator
Netscape Navigator
[networking, tool, product] /Mozilla/ (Often called just "Netscape") A {World-Wide Web} {browser} from {Netscape Communications Corporation}. The first {beta-test} version was released free to the {Internet} on 13 October 1994. Netscape evolved from {NCSA} {Mosaic} (with which it shares at least one author) and runs on the {X Window System} under various versions of {Unix}, on {Microsoft Windows} and on the {Apple Macintosh}.
It features integrated support for sending {electronic mail} and reading {Usenet} news, as well as {RSA encryption} to allow secure communications for commercial applications such as exchanging credit card numbers with net retailers. It provides multiple simultaneous interruptible text and image loading; native inline {JPEG} image display; display and interaction with documents as they load; multiple independent windows. Netscape was designed with 14.4 kbps modem links in mind.
You can download Netscape Navigator for evaluation, or for unlimited use in academic or not-for-profit environments. You can also pay for it.
Version: 1.0N.
{(ftp://ftp.netscape.com/netscape/)}.
E-mail: [sales@netscape.com].
(1995-01-25)

netscape public license
Netscape Public License
{open source license}

netsplit
{netburp}

netstat
[networking] (Or "rstat") A {Unix} command to give statistics about the {network} including {socket} status, interfaces that have been auto-configured, memory statistics, {routing} tables.
{Unix manual pages}: rstat(3), netstat(8).
(1996-06-04)

netter
1. Loosely, anyone with a {network address}.
2. More specifically, a {Usenet} regular. Most often found in the plural. "If you post *that* in a technical group, you're going to be flamed by angry netters for the rest of time!"
[{Jargon File}]

netware
NetWare
{Novell NetWare}

netware core protocol
NetWare Core Protocol
[networking] (NCP) A {Novell} trademark for the {protocol} used to access {Novell NetWare} file and print service functions. It uses an underlying {IPX} or {IP} {transport protocol}.
(1995-11-11)

netware directory services
Netware Directory Services
[networking] (NDS) {Novell, Inc.}'s {directory services} for {Netware}, {Windows NT}, and {Unix}. The NDS directory represents each {network} resource (user, hardware, or application) as an {object} of a certain {class}, where each class has certain properties. For example, User and Print Server are object classes and a user has over 80 properties such as name, login, password, department, and title.
The directory is hierarchical, divided into branches by {rules of containment}. A given object can only belong to a given container (or branch). The rules governing classes, properties and, {rules of containment} are known as the {schema}.
(2001-03-20)

netware inputoutput subsystem
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
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}.
[{Jargon File}]
(1997-05-10)

network address translation
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 Translator
{Network Address Translation}

network addressable unit
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 application support
Network Application Support
[networking] (NAS) {DEC}'s approach to {applications integration} across a {distributed} multivendor environment.
(2003-06-30)

network attached storage
Network Attached Storage
[networking, storage] (NAS) {Fixed disks}, {RAID} arrays, and {magnetic tape} drives connected directly to a {Storage Area Network} (SAN) or other direct network connection. This is in contrast to a {file server} where the peripherals are connected to the network via a computer (the server).
(2003-06-30)

network byte order
[networking] The order in which the {bytes} of a multi-byte number are transmitted on a network - most significant byte first (as in "{big-endian}" storage). This may or may not match the order in which numbers are normally stored in memory for a particular processor.
{(http://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
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
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
Network Device Interface Specification
[networking, hardware, standard] (NDIS) A {Microsoft Windows device driver} programming interface allowing multiple {protocols} to share the same {network} {hardware}. E.g. {TCP/IP} and {IPX} on the same {NIC}. NDIS can also be used by some ISDN adapters.
A protocol manager accepts requests from the {transport layer} and passes them to the {data link layer} (routed to the correct network interface if there is more than one).
NDIS was developed by {Microsoft} and {3COM}. {Novell} offers a similar device driver for NetWare called Open Data-Link Interface (ODI).
The NDIS 2.0 specification was 5000 lines.
Current version: NDIS 5.0, as of 2000-10-30.
{Home (http://www.microsoft.com/hwdev/devdes/ndis5.htm)}.
{cdrom.com NDIS archive (ftp://ftp.cdrom.com/pub/os2/network/ndis/)}.
["3TECH, The 3COM Technical Journal", Winter 1991].
(2000-10-30)

network extensible window system
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
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
Network Filing System
[spelling] Misnomer for {Network File System}.

network information center
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
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
Network Information System
[spelling] A mis-expansion of {NIS}.
(1995-04-08)

network interface card
{network interface controller}

network interface controller
[hardware, networking] (NIC or "network interface card") An adapter circuit board installed in a computer to provide a physical connection to a network.
[Examples? Attributes?]
(1996-03-04)

network layer
[networking] (communications subnet layer) The third lowest layer in the {OSI} seven layer model. The network layer determines routing of {packets} of data from sender to receiver via the {data link layer} and is used by the {transport layer}. The most common network layer {protocol} is {IP}.
(1994-12-13)

network layer reachability information
[networking] (NLRI) Keywords used to for {unicast} and {multicast} {database} forwarding. For example, you would assign a user's NLRI so the user can receive multicast messages regarding hardware down time that will affect a specific user group.
[Reference?]
(2002-06-01)

network management
[networking] The process of controlling a {network} so as to maximise its efficiency and productivity. {ISO}'s model divides network management into five categories: {fault management}, {accounting management}, {configuration management}, {security management} and {performance management}.
Fault management is the process of identifying and locating faults in the network. This could include discovering the existence of the problem, identifying the source, and possibly repairing (or at least isolating the rest of the network from) the problem.
Configuration management is the process of identifying, tracking and modifying the setup of devices on the network. This category is extremely important for devices that come with numerous custom settings (e.g. {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}.
[{Jargon File}]
(1994-11-29)

network news transfer protocol
Network News Transfer Protocol
(NNTP) A {protocol} defined in {RFC} 977 for the distribution, inquiry, retrieval and posting of {Usenet} {news} articles over the {Internet}. It is designed to be used between a {news reader} {client} such as {nn} or {GNUS} and a news {server}. It is normally used on a connection to {TCP} {port} 119 on the news {server}. NNTP is a simple {ASCII} text protocol so even if you don't have a news reader program, you can just connect to the server using {telnet}:
telnet news 119
where news is the name of your server (e.g. news.doc.ic.ac.uk). Typing HELP will give a list of other commands.

network node interface
Network Node Interface
[networking] (NNI) The {ATM Forum}'s specification for connections between network nodes. NNI makes network {routing} possible. It typically refers to {backbone} trunk connections between ATM switching equipment.
See also: {UNI}.
(2001-03-26)

network number
{network address}

network operating system
Network Operating System
[operating system] (NOS) The {operating system} on {Control Data Corporation}'s {Cyber Computer}.
[Details?]
(2002-11-22)

network operating system
[networking, operating system] (NOS) An {operating system} which includes {software} to communicate with other computers via a {network}. This allows resources such as files, {application programs}, and {printers} to be shared between computers.
Examples are {Berkeley Software Distribution} {Unix}, {Novell}, {LAntastic}, {MS LAN Manager}.
[Is there a specific OS called "Network Operating System"?]
(2001-03-13)

network operations center
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 receiving node inspects the destination address of a {packet} to tell if it was (one of) the intended recipient(s).
Communication between nodes on different segments is via one or more {routers}.
(1996-10-16)

network solutions inc
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
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
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 "Schrodinger's Cat", to which many {hackers} have subsequently decided they belong (this is an example of {ha ha only serious}).
[{Jargon File}]
(1999-01-26)

network time protocol
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)

networking
{network}

netx
Net:X
[company] A Canadian company. Not to be confused with {NetX}.
{Home (http://www.netx.ca/)}.
[Summary?]
(1998-06-25)

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

neural nets
{artificial neural network}

neural network
{artificial neural network}

neuron
{artificial neural network}

neutral interconnect
Neutral Interconnect
Network infrastructure where network service providers can freely exchange traffic without policy restrictions. Examples are the GIX (Global Internet Exchange) at MAE-East (A Metropolitan Area Ethernet around Washington), and the Ebone (European Backbone). There is currently (November 1993) no UK Neutral Interconnect.

neutrosophic
{Neutrosophy}

neutrosophic logic
[logic] (Or "Smarandache logic") A generalisation of {fuzzy logic} based on {Neutrosophy}. A proposition is t true, i indeterminate, and f false, where t, i, and f are real values from the ranges T, I, F, with no restriction on T, I, F, or the sum n=t+i+f. Neutrosophic logic thus generalises:
- {intuitionistic logic}, which supports incomplete theories (for 0[n[100 and i=0, 0[=t,i,f[=100);
- {fuzzy logic} (for n=100 and i=0, and 0[=t,i,f[=100);
- {Boolean logic} (for n=100 and i=0, with t,f either 0 or 100);
- {multi-valued logic} (for 0[=t,i,f[=100);
- {paraconsistent logic} (for n]100 and i=0, with both t,f[100);
- {dialetheism}, which says that some contradictions are true (for t=f=100 and i=0; some {paradoxes} can be denoted this way).
Compared with all other logics, neutrosophic logic introduces a percentage of "indeterminacy" - due to unexpected parameters hidden in some propositions. It also allows each component t,i,f to "boil over" 100 or "freeze" under 0. For example, in some {tautologies} t]100, called "overtrue".
{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, where t, i, f are real values from the ranges T, I, F, with no restriction on T, I, F or the sum n=t+i+f.
{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 in the following way: it is t true in the set, i indeterminate in the set, and f false, where t, i, and f are real numbers taken from the sets T, I, and F with no restriction on T, I, F, nor on their sum n=t+i+f.
The neutrosophic set generalises:
- the {intuitionistic set}, which supports incomplete set theories (for 0[n[100 and i=0, 0[=t,i,f[=100);
- the {fuzzy set} (for n=100 and i=0, and 0[=t,i,f[=100);
- the classical set (for n=100 and i=0, with t,f either 0 or 100);
- the {paraconsistent set} (for n]100 and i=0, with both t,f[100);
- the {dialetheist set}, which says that the intersection of some disjoint sets is not empty (for t=f=100 and i=0; some paradoxist sets can be denoted this way).
{Home (http://www.gallup.unm.edu/~smarandache/NeutSet.txt)}.
["Neutrosophy / Neutrosophic Probability, Set, and Logic", Florentin Smarandache, American Research Press, 1998].
(1999-12-14)

neutrosophic statistics
[statistics] Analysis of events described by {neutrosophic probability}.
["Neutrosophy / Neutrosophic Probability, Set, and Logic", Florentin Smarandache, American Research Press, 1998].
(1999-07-05)

neutrosophy
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
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/)}.
[But what *is* it?]
(1999-11-03)

new flavors
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)

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

new programming language
NEW Programming language
[language] (NEWP) A language which replaced {ESPOL} on the {Burroughs Large System}.
(1994-12-13)

new storage system
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
New Testament
[C programmers] The second edition of {K&R}'s "The C Programming Language" (Prentice-Hall, 1988; ISBN 0-13-110362-8), describing {ANSI C}.
[{Jargon File}]

new york state educational reasearch etwork
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
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/)}.

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}.
[{Jargon File}]
(1998-02-18)

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.
[{Jargon File}]

newline
[character, jargon] /n[y]oo'li:n/ {Line feed} or other character sequence used to terminate a line of text.
{Unix} uses {line feed} as its text line terminator - a {Bell-Labs}-ism rather than a {Berkeley}ism. Interestingly (and unusually for Unix jargon), it is said to have originally been an {IBM} usage. Though the term "newline" appears in {ASCII} {standards}, it never caught on in the general computing world before {Unix}. The encoding of line feed as "\n" in {C} and {Unix} strings comes from this name.
The term has been used more generally for any {end of line} character, character sequence (e.g. {crlf}), or operation (like {Pascal}'s writeln procedure or {Lisp 1.5}'s {terpri}) required to terminate a text record or separate lines.
[{Jargon File}]
(1997-07-14)

newp
NEWP
{NEW Programming language}

news
See {netnews}.

news
NeWS
/nee'wis/, /n[y]oo'is/ or /n[y]ooz/ {Network extensible Window System}.
Many hackers insist on the two-syllable pronunciations above as a way of distinguishing NeWS from {news} (the {netnews} software).
[{Jargon File}]

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

newsclip
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}.
[{Jargon File}]
(1994-12-13)

newsgroup
[messaging] One of {Usenet}'s huge collection of topic groups or {fora}. {Usenet} groups can be "unmoderated" (anyone can post) or "moderated" (submissions are automatically directed to a {moderator}, who edits or filters and then posts the results). Some newsgroups have parallel {mailing 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}.
[{Jargon File}]
(1994-12-13)

newsletter
[publication] A periodically published work containing news and announcements on some subject, typically with a small circulation. Newsletters are a common application for {DTP} and may be distributed by {electronic mail}.
(1996-12-10)

newspeak
Newspeak
A language inspired by {Scratchpad}.
[J.K. Foderaro. "The Design of a Language for Algebraic Computation", Ph.D. Thesis, UC Berkeley, 1983].

newsqueak
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
.newsrc
[messaging] (news run commands) The configuration file for the {Unix} {rn} {news reader}.
See also {rc}.
(1996-04-09)

newton
Newton
1. (Named after Isaac Newton (1642-1727)). Rapin et al, Swiss Federal Inst Tech, Lausanne 1981. General purpose expression language, syntactically ALGOL-like, with object-oriented and functional features and a rich set of primitives for concurrency. Used for undergraduate teaching at Lausanne (EPFL).
Versions: Newton 2.6 for VAX/VMS and Newton 1.2 for DEC-Alpha/{OSF}-1.
E-mail: J. Hulaas [hulaas@lcodec1.epfl.ch]. {(ftp://ellc4.epfl.ch /pub/languages/Newton)}.
["Procedural Objects in Newton", Ch. Rapin, SIGPLAN Notices 24(9) (Sep 1989)].
["The Newton Language", Ch. Rapin et al, SIGPLAN Notices 16(8):31-40 (Aug 1981)].
["Programming in Newton", Wuetrich and Menu, EPFL 1982].
2. {Apple Newton}.
(2000-08-29)

newtonraphson
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
NewWave
A graphical user interface and object-oriented environment from Hewlett-Packard, based on Windows and available on Unix workstations.

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

nexor
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
Nexpert Object
An {expert system}.

next inc
NeXT, Inc.
[company] The company founded by {Steve Jobs} [in ?] following his involuntary departure from {Apple Computer, Inc.}. NeXT produced both the hardware and {operating system} ({NEXTSTEP}). They changed their name to "NeXT Software" when they stopped making hardware and released NEXTSTEP For {Intel} processors. The company was bought by Apple in 1997(?).
(1999-11-25)

next program counter
Next Program Counter
[architecture] (nPC) A {register} in a {CPU} that contains the {address} of the {instruction} to be executed next.
(2000-07-12)

nextstep
NEXTSTEP
[operating system] The original {multitasking} {operating system} that {NeXT, Inc.} developed to run on its proprietary {NeXT} computers (informally known as "black boxes"). NEXTSTEP includes a specific {graphical user interface}, an interface builder, {object-oriented} application builder, and several "kits" of prebuilt software {objects} such as the Indexing Kit for {databases}. This software runs on top of NeXT's version of the {Mach} operating system on {NeXT}, {486}, {Pentium}, {HP-PA}, and {Sun} {SPARC} computers.
The official spelling changed from "NeXTstep" to "NeXTStep" to "NeXTSTEP", and finally "NEXTSTEP".
The last release of NEXTSTEP was 3.3, which NeXT then developed into "{OpenStep}".
{TjL's Pages (http://www.peak.org/~luomat/)}. {Peanuts (http://www.peanuts.org/peanuts/NEXTSTEP/)}.
See also: {GNUStep}.
(2003-05-23)

nf
[networking] The {country code} for Norfolk Island.
(1999-01-27)

nfa
NFA
{Finite State Machine}

nfql
NFQL
["NFQL: The Natural Forms Query Language", D. Embley, Trans Database Sys 14(2):168-211 (June 1989)].

nfs
NFS
{Network File System}

nft
NFT
Network File Transfer. An INTERLINK command on CERNVM.

ng
[networking] The {country code} for Nigeria.
(1999-01-27)

ngl
NGL
A dialect of {IGL}.

nhoh
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
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
NIAL Systems Ltd.
Distributors of {Q'NIAL}.
Address: Ottawa Canada.
Telephone: Canada (613) 234 4188.
(1995-01-25)

niam
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
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
NIC
1. [networking] {Network Information Center}.
2. [hardware] {Network Interface Card}.
(1996-02-13)

nicddnmil
NIC.DDN.MIL
[networking] {Defense Data Network}'s {Network Information Center}.
(1996-02-13)

nice
NICE
The {Nonprofit International Consortium for Eiffel}.

nick
[IRC] nickname. On {IRC}, every user must pick a nick, which is sometimes the user's real name or login name, but is often more fanciful. Compare {handle}.
[{Jargon File}]

nickle
/ni'kl/ ["nickel", common name for the US 5-cent coin] A {nibble} + 1; 5 bits. Reported among developers for Mattel's {GI 1600} (the {Intellivision} games processor), a chip with 16 bit-wide {RAM} but 10 bit-wide {ROM}. See also {deckle}.

nicol i
NICOL I
1. Small subset of PL/I by (Massachusetts) Computer Assoc, ca. 1965. Version: NICOL II (1967). Sammet 1969, p.542.
2. ICL, 1968. [same as 1?]

nifoc
NIFOC
[chat] Naked in front of computer. Possibly also typing with one hand.
(2001-03-11)

night mode
See {phase} (of people).

nightmare file system
Nightmare File System
Pejorative hackerism for {Sun}'s {Network File System} (NFS). In any nontrivial network of Suns where there is a lot of NFS {cross-mount}ing, when one Sun goes down, the others often freeze up. Some machine tries to access the down one, and (getting no response) repeats indefinitely. This causes it to appear dead to some messages (what is actually happening is that it is locked up in what should have been a brief excursion to a higher {spl} level). Then another machine tries to reach either the down machine or the pseudo-down machine, and itself becomes pseudo-down. The first machine to discover the down one is now trying both to access the down one and to respond to the pseudo-down one, so it is even harder to reach. This situation snowballs very quickly, and soon the entire network of machines is frozen - worst of all, the user can't even abort the file access that started the problem!
Many of NFS's problems are excused by partisans as being an inevitable result of its {stateless}ness, which is held to be a great feature (critics, of course, call it a great {misfeature}). {ITS} partisans are apt to cite this as proof of {Unix}'s alleged bogosity; ITS had a working NFS-like shared file system with none of these problems in the early 1970s. See also {broadcast storm}.
[{Jargon File}]

nih
NIH
The United States National Institutes of Health.

nihcl
NIHCL
A {class library} for {C++} from the US National Institutes of Health (NIH).

nii
NII
{National Information Infrastructure}

nikl
NIKL
Frame language.
["Recent Developments in NIKL", T.R. Kaczmarek et al, Proc AAAI-86, 1986].

niklaus wirth
Niklaus Wirth
[person] The designer of the {Modula-2}, {Modula-3}, and, in around 1970, {Pascal} programming languages.
[More info?]
(2001-09-22)

nil
NIL
/nil/ 1. New Implementation of Lisp. A language intended to be the successor of {MacLisp}. A large {Lisp}, implemented mostly in {VAX} {assembly language}. A forerunner of {Common LISP}.
["NIL: A Perspective", Jon L. White, MACSYMA Users' Conf Proc, 1979].
2. Network Implementation Language. Strom & Yemini, TJWRC, IBM. Implementation of complex networking protocols in a modular fashion.
["NIL: An Integrated Language and System for Distributed Programming", R. Strom et al, SIGPLAN Notices 18(6):73-82 (June 1983)].
3. Empty list or False. In {Lisp}, the empty list (or "nil list") is used to represent the {Boolean} value False. This is possible because {Lisp} is not typed. True is represented by the special {atom} "t".
4. Spoken in reply to a question, particularly one asked using the "-P" convention it means "No". Most hackers assume this derives simply from LISP, but NIL meaning "no" was well-established among radio hams decades before LISP existed. The historical connection between early hackerdom and the ham radio world was strong enough that this may have been an influence.
[{Jargon File}]

niladic
[programming] A less common synonym for "{nullary}", presumably following the more common {monadic}, {dyadic}, etc. The term was in use as early as 1976, and probably originated in {APL}.
[APL: An Interactive Approach, 1976].
(2001-01-27)

ninetyninety rule
Ninety-Ninety Rule
[humour] "The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time".
An aphorism attributed to Tom Cargill of Bell Labs, and popularised by Jon Bentley's September 1985 "Bumper-Sticker Computer Science" column in "Communications of the ACM". It was there called the "Rule of Credibility", a name which seems not to have stuck.
[{Jargon File}]
(1995-07-14)

nios
NIOS
{Netware Input/Output Subsystem}

nipple
{Trackpoint}

nis
NIS
{Network Information Service}

niso
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
NISS
{National Information Services and Systems}

nist
NIST
{National Institute of Standards and Technology}

njcl
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
NLM
{Netware Loadable Module}

nlp
NLP
1. [application] {Natural Language Processing}.
2. [networking] {Network Layer Protocol}.

nlri
NLRI
{network layer reachability information}

nls
NLS
{Native Language System}

nlsp
NLSP
{NetWare Link State Protocol}

nlx
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
NMI
{Non-Maskable Interrupt}

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

nmu
NMU
{Non-Maintainer Upload}

nn
NN
{neural network}

nn
[tool, messaging] A {terminal based} program for reading {Usenet} {news} by Kim F. Storm [storm@texas.dk], Texas Instruments A/S, Denmark.
nn lets you decide which of the many {news groups} you are interested in, and unsubscribe to those which don't interest you. nn lets you select articles to read from a menu in each of the groups you subscribe. nn sorts and presents new articles very quickly because it uses its own local database to maintain all the necessary information (this database is built and maintained by the nnmaster program).
The {NNTP} support was designed and implemented by Ren'e Seindal, Institute of Datalogy, University of Copenhagen, Denmark.
E-mail: [nn-bugs@dkuug.dk] (bugs, fixes, suggestions, etc.)
{Usenet} newgroup: {news:news.software.nn}.
(1995-12-04)

nni
NNI
{Network Node Interface}

nntp
NNTP
[messaging] {Network News Transfer Protocol}.
(1996-02-26)

no
[networking] The {country code} for Norway.
(1999-01-27)

noc
NOC
{Network Operations Center}

nodal
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
Nodal Switching System
(NSS) Main {routing} nodes in the {NSFnet} {backbone}.

noddy
/nod'ee/ [UK: from the children's books] 1. Small and un-useful, but demonstrating a point. Noddy programs are often written by people learning a new language or system. The archetypal noddy program is {hello, world}. Noddy code may be used to demonstrate a feature or bug of a compiler. May be used of real hardware or software to imply that it isn't worth using. "This editor's a bit noddy."
2. A program that is more or less instant to produce. In this use, the term does not necessarily connote uselessness, but describes a {hack} sufficiently trivial that it can be written and debugged while carrying on (and during the space of) a normal conversation. "I'll just throw together a noddy {awk} script to dump all the first fields." In North America this might be called a {mickey mouse program}. See {toy program}.
3. A simple (hence the name) language to handle text and interaction on the {Memotech} home computer. Has died with the machine.
[{Jargon File}]

node
1. A point or vertex in a {graph}.
2. An addressable device attached to a computer {network}. More often called a "host".
3. A {hypertext} document.

noise
[communications] Any part of a signal that is not the true or original signal but is introduced by the communication mechanism.
A common example would be an electrical signal travelling down a wire to which noise is added by inductive and capacitive coupling with other nearby signals (this kind of noise is known as "{crosstalk}").
A less obvious form of noise is {quantisation} noise, such as the error between the true colour of a point in a scene in the real world and its representation as a {pixel} in a digital image.
(2003-07-05)

noise shaping
[communications] {Spectral noise} transformation in a quantisation processes. Noise is "colourised" in the {time domain} an/or {frequency domain} by adding parts of the previous sample. The {SNR bandwidth} and {SNR time integral} stay the same, so some noise decreases, some increases, but overall noise always increases.
An example of noise shaping in the frequency domain is quantisation of samples on a {Compact Disc} to reduce noise below -98 dB. The are different algorithms with slightly different filters, e.g. {Super Bitmapping}, {4D Recording}.
A time domain example is {MPEG-4 AAC TNS}, which is a method to enhance quality by temporal forming of the noise in a transform block.
(2003-07-19)

nol
NOL
{Never Offline}

nomad
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
NOMEX underwear
/noh'meks uhn'-der-weir/ [{Usenet}] Synonym {asbestos longjohns}, used mostly in auto-related {mailing lists} and newsgroups. NOMEX underwear is an actual product available on the racing equipment market, used as a fire resistance measure and required in some racing series.
[{Jargon File}]

nominal semidestructor
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 parity
{parity}

non return to zero inverted
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)

nonalgorithmic procedure
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
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)

nonimpact printer
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)

noninterlaced
non-interlaced
{interlace}

nonintrusive testing
[testing] Testing that is transparent to the software under test, i.e., does not change its timing or processing characteristics. Nonintrusive testing usually involves additional hardware that collects timing or processing information and processes that information on another platform.

nonlinear
(Scientific computation) A property of a system whose output is not proportional to its input. For example, a {transistor} has a region of input voltages for which its output voltage is found by multiplying the input voltage by the gain of the transistor. Outside this region though, the transistor behaves non-linearly, meaning that it does not obey this simple equation. The behaviour of a system containing non-linear components is thus harder to model and to predict.
[{Jargon File}]

nonmaintainer upload
Non-Maintainer Upload
[Debian] (NMU) A {release} of a package by someone other than its usual maintainer.
[example]The bug was fixed in a recent NMU.[/example]
(2000-05-31)

nonmaskable interrupt
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)

nonoptimal solution
non-optimal solution
(Or "sub-optimal solution") An astoundingly stupid way to do something. This term is generally used in deadpan sarcasm, as its impact is greatest when the person speaking looks completely serious.
See also {Bad Thing}.
[{Jargon File}]
(1994-12-13)

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

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

nontrivial
Requiring real thought or significant computing power. Often used as an understated way of saying that a problem is quite difficult or impractical, or even entirely unsolvable ("Proving P=NP is nontrivial"). The preferred emphatic form is "decidedly nontrivial".
See {uninteresting}, {interesting}.
[{Jargon File}]
(1995-02-21)

nonuniform memory access
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)

nonuniform quantising logarithmic compression
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)

nonuniform rational b spline
Non-Uniform Rational B Spline
[graphics, mathematics] (nurbs) A common term in Mechanical {CAD}. The NURBS has excellent continuity characteristics which make it useful for creating accurate models in 3D geometry generation and computer modelling.
[What is a nurbs? an rbs? a bs? a s?]
(1996-08-27)

nonvolatile
non-volatile
{non-volatile storage}

nonvolatile memory
non-volatile memory
{non-volatile storage}

nonvolatile random access memory
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)

nonvolatile storage
non-volatile storage
[storage] (NVS, persistent storage, memory) A term describing a storage device whose contents are preserved when its power is off. Storage using magnetic media (e.g. {magnetic disks}, {magnetic tape} or {bubble memory}) is normally non-volatile by nature whereas {semiconductor} memories ({static RAM} and especially {dynamic RAM}) are normally volatile but can be made into non-volatile storage by having a (rechargable) battery permanently connected.
{Dynamic RAM} is particularly volatile since it looses its data, even if the power is still on, unless it is {refresh}ed. An acoustic {delay line} is a (very old) example of a volatile storage device.
Other examples of non-volatile storage are {EEPROM}, {CD-ROM}, {paper tape} and {punched cards}.
(2000-05-22)

noop
no-op
/noh'op/ alt. NOP /nop/ [no operation] 1. A machine instruction that does nothing (sometimes used in assembler-level programming as filler for data or patch areas, or to overwrite code to be removed in binaries). See also {JFCL}.
2. A person who contributes nothing to a project, or has nothing going on upstairs, or both. As in "He's a no-op."
3. Any operation or sequence of operations with no effect, such as circling the block without finding a parking space, or putting money into a vending machine and having it fall immediately into the coin-return box, or asking someone for help and being told to go away. "Oh, well, that was a no-op." Hot-and-sour soup that is insufficiently either is "no-op soup"; so is wonton soup if everybody else is having hot-and-sour.
[{Jargon File}]
(1994-12-02)

nor
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
NORC COMPILER
Early system on NORC machine. Listed in CACM 2(5):16 (May 1959).

norcroft
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
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
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 toward it. Every {convex} symmetric {closed} surface surrounding point 0 introduces a norm by means of {Minkowski functional}; all vectors that end on the surface have the same norm then.
The most popular norm is the {Euclidean norm}; 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}.

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

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}

normed space
[mathematics] A {vector space} with a {function}, ||F||, such that
||F|| = 0 if and only if F=0 ||aF|| = abs(a) * ||F|| ||F+G|| [= ||F|| + ||G||
Roughly, a distance between two elements in the space is defined.
(2000-03-10)

northbridge
[architecture] The single {integrated circuit} in a {core logic} {chip set} that connects the {CPU} to the {system memory} and the {AGP} and {PCI} busses. Other functions are provided by the {southbridge} chip.
{(http://www.maximumpc.com/terminator/terminator_n.html)}.
(2000-01-15)

northwestnet
NorthWestNet
(NWNET) Kochmer, J., and NorthWestNet, "The Internet Passport: NorthWestNets Guide to Our World Online", NorthWestNet, Bellevue, WA, 1992.

nos
NOS
{Network Operating System}

not
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 ready for prime time
Usable, but only just so; not very robust; for internal use only. Said of a program or device. Often connotes that the thing will be made more solid {Real Soon Now}. This term comes from the ensemble name of the original cast of "Saturday Night Live", the "Not Ready for Prime Time Players". It has extra flavour for hackers because of the special (though now semi-obsolescent) meaning of {prime time}. Compare {beta}.
[{Jargon File}]

notanumber
Not-a-Number
[mathematics] (NaN) An {IEEE floating point} representation for the result of a numerical operation which cannot return a valid number value. A NaN can result from multiplying an infinity by a zero, or from subtracting one infinity from another [what else?].
NaN is encoded as a special {bit pattern} [what pattern?] which would otherwise represent a {floating-point} number. It is used to signal error returns where other mechanisms are not convenient, e.g. a hardware {floating-point unit} and to allow errors to propagate through a calculation.
Similar bit patterns represent positive and negative {overflow} and {underflow} and the positive and negative infinities resulting from {division by zero}.
{Bit patterns (http://www.psc.edu/general/software/packages/ieee/ieee.html)}.
[ANSI/IEEE Std 754-1985].
[Correct?]
(2001-04-01)

notebook
1. [computer] {laptop computer}.
2. [tool] {Labtech Notebook}.
(1998-01-05)

notecards
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
Notepad
[text, tool] The very basic {text editor} supplied with {Microsoft Windows}.
(1998-01-05)

notes
Notes
{Lotus Notes}

nother
Nother
A parallel {symbolic mathematics} system.
E-mail: [karhu@cs.umu.se].

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
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
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
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
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
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
NOWEB
[programming] A system of {structured programming} and documentation from M.Speh in {DESY}.
See {literate programming}.
(1996-01-13)

nowrite allocation
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
NP
[complexity] {nondeterministic polynomial time}.
[{Jargon File}]

np
[networking] The {country code} for Nepal.
(1999-01-27)

np time
NP time
{nondeterministic polynomial time}

npc
NPC
1. [complexity] {NP-complete}.
2. [architecture] {Next Program Counter}.
(2000-07-12)

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

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

nprolog
N-Prolog
{Prolog} extended with explicit negation. Dov Gabbay [dg@doc.ic.ac.uk].
[J Logic Programming].

nqs
NQS
Batch processing software for Unix systems.

nqthm
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
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}.
[{Jargon File}]

nrz
NRZ
{Non Return to Zero}

nrzi
NRZI
{Non Return to Zero Inverted}

ns
{nanosecond}

nsa line eater
NSA line eater
[messaging, tool] The National Security Agency trawling program sometimes assumed to be reading the net for the US Government's spooks. Most hackers describe it as a mythical beast, but some believe it actually exists, more aren't sure, and many believe in acting as though it exists just in case. Some netters put loaded phrases like "KGB", "Uzi", "nuclear materials", "Palestine", "cocaine", and "assassination" in their {sig blocks} to confuse and overload the creature. The {GNU} version of {Emacs} actually has a command that randomly inserts a bunch of insidious anarcho-verbiage into your edited text.
There is a mainstream variant of this myth involving a "Trunk Line Monitor", which supposedly used speech recognition to extract words from telephone trunks. This one was making the rounds in the late 1970s, spread by people who had no idea of then-current technology or the storage, {signal-processing}, or {speech recognition} needs of such a project. On the basis of mass-storage costs alone it would have been cheaper to hire 50 high-school students and just let them listen in. Speech-recognition technology can't do this job even now (1993), and almost certainly won't in this millennium, either.
The peak of silliness came with a letter to an alternative paper in New Haven, Connecticut, laying out the factoids of this Big Brotherly affair. The letter writer then revealed his actual agenda by offering - at an amazing low price, just this once, we take VISA and MasterCard - a scrambler guaranteed to daunt the Trunk Trawler and presumably allowing the would-be Baader-Meinhof gangs of the world to get on with their business.
[{Jargon File}]
(1994-12-13)

nsapi
NSAPI
{Netscape Application Programming Interface}

nsdi
NSDI
{National Spatial Data Infrastructure}

nse
NSE
Network Software Environment: a proprietary CASE framework from Sun Microsystems.

nsf
NSF
{National Science Foundation}

nsfip
NSFIP
[operating system] {NEXTSTEP} For {Intel} Processor.
(1999-11-25)

nsfnet
NSFNET
{National Science Foundation Network}

nsi
NSI
{Network Solutions, Inc.}

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/usr.sbin/named/tools/nslookup/)}.
(1994-10-27)

nsrd
NSRD
{National Software Reuse Directory}

nss
NSS
1. [networking] {Nodal Switching System}.
2. [operating system] {New Storage System}.
(1997-01-29)

nt
NT
1. {Network Termination}.
2. New Technology, as in {Windows NT}.

nt file system
NT File System
[file system] (NTFS) The {native} {file system} of {Windows NT}.
(1995-03-06)

nt1
NT1
{Network Termination}

nt5
NT5
{Windows 2000}

ntalk
[chat] ("new talk") An update of the {Unix} "{talk}" program, old versions of "talk" being referred to as "old talk". New talk and old talk are generally incompatible, and attempts to get them to communicate result in entirely unhelpful error messages.
On most modern {Unix} systems, the program "talk" is new talk, with some {SunOS} versions being a notable and annoying exception to this.
(1997-09-11)

ntas
NTAS
{NT Advanced Server}

ntfs
NTFS
{NT File System}

ntier
n-tier
{three-tier}

ntis
NTIS
{National Technical Information Service}

ntmbs
NTMBS
[programming] {null-terminated multibyte string}.
(1995-10-02)

ntp
NTP
{Network Time Protocol}

ntsc
NTSC
{National Television Standards Committee}

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

nu thena
Nu Thena
A software vendor specialising in rapid prototyping tools for {real-time} hardware and software systems and collaborating with {DAZIX}.

nubus
NuBus
The proprietary {expansion bus} used on Apple {Macintosh} {personal computer}s.
(1995-02-03)

nucalculus
nu-calculus
An asynchronous version of {pi-calculus}.

nucleol
NUCLEOL
List processing language, influenced by EOL. J. Nievergelt, Computer J 13(3) (Aug 1970).

nude
Said of machines delivered without an operating system (compare {bare metal}). "We ordered 50 systems, but they all arrived nude, so we had to spend a an extra weekend with the installation tapes." This usage is a recent innovation reflecting the fact that most PC clones are now delivered with DOS or Microsoft Windows pre-installed at the factory. Other kinds of hardware are still normally delivered without OS, so this term is particular to PC support groups.
[{Jargon File}]
(1994-12-13)

nuke
/n[y]ook/ 1. To intentionally delete the entire contents of a given directory or storage volume. "On Unix, "rm -r /usr" will nuke everything in the usr file system." Never used for accidental deletion. 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.
[{Jargon File}]

null
[programming] A special value used in several languages to represent the thing referred to by an uninitialised pointer.
[database] A special value that may be stored in some database columns to represent an unknown, missing, not applicable, or undefined value. Nulls are treated completely differently from ordinary values when evaluating SQL expressions and there are several SQL constructs for dealing with nulls.
(2003-06-17)

null modem
[communications, hardware] A cable, especially an {EIA-232} cable, for connecting serial ports on two computers directly, rather than via modems. Since, according to the specification, both computers should transmit on pin three of their EIA-232 connectors and receive on pin two, a null modem cable needs to connect one computer's pin two to the other's pin three and vice versa. It also needs to have male connectors at both ends (again, according to the specification).
(1996-05-17)

nullary
[programming] A description of an {operator} or {function} which takes no {arguments}, e.g. a function that returns the current time.
"Nullary" is part of the {unary}, {binary}, {ternary} sequence, and is more common than its synonym {niladic}.
(2001-02-25)

nullterminated multibyte string
null-terminated multibyte string
[programming] (NTMBS) (Defined in the {ANSI C++} draft)
[Different from null-terminated string?]
(1995-10-02)

numa
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}.
[{Jargon File}]
(1995-03-17)

number sign
[character] {hash}.

numbers
(Scientific computation) Output from a computation that may not be significant but at least indicates that the program is running. Numbers may be used to placate management, grant sponsors, etc. "Making numbers" means running a program because output - any output, not necessarily meaningful output - is needed as a demonstration of progress.
See {pretty pictures}, {math-out}, {social science number}.
[{Jargon File}]
(1995-01-13)

numeris
Numeris
The name given by France Telecom, the french telephone network operator, to its {ISDN} network.
(1995-01-31)

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

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

nuxi problem
NUXI problem
[data, architecture] /nuk'see pro'bl*m/ The problem of transferring data between computers with differing {byte order}. The string "Unix" might look like "NUXI" on a machine with a different "byte sex" (e.g. when transferring data from a {little-endian} to a {big-endian}, or vice-versa).
See also {middle-endian}, {swab}, and {bytesexual}.
[{Jargon File}]
(2001-06-12)

nvram
NVRAM
{Non-Volatile Random Access Memory}

nvs
NVS
{Non-Volatile Storage}

nwnet
NWNET
{NorthWestNet}

nyap
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}.
[{Jargon File}]
(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 frequency
Nyquist frequency
[DSP] The highest frequency that can be represented in a digital signal of a specified {sampling frequency}. It is equal to one-half of the sampling rate.
See {Nyquist Theorem}.
(2001-06-06)

nyquist theorem
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.
[Who was Nyquist?]
(1998-12-30)

nysernet
NYSERNET
{New York State Educational Reasearch NETwork}

nyu omnifax
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
O
[character] {ASCII} code 79, The letter of the alphabet, not to be confused with 0 ({zero}) the digit.
(1999-02-07)

o2
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
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
OAP
{Outside Awareness Port}

oath
OATH
Object-oriented Abstract Type Hierarchy, a class library for C++ from {Texas Instruments}.

ob
Ob-
/ob/ prefix Obligatory. A piece of {netiquette} acknowledging that the author has been straying from the newsgroup's charter topic. For example, if a posting in alt.sex is a response to a part of someone else's posting that has nothing particularly to do with sex, the author may append "ObSex" (or "Obsex") and toss off a question or vignette about some unusual erotic act. It is considered a sign of great {winnitude} when one's Obs are more interesting than other people's whole postings.
[{Jargon File}]

obdc
OBDC
Do you mean {ODBC}?
(1996-06-30)

obe
OBE
{Office By Example}

oberon
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", Andre 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)

oberon2
Oberon-2
[language] A superset of {Oberon-1}, developed by H. Moessenboeck in 1991 to add {object-orientation}. Oberon-2 was a redesign of {Object Oberon}. It included type-bound {procedures} (equivalent to {methods}), read-only export of variables and {record fields}, open {array} variables, and a "{with}" statement with variants. It reintroduced the "{for}" statement.
There is an Oberon-2 {Lex} scanner and {Yacc} {parser} by Stephen J Bevan of Manchester University, UK, based on the one in the Mo"ssenbo"ck and Wirth reference. Version 1.4.
{(ftp://neptune.inf.ethz.ch/Oberon/)}.
{(ftp://ftp.psg.com/pub/oberon/)}.
["The Programming Language Oberon-2", H. Mo"ssenbo"ck, N. Wirth, Institut fu"r Computersysteme, ETH Zu"rich, January 1992].
["Second International Modula-2 Conference", Sept 1991].
(1992-07-06)

oberonv
Oberon-V
(Formerly Seneca). R. Griesemer, 1990. Descendant of Oberon designed for numerical applications on supercomputers, especially vector or pipelined architectures. Includes array constructors and an ALL statement. "Seneca - A Language for Numerical Applications on Vectorcomputers", Proc CONPAR 90 - VAPP IV Conf. R. Griesemer, Diss Nr. 10277, ETH Zurich.

obex
OBEX
{Object Exchange}

obfuscated c contest
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}.
[{Jargon File}]

obiwan error
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
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
OBJ0
Tardo. Based on unsorted equational logic.

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

object chill
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
Object Compatibility Standard
(OCS) An {88open} standard for compilers and linkers.

object data management group
Object Data Management Group
[body, database] (ODMG, previously ".. Database ..") An independent consortium that specifies universal {object} storage {standards}.
ODMG's members include {object-oriented database} management system (ODBMS) vendors and other interested parties. They aim to increase portability of customer software across products.
On 1998-04-27 ODMG changed its name from the Object Database Management Group to reflect the expansion of its efforts beyond merely setting storage standards for object databases.
{Home (http://www.odmg.org/)}.
(2000-05-23)

object database management group
Object Database Management Group
{Object Data Management Group}

object exchange
Object Exchange
[protocol] (OBEX) A {Bluetooth} {protocol} in the {Core Protocol Stack} for {data} exchange.
(2002-06-28)

object identifier
[programming] (OID) Generally an implementation-specific {integer} or {pointer} that uniquely identifies an {object}.
(1999-07-10)

object linking and embedding
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
Object Lisp
LMI. An object-oriented Lisp.
["ObjectLISP User Manual", G. Dreschere, LMI 1987].

object management group
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
Object management system
In an IPSE, the system which maintains information about the system under development.

object modelling technique
Object Modelling Technique
[programming] (OMT) An {object-oriented} methodology.
[Details?]
(1996-11-03)

object oberon
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 pascal
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
Object Request Broker
[software] (ORB) Part of the {OMG} standard.
[Details? References? Other kinds of "broker"?]
(1994-10-28)

object role modeling
Object Role Modeling
[programming] (ORM) A conceptual {model}ling approach that pictures the application world as a set of {objects} that play roles (parts in relationships, which may be unary, binary or higher order). ORM provides both graphical and textual languages that enable models to be expressed naturally. For {data modelling} purposes, its graphical language is more expressive than {ER} or {UML}.
{Home (http://www.orm.net/)}.
(1999-08-27)

object value
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)

object z
Object Z
University of Queensland.
["Object Orientation in Z", S. Stepney et al eds, Springer 1992].

objectbroker
ObjectBroker
[programming] A distributed {object} system from {DEC} based on the {CORBA} standard.
(1999-01-14)

objectcenter
ObjectCenter
A product offering similar facilities to CodeCenter for the C++ language, plus class browsing facilities etc (formerly Saber-C++).

objecteering
Objecteering
[programming, tool] An {object-oriented design} tool from {Softeam}, based on the {Class Relation Methodology}, with {C++} code generation.
(1997-03-18)

objectionablec
Objectionable-C
[abuse, humour, language] A hackish take on "{Objective C}". Objectionable-C uses a {Smalltalk}-like {syntax}, but lacks the flexibility of Smalltalk {method} calls, and (like many such efforts) comes frustratingly close to attaining the {Right Thing} without actually doing so.
[{Jargon File}]
(1995-02-15)

objective c
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 caml
Objective CAML
[language] (Originally "CAML" - Categorical Abstract Machine Language) A version of {ML} by G. Huet, G. Cousineau, Ascander Suarez, Pierre Weis, Michel Mauny and others of {INRIA}. CAML is intermediate between {LCF ML} and {SML} [in what sense?]. It has {first-class} functions, {static type inference} with {polymorphic} types, user-defined {variant types} and {product types}, and {pattern matching}. It is built on a proprietary run-time system.
The CAML V3.1 implementation added {lazy} and {mutable} data structures, a "{grammar}" mechanism for interfacing with the {Yacc} {parser generator}, {pretty-printing} tools, high-performance {arbitrary-precision} arithmetic, and a complete library.
in 1990 Xavier Leroy and Damien Doligez designed a new implementation called {CAML Light}, freeing the previous implementation from too many experimental high-level features, and more importantly, from the old Le_Lisp back-end.
Following the addition of a {native-code} compiler and a powerful {module} system in 1995 and of the {object} and {class} layer in 1996, the project's name was changed to Objective CAML. In 2000, Jacques Garrigue added labeled and optional arguments and anonymous variants.
{Objective CAML Home (http://www.ocaml.org/)}.
{Usenet} newsgroup: {news:comp.lang.ml}.
["The CAML Reference Manual", P. Weis et al, TR INRIA-ENS, 1989].
(2002-05-21)

objective pascal
Objective PASCAL
An extension of the {PASCAL} language which provides the possibility to use {object-oriented} programming constructs.

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

objectorientation
object-orientation
{object-oriented}

objectoriented
object-oriented
1. [programming] (OO) See {object-oriented programming}. See also {object-oriented analysis}, {object-oriented database}, {object-oriented design}.
2. [graphics] {vector graphics}.

objectoriented analysis
object-oriented analysis
(OOA) See {object-oriented design}, {Schlaer-Mellor}.

objectoriented database
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)

objectoriented design
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)

objectoriented fortran
Object-Oriented Fortran
[language] (OOF) An {object-oriented} extension of {Fortran}, in which data items can be grouped into objects, which can be instantiated and executed in parallel.
It was available for {Sun}, {Iris}, {iPSC}, and {nCUBE}, but is no longer supported.
E-mail: Donna Reese [dreese@cs.msstate.edu].
(2001-03-06)

objectoriented language
object-oriented language
{object-oriented programming}

objectoriented pascal
Object-Oriented Pascal
{Object Pascal}

objectoriented programming
object-oriented programming
[programming] (OOP) The use of a class of programming languages and techniques based on the concept of an "{object}" which is a data structure ({abstract data type}) encapsulated with a set of routines, called "{methods}", which operate on the data. Operations on the data can _only_ be performed via these methods, which are common to all objects that are instances of a particular "{class}". Thus the interface to objects is well defined, and allows the code implementing the methods to be changed so long as the interface remains the same.
Each class is a separate {module} and has a position in a "{class hierarchy}". Methods or code in one class can be passed down the hierarchy to a {subclass} or inherited from a {superclass}. This is called "{inheritance}".
A {procedure} call is described as invoking a method on an object (which effectively becomes the procedure's first {argument}), and may optionally include other arguments. The method name is looked up in the object's class to find out how to perform that operation on the given object. If the method is not defined for the object's class, it is looked for in its superclass and so on up the class hierarchy until it is found or there is no higher superclass.
OOP started with {SIMULA-67} around 1970 and became all-pervasive with the advent of {C++}, and later {Java}. Another popular object-oriented programming language (OOPL) is {Smalltalk}, a seminal example from {Xerox}'s {Palo Alto Research Center} (PARC). Others include {Ada}, {Object Pascal}, {Objective C}, {DRAGOON}, {BETA}, {Emerald}, {POOL}, {Eiffel}, {Self}, {Oblog}, {ESP}, {Loops}, {POLKA}, and {Python}. Other languages, such as {Perl} and {VB}, permit, but do not enforce OOP.
{FAQ (http://iamwww.unibe.ch/~scg/OOinfo/FAQ/)}. {(http://zgdv.igd.fhg.de/papers/se/oop/)}. {(http://cuiwww.unige.ch/Chloe/OOinfo)}.
{Usenet} newsgroup: {news:comp.object}.
(2001-10-11)

objectoriented programming language
object-oriented programming language
{object-oriented programming}

objectoriented sql
Object-oriented SQL
[language] (OSQL) A {functional language}, a superset of {SQL}, used in {Hewlett-Packard}'s {OpenODB} {database} system.
(1994-11-29)

objectoriented turing
Object-Oriented Turing
[language] An extension of {Turing} and a replacement for {Turing Plus} by R.C. Holt [holt@csri.toronto.edu], U Toronto, 1991. 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 {Sun-4}, {MIPS}, {RS-6000} and others.
E-mail: [ootinfo@turing.toronto.edu].
["A Conceptual Framework for Software Development", Mancoridis et al, eds, ACM SIGSCE Conference, Feb 1993, Indianapolis]. ["Turing Reference Manual", 1992, ISBN 0-921598-15-7].
(2000-04-21)

objectory
Objectory
[programming] An {object-oriented} {methodology} mostly created by {Ivar Jacobson}.
(2003-07-11)

objectpal
ObjectPAL
{Object-oriented database} language, part of {Borland}'s {MS-Windows} version of {Paradox}.

objectworks
Objectworks
An {object-oriented} development environment developed by {ParcPlace}, available under {Smalltalk} and {C++}.
(1994-10-28)

objlog
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
OBJT
{Error algebra}s plus an image construct. Tardo.

objvlisp
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
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
Obliq
A small, statically scoped untyped language by Luca Cardelli, 1993. Obliq is {object-oriented}, higher order, concurrent, and distributed. State is local to an address space, while computation can migrate over the network. The distributed computation mechanism is based on {Modula-3} network objects.
{(ftp://gatekeeper.dec.com/pub/DEC/Modula-3/contrib)}.

oblique stroke
[character] "/". Common names include: (forward) slash; stroke; {ITU-T}: slant; oblique stroke. Rare: diagonal; solidus; over; slak; virgule; {INTERCAL}: slat.
Commonly used as the division {operator} in programming, and to separate the components in {Unix} {pathnames}, and hence also in {URL}s. Also used to delimit {regular expressions} in several programs.
(1996-09-24)

oblog
Oblog
[language] A small, portable, {Object-oriented} extension to {Prolog} by Margaret McDougall of EdCAAD, Dept Arch, {University of Edinburgh}.
(1995-12-29)

obscure
OBSCURE
"A Formal Description of the Specification Language OBSCURE", J. Loeckx, TR A85/15, U Saarlandes, Saarbrucken, 1985.
[{Jargon File}]

observational equivalence
Two terms M and N are observationally equivalent iff for all contexts C[] where C[M] is a valid term, C[N] is also a valid term with the same value.

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

oc12
OC-12
{Optical Carrier 12}

oc3
OC-3
{Optical Carrier 3}

oc48
OC-48
{Optical Carrier 48}

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

occams razor
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
OCL
[language] 1. {Operator Control Language}.
2. {Object Constraint Language}.
(2003-01-18)

oclc
OCLC
{Online Computer Library Center}

ocn
OC-n
{Optical Carrier n}

ocode
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
OCP
[processor] {Order Code Processor}.

ocr
OCR
{Optical Character Recognition}

ocs
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}.
[{Jargon File}]
(1995-03-06)

octave
Octave
[language] A high-level {interactive} language by John W. Eaton, with help from many others, like {MATLAB}, primarily intended for numerical computations. Octave provides a convenient {command line interface} for solving linear and nonlinear problems numerically.
Octave can do arithmetic for {real} and {complex} {scalars} and {matrices}, solve sets of nonlinear algebraic equations, integrate functions over finite and infinite intervals, and integrate systems of ordinary differential and differential-algebraic equations.
Octave has been compiled and tested with {g++} and libg++ on a {SPARCstation 2} running {SunOS} 4.1.2, an {IBM} {RS/6000} running {AIX} 3.2.5, {DEC Alpha} systems running {OSF}/1 1.3 and 3.0, a {DECstation 5000}/240 running {Ultrix} 4.2a, and {Intel 486} systems running {Linux}. It should work on most other {Unix} systems with {g++} and libg++.
Octave is distributed under the {GNU} {General Public License}. It requires {gnuplot}, a {C++} compiler and {Fortran} compiler or {f2c} translator.
Latest version: 2.0.16 (released 2000-01-30), as of 2000-06-26.
{home (http://www.che.wisc.edu/octave)}.
{(ftp://ftp.che.wisc.edu/pub/octave/)} or your nearest {GNU archive site}.
E-mail: [bug-octave@bevo.che.wisc.edu].
(2000-06-27)

octet
[jargon, networking] Eight bits. This term is used in networking, in preference to {byte}, because some systems use the term "byte" for things that are not 8 bits long.
(1995-03-03)

octothorpe
{hash character}

ocx
OCX
{OLE custom controls}

od390
OD390
[World-Wide Web] A {CICS} Web {interperter} from {IBM} used for application development involving web interfaces to {DB2} tables.
(1998-06-21)

oda
ODA
{Open Document Architecture} (formerly Office Document Architecture).

odbc
ODBC
{Open DataBase Connectivity}

odc
ODC
{Open Distributed Computing}

ode
Ode
An {Object-Oriented Database} from {AT&T} which extends {C++} and supports fast queries, complex application modelling and {multimedia}.
Ode uses one integrated data model ({C++} {class}es) for both database and general purpose manipulation. An Ode database is a collection of {persistent} {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
ODI
1. {Optical Digital Image}.
2. {Open Data-link Interface}.

odif
ODIF
{Open Document Interchange Format}

odma
ODMA
{Open Document Management API}

odmg
ODMG
{Object Data Management Group}

odp
ODP
{Open Distributed Processing}

odsa
ODSA
{Open Distributed System Architecture}

odt
ODT
{Open Desktop}

oem
OEM
{original equipment manufacturer}

off the trolley
Describes the behaviour of a program that malfunctions and goes catatonic, but doesn't actually {crash} or abort. See {glitch}, {bug}, {deep space}.
[{Jargon File}]

offbyone error
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.
[{Jargon File}]
(1998-09-21)

office
Office
{Microsoft Office}

office by example
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
Office Workstations Limited
[company] (OWL) A UK software company, now a subsidiary of {Matsushita} (Panasonic, etc.). They previously supported the {Guide} {hypertext} system but that support is now provided by US company {InfoAccess}.
E-mail: [postmaster@owl-uk.owl-uk.co.uk]
[Correct address?]
(1996-01-15)

official production system
Official Production System
[language] (OPS) The first {production system} (i.e. rule based) programming language, developed at {CMU} in 1970 and used for building {expert systems}. OPS was originally written in {Franz Lisp} and later ported to other {LISP} dialects.
(2003-04-05)

offline
off-line
[jargon] (Or "offline")
1. Not directly connected to the computer (e.g., an off-line {tape drive}), or with connection suspended ("take the {printer} off-line").
Contrast {background}, {on-line}.
2. Not now or not here. "Let's take this discussion off-line." Specifically used on {Usenet} to suggest that a discussion be moved off a public {newsgroup} to {e-mail}.
See also {off-line world}.
[{Jargon File}]
(1996-02-02)

offline world
off-line world
[jargon] A die-hard {nethead} term for non-computer-related experience.
See also {big room}.
["Internet", Feb 1996].
(1996-03-04)

offside rule
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]

ogg
[games] /og/ ({CMU}) 1. In the multi-player space combat game {Netrek}, to execute kamikaze attacks against enemy ships which are carrying armies or occupying strategic positions. Named during a game in which one of the players repeatedly used the tactic while playing Orion ship G, showing up in the player list as "Og". This trick has been roundly denounced by those who would return to the good old days when the tactic of dogfighting was dominant, but as Sun Tzu wrote, "What is of supreme importance in war is to attack the enemy's strategy." However, the traditional answer to the newbie question "What does ogg mean?" is just "Pick up some armies and I'll show you."
2. In other games, to forcefully attack an opponent with the expectation that the resources expended will be renewed faster than the opponent will be able to regain his previous advantage. Taken more seriously as a tactic since it has gained a simple name.
3. To do anything forcefully, possibly without consideration of the drain on future resources. "I guess I'd better go ogg the problem set that's due tomorrow." "Whoops! I looked down at the map for a sec and almost ogged that oncoming car."
(1995-01-31)

ogg vorbis
Ogg Vorbis
[audio, compression] A patent-free {audio} {compression} {algorithm}.
{(http://www.xiph.org/)}.
(2001-12-17)

ohci
OHCI
{Open Host Controller Interface}

ohm
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
OIC
[chat] oh, I see.
(1998-01-18)

oid
OID
{object identifier}

oid
-oid
[jargon] (from "android") A suffix used as in mainstream English to indicate a poor imitation, a counterfeit, or some otherwise slightly bogus resemblance. Hackers will happily use it with all sorts of non-Greco/Latin stem words that wouldn't keep company with it in mainstream English. For example, "He's a nerdoid" means that he superficially resembles a nerd but can't make the grade; a "modemoid" might be a 300-baud {modem} (Real Modems run at 144000 or up); a "computeroid" might be any {bitty box}.
"-oid" can also mean "resembling an android", which was once confined to science-fiction fans and hackers. It too has recently (in 1991) started to go mainstream (most notably in the term "trendoid" for victims of terminal hipness). This is probably traceable to the popularisation of the term {droid} in "Star Wars" and its sequels.
Coinages in both forms have been common in science fiction for at least fifty years, and hackers (who are often SF fans) have probably been making "-oid" jargon for almost that long (though {GLS} and {ESR} can personally confirm only that they were already common in the mid-1970s).
[{Jargon File}]
(1999-07-10)

oil
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
OLAP
{On-Line Analytical Processing}

olc
OLC
{On-Line Computer system}

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.
[{Jargon File}]

old talk
[chat] The old implementations of {talk}. See "{ntalk}" for details.
(1997-09-11)

old testament
Old Testament
[C programmers] The first edition of {K&R}, the sacred text describing {Classic C}.
[{Jargon File}]

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

ole
OLE
{Object Linking and Embedding}

ole custom controls
OLE custom controls
[programming] (OCX) An {Object Linking and Embedding} (OLE) custom control allowing infinite extension of the {Microsoft Access} control set. OCX is similar in purpose to {VBX} used in {Visual Basic}. Available OCX's include "Scroll Bar Control", "Calendar Control", and "Data Outline Control".
[Details?]
(1995-12-05)

ole for process control
OLE for Process Control
[standard] (OPC) A set of seven open standards for connectivity and interoperability of industrial automation and the enterprise systems.
Based on fundamental and evolving standards and technology of the general computing market, the OPC Foundation adapts and creates specifications that fill industry-specific needs.
{OPC Foundation (http://www.opcfoundation.org/)}.
(2003-05-21)

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

ologic
O-Logic
An {object-oriented} deductive language/database system.

oltp
OLTP
{On-Line Transaction Processing}

olwm
OLWM
{OpenLook Window Manager}

om
[networking] The {country code} for Oman.
(1999-01-27)

oma
OMA
Object Management Architecture.
A set of standards under study by the {OMG}.
(1994-11-11)

omega
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 test
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)

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

omf
OMF
Object Management Facility.
Part of the {DAA} proposed by {Hewlett-Packard} and {Sun}.

omg
OMG
{Object Management Group}

omnicode
OMNICODE
Thompson, 1956. Ran on IBM 650.
[Sammet 1969, p. 5].

omnifax
OMNIFAX
Alternate name for NYU OMNIFAX? Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959).

omnitab
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
OMR
{Optical Mark Reader}

oms
OMS
{Opportunity Management System}

omt
OMT
{Object Modelling Technique}

omtool
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
ONC
{Open Network Computing}

ondine
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 time programmable readonly memory
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)

onebanana problem
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}.
[{Jargon File}]

oneline fix
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!}

oneliner wars
one-liner wars
[games, programming] A game popular among {hackers} who code in the language {APL} (see {write-only language} and {line noise}). The objective is to see who can code the most interesting and/or useful routine in one line of {operators} chosen from APL's exceedingly {hairy} primitive set. A similar amusement was practiced among {TECO} hackers and is now popular among {Perl} aficionados.
{Ken Iverson}, the inventor of APL, has been credited with a one-liner that, given a number N, produces a list of the prime numbers from 1 to N inclusive. It looks like this:
(2 = 0 +.= T o.| T) / T [- iN
where "o" is the APL null character, the assignment arrow is a single character, and "i" represents the APL iota.
[{Jargon File}]
(2000-03-19)

ones complement
A system used in some computers to represent negative numbers. To negate a number, each bit of the number is inverted (zeros are replaced with ones and vice versa). This has the consequence that there are two reperesentations for zero, either all zeros or all ones.
... 000...00011 = +3 000...00010 = +2 000...00001 = +1 000...00000 = +0 111...11111 = -0 111...11110 = -1 111...11101 = -2 111...11100 = -3 ...
Naive logic for ones complement addition might easily conclude that -0 + 1 = +0.
The {twos complement} avoids this by using all ones to represent -1.

onetime password
One-Time Password
[security] (OTP) A security system that requires a new password every time a user authenticates themselves. OTP generates these passwords using either the {MD4} or {MD5} {hashing} {algorithms}.
The equivalent term "S/Key" is a trademark of {Telcordia Technologies}, so the name OTP is used increasingly.
See {RFC 1760} - "The S/KEY One-Time Password System" and {RFC 1938} - "A One-Time Password System".
{(http://www.cs.umd.edu/~harry/jotp/)}.
(2000-01-31)

oneway function
one-way function
[cryptography, mathematics] A {function} which is easy to compute but whose {inverse} is very difficult to compute. Such functions have important applications in {cryptography}, specifically in {public-key cryptography}.
See also: {trapdoor function}.
(2001-05-10)

oneway hash function
one-way hash function
[algorithm] (Or "message digest function") A {one-way function} which takes a variable-length message and produces a fixed-length hash. Given the hash it is computationally infeasible to find a message with that hash; in fact one can't determine any usable information about a message with that hash, not even a single bit. For some one-way hash functions it's also computationally impossible to determine two messages which produce the same hash.
A one-way hash function can be private or public, just like an {encryption} function. {MD5}, {SHA} and {Snefru} are examples of public one-way hash functions.
A public one-way hash function can be used to speed up a public-key {digital signature} system. Rather than sign a long message, which can take a long time, compute the one-way hash of the message, and sign the hash.
{sci.crypt FAQ (ftp://src.doc.ic.ac.uk/usenet/usenet-by-group/sci.crypt/)}.
(2001-05-10)

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

online analytical processing
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
Online Computer Library Center, Inc.
[library] (OCLC) A nonprofit membership organisation offering computer-based services and research to libraries, educational organisations, and their users. OCLC operates the OCLC Cataloging PRISM service for cataloging and resource sharing, provides on-line reference systems for both librarians and end-users, and distributes on-line electronic journals. OCLC's goals are to increase the availability of library resources and reduce library costs for the fundamental public purpose of furthering access to the world's information. The OCLC library information network connects more than 10,000 36,000 libraries worldwide. Libraries use the OCLC System for cataloguing, interlibrary loan, collection development, bibliographic verification, and reference searching. Their most visible feature is the OCLC Online Union Catalog (OLUC) WorldCat (the OCLC Online Union Catalog).
{Home (http://www.oclc.org/)}.
(2000-03-23)

online computer system
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
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 process synthesizer
On-line Process Synthesizer
[simulation] (OPS) A system for {discrete simulation} under {CTSS} developed by M. Greenberger at {MIT} ca. 1964.
[Sammet 1969, p.660. Versions: OPS-3, OPS-4. "On- line Computation and Simulation: The OPS-3 System", M. Greenberger et al, MIT Press 1965].
(2003-04-05)

online public access catalog
Online Public Access Catalog
[library] (OPAC) A computerised system to catalogue and organise materials in a library (the kind that contains books). OPACs have replaced card-based catalogues in many libraries. An OPAC is available to library users (public access).
(2000-07-17)

online transaction processing
On-Line Transaction Processing
[database] (OLTP) The processing of transactions by computers in real time.
[Details? Products?]
(1997-05-14)

ontic
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
OnX
A graphics package from LAL Orsay.

oo
OO
{object-oriented}

ooa
OOA
{object-oriented analysis}

ood
OOD
{object-oriented design}

oodb
OODB
{object-oriented database}

oodbms
OODBMS
{object-oriented database management system}

oof
OOF
{Object-Oriented Fortran}

oogl
OOGL
Object-Oriented Graphics Language. 1970's.

oop
OOP
{object-oriented programming}

oopl
OOPL
{object-oriented programming language}

oops
OOPS
"OOPS: A Knowledge Representation Language", D. Vermeir, Proc 19th Intl Hawaii Conf on System Sciences, IEEE (Jan 1986) pp.156-157.

oopsla
OOPSLA
Conference on Object-oriented Programming Systems, Languages and Applications.

oosd
OOSD
Object-oriented structured design: a design method elaborated from structured design and incorporating the essential features of the object-oriented approach.

ooze
OOZE
Object oriented extension of Z. "Object Orientation in Z", S. Stepney et al eds, Springer 1992.

op
[job] /op/ 1. In England and Ireland, a common verbal abbreviation for "operator", as in {system operator}. This is less common in the US, where {sysop} seems to be preferred.
2. The general term for an {IRC} {channel op}. Also, as a verb: to give someone {channel op} privileges. Compare {ircop}.
[{Jargon File}]
(1997-12-12)

op code
{instruction mnemonic}

opac
OPAC
{Online Public Access Catalog}

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

opc
OPC
{OLE for Process Control}

open
1. To prepare to read or write a file. This usually involves checking whether the file already exists and that the user has the necessary authorisation to read or write it. The result of a successful open is usually some kind of {capability} (e.g. a {Unix} {file descriptor}) - a token that the user passes back to the system in order to access the file without further checks and finally to close the file.
2. Abbreviation for "open (or left) parenthesis" - used when necessary to eliminate oral ambiguity. To read aloud the LISP form (DEFUN FOO (X) (PLUS X 1)) one might say: "Open defun foo, open eks close, open, plus eks one, close close."
3. Non-proprietary. An open {standard} is one which can be used without payment.
[{Jargon File}]
(1995-01-31)

open box testing
{white box testing}

open database connectivity
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 datalink interface
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
Open DeathTrap
[abuse] An abusive hackerism for the {Santa Cruz Operation}'s {Open DeskTop}. The funniest part is that this was coined by SCO's own developers.
Compare {AIDX}, {Macintrash} {Nominal Semidestructor}, {ScumOS}, {sun-stools}, {HP-SUX}.
[{Jargon File}]
(1995-02-02)

open desktop
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
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
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)

open document architecture
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
Open Document Interchange Format
[standard] (ODIF) Part of the {ODA} standard.
(1996-10-16)

open document management api
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)

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)

open look
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
Open Network Computing
(ONC) {Sun}'s {network} {protocols}.
[more detail?]

open prolog
Open Prolog
[Prolog, Macintosh] {Prolog} for the {Macintosh} by Michael Brady [brady@cs.tcd.ie].
{Home (http://www.cs.tcd.ie/open-prolog/)}.
[Details?]
(2000-12-21)

open scripting architecture
Open Scripting Architecture
(OSA) A {CIL} approach to the coexistence of multiple scripting systems.
(1995-03-10)

open shortestpath first
Open Shortest-Path First
{Open Shortest-Path First Interior Gateway Protocol}

open shortestpath first interior gateway protocol
Open Shortest-Path First Interior Gateway Protocol
[networking, protocol, standard] (OSPF) A {link state routing protocol} that is one of the {Internet} standard {Interior Gateway Protocols} defined in {RFC 1247}.
There is no OSPF {EGP}, OSPF is an IGP only.
[Relationship to {Internet Protocol} packet routing?]
{OSPF Design Guide (http://www.cisco.com/warp/public/104/1.html)}.
(2002-06-29)

open software foundation
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)

open source
[philosophy, legal] A method and philosophy for software licensing and distribution designed to encourage use and improvement of software written by volunteers by ensuring that anyone can copy the {source code} and modify it freely.
The term "open source" is now more widely used than the earlier term "{free software}" (promoted by the {Free Software Foundation}) but has broadly the same meaning - free of distribution restrictions, not necessarily free of charge.
There are various {open source licenses} available. Programmers can choose an appropriate license to use when distributing their programs.
The {Open Source Initiative} promotes the {Open Source Definition}.
{The Cathedral and the Bazaar
(http://www.tuxedo.org/~esr/writings/cathedral-bazaar/cathedral-bazaar.html)}. was a seminal paper describing the open source phenomenon.
{Open Sources - O'Reilly book with full text online (http://www.oreilly.com/catalog/opensources/book/perens.html)}.
{Articles from ZDNet (http://www.zdnet.com/pcmag/features/opensource/)}.
(1999-12-29)

open source definition
Open Source Definition
[standard] (OSD) Definition of distribution terms for {open source} software, promoted by the {Open Source Initiative}.
{Home (http://www.opensource.org/osd.html)}.
(1999-11-28)

open source initiative
Open Source Initiative
[body] (OSI) An organisation dedicated to managing and promoting the {Open Source Definition} for the good of the community.
{Home (http://www.opensource.org/)}.
(1999-11-28)

open source license
Open source license
[legal] Any document that attempts to specify {open source} usage and distribution of software. These licenses are usually drafted by experts and are likely to be more legally sound than one a programmer could write. However, loopholes do exist.
Here is a non-exhaustive list of open source licenses:
1. {Public Domain} - No license.
2. {BSD} License - An early open source license
3. {General Public License} (GPL) - The {copyleft} license of the {Free Software Foundation}. Used for {GNU} software and much of {Linux}.
4. {Artistic License (http://www.my-opensource.org/Artistic.txt)} Less restrictive than the GPL, permitted by {Perl} in addition to the GPL.
5. {Mozilla Public Licenses (http://www.mozilla.org/MPL/)}. (MPL, MozPL) and Netscape Public License (NPL).
["Open Sources", pub. O'Reilly, {full text (http://www.oreilly.com/catalog/opensources/book/perens.html)}].
(1999-11-28)

open switch
({IBM}, probably from railways) An unresolved question, issue, or problem.
[{Jargon File}]
(1994-11-11)

open systems interconnect
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. Apart from its actual application to real protocols, it also serves as a useful teaching model.
(2002-05-19)

open systems interconnection
Open Systems Interconnection
{Open Systems Interconnect}

open telecom platform
Open Telecom Platform
[communications, library, Erlang] (OTP) A set of standard, {open source} {libraries} and tools for use with {Erlang}.
{(http://www.erlang.org/faq/t1.html#AEN17)}.
(2001-08-28)

open trading protocol
Open Trading Protocol
{Internet Open Trading Protocol}

open university
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)

openclosed principle
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)

opencollar worker
open-collar worker
[job] Someone who works at home or telecommutes.
(1997-04-17)

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

opengl
OpenGL
{Open Graphics Library}

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

openstep
OpenStep
[operating system] An {object-oriented} {application programming interface} (API) derived from {NEXTSTEP} and proposed as an {open standard} by {NeXT} in 1994.
OpenStep is the specification of the object kits of NEXTSTEP. OPENSTEP/Mach was an implementation of this specification. The original, OPENSTEP version 4.0, and really was NEXTSTEP 4. {Rhapsody} was the codename for {Apple}'s {Mac OS X} Server, which is really NEXTSTEP 5 (it calls itself "kernel 5.3" at boot time).
OpenStep was designed to be implemented independently of the computer's operating system, hardware, and user interface. The {API} for {Rhapsody} will be a superset of {OpenStep}'s.
When the OpenStep {API} is implemented for a specific platform and made into a product, it is written in uppercase, e.g. OPENSTEP Developer 4.2 for Mach, or OPENSTEP Enterprise for {Windows NT} and {Windows 95}. Versions of OPENSTEP exist for Windows 95/NT, Solaris, HP/UX, and Mach.
(1999-11-25)

opentransport
OpenTransport
[networking] (OT) A complete reimplementation of all levels of the {Macintosh} {networking} code including "Classic" {AppleTalk} and {MacTCP}. It appeared in {MacOS} revision 7.5.3 [or earlier? Date?].
(2000-08-13)

openvms
OpenVMS
{Virtual Memory System}

openwindows
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}, {Microsoft Windows}, {MINIX}, {Multics}, {Multipop-68}, {Novell NetWare}, {OS-9}, {OS/2}, {Pick}, {Plan 9}, {QNX}, {RISC OS}, {STING}, {System V}, {System/360}, {TOPS-10}, {TOPS-20}, {TRUSIX}, {TWENEX}, {TYMCOM-X}, {Thoth}, {Unix}, {VM/CMS}, {VMS}, {VRTX}, {VSTa}, {VxWorks}, {WAITS}.
{FAQ (ftp://src.doc.ic.ac.uk/usenet/news-info/comp.os.research)}.
{Usenet} newsgroup: {news:comp.os.research}.
[{Jargon File}]
(1999-06-09)

operating system360
Operating System/360
[operating system] (OS/360) An {operating system} developed by {IBM} for their {System/360} computer (announced in 1964).
After this experience, {Frederick P. Brooks} wrote his famous book, {The Mythical Man-Month}, giving OS/360 as an example of the {second-system effect}.
[Features? Relatonship to {DOS/360}?]
(2001-03-23)

operating systemmultiprogramming of fixed tasks
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)

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)

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)

operator
[programming] A symbol used as a {function}, with {infix syntax} if it has two arguments (e.g. "+") or {prefix syntax} if it has only one (e.g. {Boolean} NOT). Many languages use operators for built-in functions such as arithmetic and logic.
(1995-04-30)

operator control language
Operator Control Language
[language] (OCL) The {batch language} for the {IBM System/36}, used specifically with the {RPG II} {compiler}.
See also {CL}.
(1994-11-18)

operator overloading
{overloading}

opportunity management system
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
OPS
1. [simulation] {On-line Process Synthesizer}.
2. [language] {Official Production System}.
3. [database] {Oracle Parallel Server}.
(2003-04-05)

ops5
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
OPS83
A commercial version of {OPS5}.

optical carrier 12
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
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
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
Optical Carrier n
[networking] (OC-n) A {SONET} rate of n times 51.84 {megabits} per second.
(1997-02-05)

optical character recognition
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
Optical Mark Reader
[hardware] (OMR) A special scanning device that can read carefully placed pencil marks on specially designed documents. OMR is frequenty used in forms, questionnaires, and answer-sheets.
(1995-04-13)

optical mouse
[hardware] Any kind of {mouse} that uses visible light or infrared to detect changes in its position.
(1999-07-21)

optical storage technology association
Optical Storage Technology Association
[body] (OSTA) An industry consortium concerned with {optical storage}. OSTA wrote and maintains the {UDF} {file system} used on {DVD video} discs.
{OSTA Home (http://www.osta.org/)}.
(2003-07-12)

optical time domain reflectometer
Optical Time Domain Reflectometer
[hardware] A device used to perform {Optical Time Domain Reflectometry}.
(1995-02-01)

optical time domain reflectometry
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}.
[{Jargon File}]

optimize
{optimisation}

option
{command line option}

optran
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
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
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
Oracle 7
[database] Version 7 of the {Oracle} {relational database} system software.
(1996-11-05)

oracle card
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 cooperative applications
Oracle Co-operative Applications
[tool, product] Packaged {client/server} software from {Oracle} for accounting, manufacturing, distribution, human resources and project control.

oracle corporation
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 parallel server
Oracle Parallel Server
[database] (OPS) An {Oracle} configuration that allows for multiple Oracle servers running on seperate computers to access the same database files simultaneously.
Normally used for {high availability}, running parallel servers can improve performance by spreading out {CPU} load, however, it requires data to be partitioned correctly.
This feature is enabled with the Parallel Server Option (or "PSO").
{Oracle Parallel Server Option FAQ (http://www.orafaq.com/faqops.htm)}.
(2003-04-05)

oracle rdb
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
Oracle Toolkit
{Adaptable User Interface}

oraclecase
Oracle*CASE
A set of {CASE} tools from {Oracle}.

orange book
Orange Book
[security, standard] A standard from the US Government {National Computer Security Council} (an arm of the U.S. National Security Agency), "Trusted Computer System Evaluation Criteria, DOD standard 5200.28-STD, December 1985" which defines criteria for trusted computer products. There are four levels, A, B, C, and D. Each level adds more features and requirements.
D is a non-secure system.
C1 requires user log-on, but allows {group ID}.
C2 requires individual log-on with password and an audit mechanism. (Most {Unix} implementations are roughly C1, and can be upgraded to about C2 without excessive pain).
Levels B and A provide mandatory control. Access is based on standard Department of Defense clearances.
B1 requires DOD clearance levels.
B2 guarantees the path between the user and the security system and provides assurances that the system can be tested and clearances cannot be downgraded.
B3 requires that the system is characterised by a mathematical model that must be viable.
A1 requires a system characterized by a mathematical model that can be proven.
See also {crayola books}, {book titles}.
[{Jargon File}]
(1997-01-09)

orb
ORB
{Object Request Broker}

orbit
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
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
Order Code Processor
[processor] The {ICL 2900}, {ICL 3900} and above term for "{CPU}".
(1995-05-06)

orderembedding
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
OREGANO
["On the Design and Specification of the Programming Language OREGANO", D.M. Berry. UCLA-ENG-7388, 1973].

oreilly and associates
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} for organisations or individuals that don't fit any other top-level domain (national, com, edu, or gov). Though many have .org domains, it was never intended to be limited to non-profit organisations.
{RFC 1591}.
(2001-05-14)

organic mode
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)

orient84k
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
Original Equipment Manufacturer
[company] (OEM) A misleading term for a company which repackages equipment, such as computers, made by other companies. Unlike a {value added reseller}, an OEM does not necessarily add anything except their name to the product. In some cases though they may integrate components into complete systems. OEM arrangements are often made for marketing reasons.
[Origin?]
(2001-04-09)

orkid
ORKID
{Open Real-time Kernel Interface Definition}

orm
ORM
{Object Role Modeling}

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)

orphaned inode
orphaned i-node
/or'f*nd i:'nohd/ [Unix] 1. A file that retains storage but no longer appears in the directories of a file system.
[{Jargon File}]

orthocartan
ORTHOCARTAN
[mathematics, tool] A system for {symbolic mathematics}, especially General Relativity, written by A. Krasinski of Warsaw in the early 1980s.
(1995-04-12)

orthogonal
[geometry] At 90 degrees (right angles).
N mutually orthogonal {vectors} {span} an N-dimensional {vector space}, meaning that, any vector in the space can be expressed as a {linear combination} of the vectors. This is true of any set of N {linearly independent} vectors.
The term is used loosely to mean mutually independent or well separated. It is used to describe sets of primitives or capabilities that, like linearly independent vectors in geometry, span the entire "capability space" and are in some sense non-overlapping or mutually independent. For example, in logic, the set of operators "not" and "or" is described as orthogonal, but the set "nand", "or", and "not" is not (because any one of these can be expressed in terms of the others).
Also used loosely to mean "irrelevant to", e.g. "This may be orthogonal to the discussion, but ...", similar to "going off at a tangent".
See also {orthogonal instruction set}.
[{Jargon File}]
(2002-12-02)

orthogonal instruction set
[architecture] An {instruction set} where all (or most) instructions have the same format and all {registers} and {addressing modes} can be used interchangeably - the choices of {op code}, register, and addressing mode are mutually independent (loosely speaking, the choices are "{orthogonal}"). This contrasts with some early {Intel} {microprocessors} where only certain registers could be used by certain instructions.
Examples include the {PDP-11}, {680x0}, {ARM}, {VAX}.
(2002-06-26)

orwell
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
OS
1. {operating system}.
2. [obsolete, {ITS}], an output spy. See "{OS and JEDGAR}".
3. [operating system] An {operating system} from {IBM} for their {System/360} line of hardware announced in 1964. OS was planned with several flavours that were supposed to be compatible. OS was late, memory hungry and not able to reach the marketing objectives of IBM for the 360/30, the planned successor of the {IBM 1401}. IBM then decided to design a new operating system for the low end machines which they called {DOS/360}.
[{Jargon File}]
(1997-09-22)

os2
OS2
[spelling] Normally written "{OS/2}".
[{Jargon File}]
(1997-05-02)

os2
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?]
[{Jargon File}]
(1995-07-20)

os360
OS/360
{Operating System/360}

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

os9
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
OSA
{Open Scripting Architecture}

osa extension
OSA extension
(OSAX) Any extension to {Macintosh} {OSA}.
(1999-01-14)

osax
OSAX
{OSA extension}

oscar
OSCAR
1. Oregon State Conversational Aid to Research. Interactive numerical calculations, vectors, matrices, complex arithmetic, string operations, for CDC 3300. "OSCAR: A User's Manual with Examples", J.A. Baughman et al, CC, Oregon State U.
2. Object-oriented language used in the COMANDOS Project. "OSCAR: Programming Language Manual", TR, COMANDOS Project, Nov 1988.

osd
OSD
{Open Source Definition}

ose
OSE
{Open Systems Environment}

osf
OSF
{Open Software Foundation}

osi
OSI
1. [networking] {Open Systems Interconnect}.
2. {Open Source Initiative}.
(1999-12-29)

osi model
OSI Model
{Open Systems Interconnect}

osi reference model
OSI Reference Model
{Open Systems Interconnect}

osi seven layer model
OSI seven layer model
{Open Systems Interconnect}

osirm
OSI-RM
{Open Systems Interconnect}

osmall
O'small
[language] A small, concise, formally defined {object-oriented} language intended for teaching, by Andreas Hense [ahense@ahense.de].
O'small requires {sml-yacc}, {sml-lex} and {sml-noshare}. Binaries are provided for {SPARC} and it is probably portable to other {Unix} systems. There is also an {interpreter} in {Miranda}.
{Home (http://www.ahense.de/)}.
[Christoph Boeschen, "Christmas - An abstract machine for O'small". Master's thesis, Universit"at des Saarlandes, Fachbereich, 1993-06-14].
(2001-02-11)

osmft
OS/MFT
{Operating System/Multiprogramming of Fixed Tasks}

osmvt
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
OSP
{Optical Signal Processor}

ospf
OSPF
{Open Shortest-Path First Interior Gateway Protocol}

osql
OSQL
{Object-oriented SQL}

ossl
OSSL
Operating Systems Simulation Language.
["OSSL - A Specialized Language for Simulating Computer Systems", P.B. Dewan et al, Proc SJCC 40, AFIPS (Spring 1972)].

osta
OSTA
{Optical Storage Technology Association}

osvs1
OS/VS1
{OS/MFT}

osvs2
OS/VS2
[operating system] An {operating system} from {IBM}, released with the {IBM S/370} and originally known as {OS/MVT}. OS/VS2 R1 was known as SVS (Single Virtual Storage) as it had a single 16 MB {virtual address space}. OS/VS2 R2 was known as MVS - {Multiple Virtual Storage}.
(1999-01-13)

ot
OT
{OpenTransport}

otdr
OTDR
{Optical Time-Domain Reflectometry}

ote
OT&E
{operational test and evaluation}

oti
OTI
{Open Tool Interface}

otoh
OTOH
[chat] On the other hand.
(2000-01-31)

otp
OTP
1. [security] {One-Time Password}.
2. [protocol] {Open Trading Protocol}.
3. [storage, integrated circuit] {One Time Programmable Read Only Memory}.
4. [communications, library] {Open Telecom Platform}.
(2001-08-28)

otprom
OTPROM
{One Time Programmable Read-Only Memory}

ott
OTT
Over the top.
Excessive or uncalled for.
(1995-01-31)

ottawa euclid
Ottawa Euclid
{Euclid}

ousterhout john k
Ousterhout, John K.
{John Ousterhout}

ousterhouts dichotomy
Ousterhout's dichotomy
[language] {John Ousterhout}'s division of {high-level languages} into "system programming languages" and "scripting languages". This distinction underlies the design of his language {Tcl}.
System programming languages (or "applications languages") are {strongly typed}, allow arbitrarily complex {data structures}, and programs in them are {compiled}, and are meant to operate largely independently of other programs. Prototypical system programming languages are {C} and {Modula-2}.
By contrast, scripting languages (or "glue languages") are weakly typed or untyped, have little or no provision for complex data structures, and programs in them ("{scripts}") are {interpreted}. Scripts need to interact either with other programs (often as {glue}) or with a set of functions provided by the interpreter, as with the {file system} functions provided in a {UNIX shell} and with {Tcl}'s {GUI} functions. Prototypical scripting languages are {AppleScript}, {C Shell}, 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} depend significantly on whether code is compiled into {machine-language}, interpreted, {tokenized}, or {byte-compiled} at the start of each run, or any mixture of these. Many languages fall between being interpreted or compiled (e.g. {Lisp}, {Forth}, {UCSD Pascal}, {Perl}, and {Java}). This makes compilation versus interpretation a dubious parameter in a taxonomy of programming languages.
(2002-05-28)

ousterhouts fallacy
Ousterhout's fallacy
{Ousterhout's dichotomy}

ousterhouts false 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.
(2001-03-23)

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)

outofband
out-of-band
1. [communications] The exchange of {call control} information on a dedicated channel, separate from that used by the telephone call or data transmission.
2. Sometimes used to describe what communications people call "shift characters", such as the ESC that leads control sequences for many terminals, or the level shift indicators in the old 5-bit {Baudot} codes.
3. In personal communication, using methods other than {electronic mail}, such as telephone or {snail-mail}.
4. [software] Values returned by a {function} that are not in its "natural" {range} of return values, but rather signal some kind of {exception}. Many {C} functions that normally return a non-negative integer return -1 to indicate failure.
This use confuses "out-of-band" with "out-of-range". It is actually a clear example of {in-band} signalling since it uses the same "channel" for control and data.
Compare {hidden flag}, {green bytes}, {fence}.
[{Jargon File}]
(2001-04-08)

output
[architecture] {Data} transferred from a computer system to the outside world via some kind of {output device}.
Opposite: {input}.
(1997-04-28)

output device
[hardware] Electronic or electromechanical equipment connected to a computer and used to transfer data out of the computer in the form of text, images, sounds or other media to a {display screen}, {printer}, loudspeaker or storage device. Most modern storage devices such as {disk drives} and {magnetic tape drives} act as both input and output devices, others such as {CD-ROM} are input only.
(1997-03-18)

outside awareness port
Outside Awareness Port
[humour] (OAP) A humorous {IBM} term for a window (the glass kind) rather than the {GUI} kind.

outsidein testing
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
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".
[{Jargon File}]

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}).
[{Jargon File}]

overrun screw
A variety of {fandango on core} produced by a {C} program scribbling past the end of an {array} ({C} implementations typically have no checks for this error). This is relatively benign and easy to spot if the array is static; if it is {auto}, the result may be to {smash the stack} - often resulting in {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_Syndrome/)}.
(1999-10-03)

owhy
OWHY
[language] An early {functional language}(?).
["A Type-Theoretical Alternative to CUCH, ISWIM, OWHY", Dana Scott, Oxford U 1969].
(1995-01-19)

owl
OWL
1. [company] {Office Workstations Limited}.
2. [language] {Object Windows Language}.
(1996-01-13)

owl
Owl
The original name of {Trellis}.
(1995-01-19)

ox
Ox
[language, tool] A {preprocessor}, written by Kurt Bischoff of {Iowa State University}, that extends and generalises the {syntax} and {semantics} of {Yacc}, {Lex}, and {C}. Ox's support of {LALR1 grammars} generalises {yacc} in the way that {attribute grammars} generalise {context-free grammars}. It augments Yacc and {Lex} specifications with definitions of synthesised and inherited attributes written in {C} {syntax}. Ox checks these specifications for consistency and completeness, and generates a program that builds and decorates {attributed parse trees}. Ox accepts a most general class of attribute grammars. The user may specify postdecoration traversals for easy ordering of {side effects} such as {code generation}.
Latest version: G1.01, as of 1993-11-14.
{(ftp://ftp.cs.iastate.edu/pub/ox/)}.
Info: [ox-request@cs.iastate.edu].
["User Manual for Ox: An Attribute-Grammar Compiling System based on Yacc, Lex and C", K.M. Bischoff, TR92-30, Iowa State U, Dec 1992].
(2000-04-03)

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

ozemail
Oz-Email
[company] An {Internet} access provider.
{Home (http://www.ozemail.com.au/)}.
Address: Sydney, Australia.
(1995-03-02)

p
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
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
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
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
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
PABX
{Private Automatic Branch eXchange}

pace
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
Packard Bell Electronics, Inc.
[company] A leading US computer vendor.
As recently as 29 November 1995 the Wall Street Journal reported that the company was having financial difficulties and that one of its major suppliers of CPUs, {Intel}, was about to make a large cash loan, so as to prevent loss of a major customer. Packard Bell is a privately held company and the WSJ also reported that {NEC} has been rumored to have bought a large minority block of shares to help the company stay in business.
Its computers are sold in major retail outlets in the USA and are available as a bundled package: desktop or {tower} {486} {CPU}, single 3.5 inch {floppy disk drive}, {CD-ROM}, {sound card}, 14 inch colour {monitor}, and 4-8MB of {RAM}.
1995 end-of-year prices in Computer Currents magazine (a California Bay Area bi-monthly giveaway publication) are US$1500 (approx. 1000 pounds) for a 486 desktop, with 8MB RAM, 420MB hard disk drive, single 3.5 inch floppy drive, 14 inch colour monitor, 2-speed CD-ROM, and 16-bit sound card.
Headquarters: Sacramento, California, USA.
(1996-01-02)

packed decimal
{binary coded decimal}

packed encoding rules
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 assemblerdisassembler
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
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
Packet InterNet Groper
[networking, tool] (ping, originally contrived to match submariners' term for the sound of a returned sonar pulse) A program written in 1983 by Mike Muuss (who also wrote {TTCP}) used to test reachability of destinations by sending them one, or repeated, {ICMP} echo requests and waiting for replies. Since ping works at the {IP} level its server-side is often implemented entirely within the {operating system} {kernel} and is thus the lowest level test of whether a remote host is alive. Ping will often respond even when higher level, {TCP}-based services cannot.
Sadly, Mike Muuss was killed in a road accident on 2000-11-20.
The term is also used as a verb: "Ping host X to see if it is up."
The {Unix} command "ping" can be used to do this and to measure round-trip delays.
The funniest use of "ping" was described in January 1991 by Steve Hayman on the {Usenet} group comp.sys.next. He was trying to isolate a faulty cable segment on a {TCP/IP} {Ethernet} hooked up to a {NeXT} machine. Using the sound recording feature on the NeXT, he wrote a {script} that repeatedly invoked ping, listened for an echo, and played back the recording on each returned {packet}. This caused the machine to repeat, over and over, "Ping ... ping ... ping ..." as long as the network was up. He turned the volume to maximum, ferreted through the building with one ear cocked, and found a faulty tee connector in no time.
See also {ACK}, {ENQ}, {traceroute}, {spray}.
{The Story of the Ping Program (http://ftp.arl.mil/~mike/ping.html)}.
{Unix manual page}: ping(8).
(2002-11-29)

packet radio
[communications, radio] The use of {packet switched} communications {protocols} in large networks (i.e not {wireless LANs} or {Bluetooth}) having wireless links to terminals at least. Packet radio is split into {amateur packet radio} (AX25) and {General Packet Radio Service} (GRPS).
(2001-05-12)

packet sniffer
[networking, tool] A network monitoring tool that captures data {packets} and decodes them using built-in knowledge of common {protocols}. Sniffers are used to debug and monitor networking problems.
(1995-03-28)

packet switch node
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 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 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)

packetswitched
packet-switched
{packet switching}

packit
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
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
PACTOLUS
Digital simulation.
[Sammet 1969, p. 627].
(1994-11-30)

pad
PAD
{Packet Assembler/Disassembler}

padded cell
Where you put {lusers} so they can't hurt anything. A program that limits a luser to a carefully restricted subset of the capabilities of the host system (for example, the "{rsh}" utility on {USG Unix}). Note that this is different from an {iron box} because it is overt and not aimed at enforcing security so much as protecting others (and the {luser}) from the consequences of the luser's boundless naivet'e (see {naive}). Also "padded cell environment".
[{Jargon File}]
(1994-11-30)

paddle
Paddle
A language for transformations leading from specification to program. Used in the {POPART} programming environment generator.
(1994-11-30)

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

page description language
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)

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}.
[{Jargon File}]
(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 DRAM
{Page Mode Dynamic Random Access Memory}

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.
[{Jargon File}]
(1995-01-23)

paged
{paging}

paged memory management unit
Paged Memory Management Unit
{Memory Management Unit}

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
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
Paintbrush
[graphics, tool] A {Microsoft Windows} tool for creating {bitmap} graphics.
(1996-08-26)

paisley
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
PAL
1. [language] {Paradox Application Language}.
2. For the {AVANCE} distributed {persistent} {operating system}.
["PAL Reference Manual", M. Ahlsen et al, SYSLAB WP-125, Stockholm 1987].
["AVANCE: An Object Management System", A. Bjornerstedt et al, SIGPLAN Notices 23(11):206-221 (OOPSLA '88) (Nov 1988)].
[What is it?]
3. [language] An {object-oriented} {Prolog}-like language.
["Inheritance Hierarchy Mechanism in Prolog", K. Akama, Proc Logic Prog '86, LNCS 264, Springer 1986, pp. 12-21].
4. [language] {PDP Assembly Language}.
5. [language] {Pedagogic Algorithmic Language}.
6. [hardware, integrated circuit] {Programmable Array Logic}.
7. [television] {phase alternating line}.
(2001-04-02)

palace
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
Palo Alto Research Center
{XEROX PARC}

palo alto research centre
Palo Alto Research Centre
{XEROX PARC}

pam
PAM
{Pluggable Authentication Module}

pam
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
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
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
PANS
{Pretty Amazing New Stuff}.

pansophic
Pansophic
A US Software Engineering company.

pantone
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
PAP
1. [networking, protocol, security] {Password Authentication Protocol}.
2. [networking, protocol, printer] {Printer Access Protocol}.
(1996-03-23)

paper feed control character
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}

papernet
paper-net
{snail mail}

paraconsistent probability
[logic] A notion introduced by Florentin Smarandache: The probability (T, I, F) that an event occurs is calculated from different sources which may be contradictory or may overlap information; here T, I, F are real subsets representing the truth, indeterminacy, and falsity percentages respectively, and n_sup = sup(T)+sup(I)+sup(F) ] 100.
["Neutrosophy / Neutrosophic probability, set, and logic", F. Smarandache, American Research Press, 1998].
See {neutrosophic probability}
(2001-01-20)

parade
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
PARADIGM PLUS
A configurable {object-oriented} {CASE} tool from {Proto Soft}.

paradigms of ai programming
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
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
Paradox
[database] A {relational database} for {Microsoft Windows}, originally from {Borland}.
Paradox 5 ran on {Microsoft Windows} [version?] and provided a graphical environment, a debugger, a {data modelling} tool, and many "ObjectPAL" commands.
Paradox 7 ran under {Windows 95} and {Windows NT}.
Latest version: Paradox 9, as of 2000-02-10 (a {Corel} product).
{Home (http://www.corel.com/paradox9/index.htm)}.
[Update?]
(1996-05-27)

paradox
[logic] An apparently sound argument leading to a {contradiction}.
Some famous examples are {Russell's paradox} and the {liar paradox}. Most paradoxes stem from some kind of {self-reference}.
{Smarandache Linguistic Paradox (http://www.gallup.unm.edu/~smarandache/Paradox.htm)}.
(1999-11-05)

paradox application language
Paradox Application Language
(PAL) The programming language for {Paradox}, {Borland}'s {relational database}.
(1995-01-26)

paragon
Paragon
Mark Sherman. IEEE Software (Nov 1991).

paralation
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 C
Paralation embedded in C. Under development.

paralation lisp
Paralation LISP
Embeds the paralation model in Common LISP. Available from MIT Press, (800)356-0343.

paralfl
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
Parallaxis
[language] A {procedural} programming language developed by Thomas Braeunl [braunl@ee.uwa.edu.au] at the {University of Stuttgart}. It is based on {Modula-2}, but extended for {data parallel} ({SIMD}) programming. The main approach for machine independent parallel programming is to include a description of the virtual parallel machine with each parallel {algorithm}.
There is a simulator and {X Window System}-based profiler for {workstations}, {Macintosh}, and {IBM PC}.
Version 2.0 runs on {MP-1}, {CM-2}, {Sun-3}, {Sun-4}, {DECstation}, {HP 700}, {RS/6000}.
{Home (http://www.ee.uwa.edu.au/~braunl/parallaxis/)}.
["User Manual for Parallaxis Version 2.0", T. Braunl, U Stuttgart].
(2000-05-31)

parallel c
Parallel C
1. [language, parallel] Never implemented, but influenced the design of {C*}. [Details?]
2. {C} for the {transputer} by {3L}.
3. (PC) Extensions to {C} developed at the {University of Houston} providing a {shared memory} {SIMD} model on {message passing} computers.
{(ftp://karazm.math.uh.edu/pub/Parallel/Tools/pc.1.1.1.tar.Z)}.
E-mail: Ridgway Scott [scott@uh.edu].
(1995-03-21)

parallel computer
{parallel processor}

parallel computing
{parallel processing}

parallel forth
Parallel FORTH
{Forth} For the {MPP}.

parallel fortran
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
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)

parallel pascal
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
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 server option
Parallel Server Option
{Oracle Parallel Server}

parallel sml
Parallel SML
["Parallel SML: A Functional Language and its Implementation in Dactl", Kevin Hammond, Pitman Press 1990].

parallel sysplex
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 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)

parallelism
1. {parallel processing}.
2. [parallel] The maximum number of independent subtasks in a given task at a given point in its execution. E.g. in computing the expression
(a + b) *
(c + d) the expressions a, b, c and d can all be calculated in parallel giving a degree of parallelism of (at least) four. Once they have been evaluated then the expressions a + b and c + d can be calculated as two independent parallel processes.
The {Bernstein condition} states that processes P and Q can be executed in parallel (or in either sequential order) only if:
(i) there is no overlap between the inputs of P and the outputs of Q and vice versa and
(ii) there is no overlap between the outputs of P, the outputs of Q and the inputs of any other task.
If process P outputs value v which process Q reads then P must be executed before Q. If both processes write to some variable then its final value will depend on their execution order so they cannot be executed in parallel if any other process depends on that variable's value.
(1995-05-07)

param
{formal argument}

parameter
{formal argument}

parameter ram
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
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] A programming style that tries to prepare for the worst external conditions, including incorrect input, resource limitations, hardware and software failure and even {can't happen} errors, to the fullest possible extent. While some believe in the motto "professional programming is paranoid programming", the expression usually has the connotation that the efforts are unnecessary or too costly ("Maybe this code is just paranoid programming, but I think it is necessary to avoid a possible overflow condition".)
(2001-01-27)

parasoft corp
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
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
PARC
{XEROX PARC}

parcplace systems
ParcPlace Systems
[company] A company spun-off from {Xerox PARC} that developed the original version of {VisualWorks}.
(2002-04-15)

parent
[mathematics, data] (Or "mother", "precedessor") In a {tree}, a node which points to at least one {daughter} node.
(1998-11-14)

parent message
[messaging] What a {followup} follows up.
[{Jargon File}]
(1997-12-03)

parent process
[operating system] The {Unix} {process} that created one or more other processes.
Every process except process 0 is created when another process executes the {fork} {system call}. The process that invoked fork is the parent process, and the newly created process is the {child process}. Every process has one parent process, but can have many child processes.
The {kernel} identifies each process by its {process identifier} (PID). Process 0 is a special process that is created when the system boots; after forking a child process (process 1), process 0 becomes the {swapper} process. Process 1, known as {init}, is the ancestor of every other process in the system and enjoys a special relationship with them.
(1997-12-03)

parentheses
See {left parenthesis}, {right parenthesis}.
(1997-12-03)

pari
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
Paris
PARallel Instruction Set.
A low-level language for the {Connection Machine}.
(1995-02-16)

parity
[storage, communications] An extra bit added to a {byte} or {word} to reveal errors in storage (in {RAM} or {disk}) or transmission. Even (odd) parity means that the parity bit is set so that there are an even (odd) number of one bits in the word, including the parity bit. A single parity bit can only reveal single bit errors since if an even number of bits are wrong then the parity bit will not change. Moreover, it is not possible to tell which bit is wrong, as it is with more sophisticated {error detection and correction} systems.
See also {longitudinal parity}, {checksum}, {cyclic redundancy check}.
(1996-03-01)

parity bit
[storage, communications] An extra bit added to a {byte} or {word} to reveal errors.
See {parity}.
(1996-03-01)

parity error
[storage, communications] An error discovered by the inclusion of a {parity} bit.
(1996-03-01)

parkinsons law of data
Parkinson's Law of Data
"Data expands to fill the space available for storage"; buying more memory encourages the use of more memory-intensive techniques. It has been observed over the last 10 years that the memory usage of evolving systems tends to double roughly once every 18 months. Fortunately, memory density available for constant dollars also tends to double about once every 12 months (see {Moore's Law}); unfortunately, the laws of physics guarantee that the latter cannot continue indefinitely.
[{Jargon File}]

parkmiller
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
Parlance
A {concurrent} language.
["Parallel Processing Structures: Languages, Schedules, and Performance Results", P.F. Reynolds, PhD Thesis, UT Austin 1979].
(1994-12-12)

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

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

parm
/parm/ Further-compressed form of {param}. This term is an {IBM}ism, and written use is almost unknown outside IBM shops; spoken /parm/ is more widely distributed, but the synonym {arg} is favoured among hackers. Compare {var}.
[{Jargon File}]

parmacs
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
ParMod
"Parallel Programming with ParMod", S. Eichholz, Proc 1987 Intl Conf on Parallel Proc, pp.377-380.

pars
PARS
{Programmable Airline Reservation System}

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

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

partially ordered set
A {set} with a {partial ordering}.

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
PARTS
{Digitalk}. {Visual language} for {OS/2} 2.0.

party
@-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}.
[{Jargon File}]
(1996-05-08)

parulel
PARULEL
"The PARULEL Parallel Rule Language", S. Stolfo et al, Proc 1991 Intl Conf Parallel Proc, CRC Press 1991, pp.36-45.

pasc
PASC
{Perceptional Adaptive Subband Coding}

pascal
Pascal
[language] (After the French mathematician {Blaise Pascal} (1623-1662)) A programming language designed by {Niklaus Wirth} around 1970. Pascal was designed for simplicity and for teaching programming, in reaction to the complexity of {ALGOL 68}. It emphasises {structured programming} constructs, data structures and {strong typing}. Innovations included {enumeration types}, {subranges}, sets, {variant records}, and the {case statement}. Pascal has been extremely influential in programming language design and has a great number of variants and descendants.
ANSI/IEEE770X3.97-1993 is very similar to {ISO Pascal} but does not include {conformant arrays}.
ISO 7185-1983(E). Level 0 and Level 1. Changes from Jensen & Wirth's Pascal include name equivalence; names must be bound before they are used; loop index must be local to the procedure; formal procedure parameters must include their arguments; {conformant array 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].
[{Jargon File}]
(1996-06-12)

pascal
Pascal-
Pascal subset used in Brinch Hansen on Pascal Compilers, P. Brinch Hansen, P-H 1985.
[{Jargon File}]

pascal p4
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
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)

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

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

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

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

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

pascallinda
Pascal-Linda
Ian Flockhart, U Edinburgh, 1991. Under development.

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

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

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

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

pascalsc
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
["Pasqual: A Proposed Generalization of Pascal", R.D. Tennent, TR75-32, Queen's U, Canada, 1975].

pasro
PASRO
[robotics] {PAScal} for RObots.
["PASRO - Pascal for Robots", C. Blume et al, Springer 1985].
(1999-07-19)

passim
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
[security] An arbitrary string of characters chosen by a user or {system administrator} and used to authenticate the user when he attempts to log on, in order to prevent unauthorised access to his account.
A favourite activity among unimaginative {computer nerds} and {crackers} is writing programs which attempt to discover passwords by using lists of commonly chosen passwords such as people's names (spelled forward or backward). It is recommended that to defeat such methods passwords use a mixture of upper and lower case letters or digits and avoid proper names and real words. If you have trouble remembering random strings of characters, make up an acronym like "ihGr8trmP" ("I have great trouble remembering my password").
(1994-10-27)

password authentication protocol
Password Authentication Protocol
[networking] (PAP) An {authentication} scheme used by {PPP} servers to validate the identity of the originator of the connection.
PAP applies a two-way {handshaking} procedure. After the link is established the originator sends an id-password pair to the server. If authentication succeeds the server sends back an acknowledgement; otherwise it either terminates the connection or gives the originator another chance.
PAP is not a strong authentication method. Passwords are sent over the circuit "in the clear" and there is no protection against playback or repeated "trial and error" attacks. The originator is in total control of the frequency and timing of the attempts. Therefore, any server that can use a stronger authentication method, such as {CHAP}, will offer to negotiate that method prior to PAP. The use of PAP is appropriate, however, if a {plaintext} password must be available to simulate a login at a remote host.
PAP is defined in {RFC} 1334.
(1996-03-23)

paste
{copy and paste}

pastie
/pay'stee/ An adhesive label designed to be attached to a key on a keyboard to indicate some non-standard character which can be accessed through that key. Pasties are likely to be used in APL environments, where almost every key is associated with a special character. A pastie on the R key, for example, might remind the user that it is used to generate the rho character. The term properly refers to nipple-concealing devices formerly worn by strippers in concession to indecent-exposure laws; compare {tits on a keyboard}.
[{Jargon File}]

pat
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}.
[{Jargon File}]
(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}.
[{Jargon File}]

patchy
PATCHY
A {Fortran} {code management} program written at {CERN}.

path
1. [networking] A {bang path} or explicitly routed {Internet address}; a node-by-node specification of a link between two machines.
2. [file system] {pathname}.
3. [operating system] The list of directories the kernel (under {Unix}) or the command interpreter (under {MS-DOS}) searches for {executables}. It is stored as part of the {environment} in both operating systems.
Other, similar constructs abound under Unix; the {C} {preprocessor}, for example, uses such a search path to locate "#include" files.
[{Jargon File}]
(1996-11-21)

path coverage testing
[testing] Testing a program by examining which lines of executable code are visited (as in {code coverage testing}) and also the ways of getting to each line of code and the subsequent sequence of execution.
Path coverage testing is the most comprehensive type of testing that a {test suite} can provide. It can find more {bugs} in a program, especially those that are caused by {data coupling}. However, path coverage is a testing level that is very hard to achieve, and usually only small and/or critical sections of code are checked in this way.
{(http://www.testingcenter.com/glossary.html)}.
(2001-04-21)

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

pathname
[file system] (Or "path") The specification of a node (file or directory) in a {hierarchical file system}. The path is usually specified by listing the nodes top-down, separating the directories by the {pathname separator} ("/" in {Unix}, "\" in {MS-DOS}).
A pathname may be an {absolute pathname} or a {relative pathname}. The part of the pathname of a file after the last separator is called the {basename}.
(1997-03-10)

pathname separator
[file system] The character used to separate elements of a {path} or {pathname}. Under {Unix} and {POSIX.1} compliant systems the pathname separator is the (forward) {slash}, in {MS-DOS} {backslash} serves the same purpose. For obvious reasons the no directory or file name can contain this character.
(1996-11-21)

pathological
1. [scientific computation] Used of a data set that is grossly atypical of normal expected input, especially one that exposes a weakness or bug in whatever algorithm one is using. An algorithm that can be broken by pathological inputs may still be useful if such inputs are very unlikely to occur in practice.
2. When used of test input, implies that it was purposefully engineered as a worst case. The implication in both senses is that the data is spectacularly ill-conditioned or that someone had to explicitly set out to break the algorithm in order to come up with such a crazy example.
3. Also said of an unlikely collection of circumstances. "If the network is down and comes up halfway through the execution of that command by root, the system may just crash." "Yes, but that's a pathological case." Often used to dismiss the case from discussion, with the implication that the consequences are acceptable, since they will happen so infrequently (if at all) that it doesn't seem worth going to the extra trouble to handle that case (see sense 1).
[{Jargon File}]

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
PAW
[tool] {Physics Analysis Workbench}.

paw
PAW++
An extended version of PAW with a Motif human interface.

payware
/pay'weir/ Commercial software. Opposite: {shareware} or {freeware}.
[{Jargon File}]

pb cache
PB Cache
{Pipeline Burst Cache}

pbd
PBD
{Programmer Brain Damage}

pbem
PBEM
{play by electronic mail}

pbm
PBM
play by mail. See {play by electronic mail}.

pbx
PBX
{Private Branch Exchange}

pc
PC
1. [computer] {personal computer}.
2. [computer] {IBM PC}.
3. [hardware] {program counter}.
4. [hardware] {printed circuit}.
5. [language] {Parallel C}.

pc
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].
(2001-02-22)

pc at
PC AT
{IBM PC AT}

pc card
PC Card
{Personal Computer Memory Card International Association}

pc pursuit
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)

pc200
PC200
{Sinclair PC200}

pca
PCA
A dynamic analyser from {DEC} giving information on run-time performance and code use.

pcad
P-CAD
A {CAE} system marketed by {CADAM}, an {IBM} company.

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

pccts
PCCTS
{Purdue Compiler-Construction Tool Set}

pcf
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
PCI
{Peripheral Component Interconnect}

pci bus
PCI bus
{Peripheral Component Interconnect}

pci configuration utility
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
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
PCI slot
[hardware] A connector on {Peripheral Component Interconnect} and the associated physical space occupied by the installed PCI card.
(1997-12-07)

pcism
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}.
[{Jargon File}]

pcjr
PCjr
{IBM PCjr}

pcl
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
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
PCM
1. [data] {Pulse Code Modulation}.
2. [company] {Plug Compatible Manufacturer}.
(2003-06-24)

pcmcia
PCMCIA
[body, standard] {Personal Computer Memory Card International Association}. (Or People Can't Memorise Computer Industry Acronyms).

pcmia
PCMIA
{Personal Computer Manufacturer Interface Adaptor}

pcn
PCN
1. {Program Composition Notation}.
2. [communications] {Personal Communication Network}.

pcnfs
PC-NFS
{Personal Computer Network File System}

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

pcrt
PC-RT
[computer] An incorrect name for the {RT-PC}.
(1995-04-06)

pcs
PCS
1. {Personal Communication Services}.
2. {PC-Scheme}.

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

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

pctalk iii
PC-TALK III
[communications, tool] An {MS-DOS} communications program by {Andrew Fluegelman}.
(1997-08-25)

pcte
PCTE
{Portable Common Tool Environment}

pcte
PCTE+
A European NATO specification based on {PCTE} with security enhancements.

pctiles
PC-TILES
[language] A {visual programming language}.
(1997-08-25)

pcu
PCU
{PCI Configuration Utility}

pcware
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
PD
{public domain}

pda
PDA
{Personal Digital Assistant}

pdc
PDC
{Primary Domain Controller}

pdc prolog
PDC Prolog
Prolog Development Centre Prolog. A {Prolog} evolved from {Turbo Prolog} by the original authors.

pdel
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
PDELAN
{Partial Differential Equation LANguage}

pdes
PDES
{Product Data Exchange using STEP}

pdf
PDF
{Portable Document Format}

pdftex
PDFTeX
[tool, TeX, PDF] A modification of {TeX} to produce {PDF} output instead of the {canonical} {DVI}.
{pdftexlib.tar.gz (ftp://ftp.tug.org/pub/tex/pdftexlib.tar.gz)}.
{Thanh's source of pdfTeX (ftp://ftp.muni.cz/pub/tex/local/cstug/thanh/pdftex/)}.
{User Manual (http://tug.cs.umb.edu/applications/pdftex/pdftex-s.pdf)}.
{FAQ (http://tug.cs.umb.edu/applications/pdftex/pdfTeX-FAQ-scr.pdf)}.
(2000-12-21)

pdh
PDH
{Plesiochronous Digital Hierarchy}

pdil
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
PDL
1. {Page Description Language}.
2. {Program Design Language}.
3. {Push Down List}.
4. Dave Lebling, one of the co-authors of {Zork}. His {network address} on the {ITS} machines was at one time [pdl@dms].
5. {Propositional Dynamic Logic}.
[{Jargon File}]

pdl2
PDL2
[language] {Process Design Language 2}.

pdm
PDM
1. {Product Development Management}.
2. {Product Data Management}.
(1997-02-11)

pdp
PDP
{Programmed Data Processor}

pdp assembly language
PDP Assembly Language
[language] (PAL) The {assembly language} for the {PDP-8} and {PDP-11}.
[Description?]
(1995-01-26)

pdp10
PDP-10
[computer] Programmed Data Processor model 10.
The series of {mainframes} from {DEC} that made {time-sharing} real. It looms large in hacker folklore because of its adoption in the mid-1970s by many university computing facilities and research labs, including the {MIT} {AI Lab}, {Stanford}, and {CMU}. Some aspects of the {instruction set} (most notably the bit-field instructions) are still considered unsurpassed.
The PDP-10 was eventually eclipsed by the {VAX} machines (descendants of the {PDP-11}) when DEC recognised that the PDP-10 and VAX product lines were competing with each other and decided to concentrate its software development effort on the more profitable VAX. The machine was finally dropped from DEC's line in 1983, following the failure of the {Jupiter} Project at DEC to build a viable new model. (Some attempts by other companies to market clones came to nothing; see {Foonly} and {Mars}.) This event spelled the doom of {ITS} and the technical cultures that had spawned the original {Jargon File}, but by mid-1991 it had become something of a badge of honourable old-timerhood among hackers to have cut one's teeth on a PDP-10.
See {TOPS-10}, {AOS}, {BLT}, {DDT}, {DPB}, {EXCH}, {HAKMEM}, {JFCL}, {LDB}, {pop}, {push}.
{news:alt.sys.pdp10}
[Was the PDP-10 a mini or a mainframe?]
(2001-01-05)

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

pdp20
PDP-20
The most famous computer that never was. {PDP-10} computers running the {TOPS-10} operating system were labelled "DECsystem-10" as a way of differentiating them from the {PDP-11}. Later on, those systems running {TOPS-20} were labelled "DECSYSTEM-20" (the block capitals being the result of a lawsuit brought against DEC by Singer, which once made a computer called "system-10"), but contrary to popular lore there was never a "PDP-20"; the only difference between a 10 and a 20 was the {operating system} and the colour of the paint. Most (but not all) machines sold to run {TOPS-10} were painted "Basil Blue", whereas most TOPS-20 machines were painted "Chinese Red" (often mistakenly called orange).
[{Jargon File}]
(1994-12-21)

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

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

pds
PDS
1. [hardware] {Processor Direct Slot}.
2. {partitioned data set}.

pdsa cycle
PDSA cycle
Plan, Do, See, Approve (from Japan).

pdsmagen
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
PDU
{Protocol Data Unit}

pe
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
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
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
PEARL
1. [language, mathematics] A language for {constructive mathematics} developed by Constable at {Cornell University} in the 1980s.
2. [language, real-time] {Process and Experiment Automation Real-Time Language}.
3. [language, education] One of five pedagogical languages based on {Markov} {algorithms}, used in "Nonpareil, a Machine Level Machine Independent Language for the Study of Semantics", B. Higman, ULICS Intl Report No ICSI 170, U London (1968). Compare {Brilliant}, {Diamond}, {Nonpareil}, {Ruby}.
4. [language] A multilevel language developed by Brian Randell ca 1970 and mentioned in "Machine Oriented Higher Level Languages", W. van der Poel, N-H 1974.
5. [language, tool, history] An obsolete term for {Larry Wall}'s {PERL} programming language, which never fell into common usage other than in typographical errors. The missing 'a' remains as an atrophied remnant in the expansion "Practical Extraction and Report Language".
["Programming Perl", Larry Wall and Randal L. Schwartz, O'Reilly & Associates, Inc. Sebastopol, CA. ISBN 0-93715-64-1].
(2000-08-16)

pebble
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
Pebbleman
{DoD} requirements that led to {APSE}. They were written in Jul 1978 and revised Jan 1979.
(1995-01-26)

pebcak
PEBCAK
[humour] (Or "PEBKAC") Tech support shorthand for "Problem Exists between Chair and Keyboard".
See also {UBD}.
(1998-08-27)

pebkac
PEBKAC
{PEBCAK}

pecos
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
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
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.
[{Jargon File}]
(1995-01-31)

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

peertopeer
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
Pegasus
1. [networking, product] A product to support {Internet} searches, {electronic mail}, and {Usenet news}.
[Details? Addesss?]
(1997-07-14)
2. [project] An {open source} project run by {The Open Group} which implements a {Common Information Model} (CIM) Object Manager.
{Pegasus Home (http://www.openpegasus.org/)}.
(2003-06-07)

peipa
PEIPA
{Pilot European Image Processing Archive}

pem
PEM
{Privacy Enhanced Mail}

pencil
PENCIL
Pictorial ENCodIng Language. On-line system to display line structures. Sammet 1969, 675.

pencil and paper
An archaic information storage and transmission device that works by depositing smears of graphite on bleached wood pulp. More recent developments in paper-based technology include improved "write-once" update devices which use tiny rolling heads similar to mouse balls to deposit coloured pigment. All these devices require an operator skilled at so-called "handwriting" technique. These technologies are ubiquitous outside hackerdom, but nearly forgotten inside it. Most hackers had terrible handwriting to begin with, and years of keyboarding tend to have encouraged it to degrade further. Perhaps for this reason, hackers deprecate pencil-and-paper technology and often resist using it in any but the most trivial contexts.
[{Jargon File}]
(1994-12-06)

penis war
[jargon, abuse] (Or "Dick Size War", "DSW") Any argument which has degenerated into quantitative boasting of the sort "My [program|bot|etc.] is [faster|meaner|etc.] than yours!", generally as unconstructive (and with as little emphasis on empirical proof) as men debating who has the biggest penis.
The term is often used on {IRC}, {news:alt.sysadmin.recovery}, and sometimes applied to IRC {botwars}, because of their equally pointless nature.
(1999-07-14)

pentium
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 2
{Pentium II}

pentium 3
Pentium 3
{Pentium III}

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
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 iii
Pentium III
[microprocessor, Intel] The {microprocessor} that was {Intel Corporation}'s successor to the {Pentium II}, introduced in 1999 with a 500 {MHz} {clock rate}. The Pentim III is very similar to the Pentium II in architecture. Its external {bus} can be clocked at 100 or 133 MHz, it can have up to 512 {KB} of {secondary cache}, and it comes in various packages including {SECC2} and {FC-PGA}.
The Pentium III has a {P6} {Dynamic Execution} {microarchitecture}, a {multi-transaction system bus}, and {MMX}, like the Pentium II. It adds {Dual Independent Bus} (DIB) Architecture, the {Intel Processor Serial Number}, Internet {Streaming SIMD Extensions}, 70 new instructions. Some versions also include an {Advanced Transfer Cache} and {Advanced System Buffering}.
When Intel released a 1.13 {GHz} version of the Pentium III processor using a 0.18 {micron} fabrication process on 2000-07-31, it was the world's highest performance microprocessor for PCs.
{Home (http://www.intel.com/PentiumIII)}.
(2000-10-05)

pentium pro
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
[jargon] A person with no special ({root} or {wheel}) privileges on a computer system. "I can't create an account on foovax for you; I'm only a peon there."
[{Jargon File}]
(2001-12-23)

peoplesoft
PeopleSoft
[application, company] A company selling {web-based} {ERP} systems. Originally PeopleSoft supplied human resource management systems, they now provide financial data management, {customer relationship management}, {supply chain management}, {workforce management}, and {data analytics} systems.
{Home (http://www.peoplesoft.com/)}.
(2003-06-01)

pepper
Pepper
[language] A variant of {POP-11} by Chris Dollin [kers@hplb.hpl.hp.com].
(2002-05-26)

pepsy
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
PER
1. [networking] {Packed Encoding Rules}.
2. [mathematics] {partial equivalence relation}.
(1998-05-27)

percent
%
Common: {ITU-T}: percent sign; mod; grapes. {INTERCAL}: double-oh-seven.
(1995-03-06)

perceptional adaptive subband coding
Perceptional Adaptive Subband Coding
[audio, compression] (PASC) A version of {MPEG-1 Layer 1} used for the {Philips} {Digital Compact Cassette DCC}.
(2001-12-13)

perceptron
1. A single {McCulloch-Pitts neuron}.
2. A network of {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}."
[{Jargon File}]

perform
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.
[Clarification?]
(1995-10-30)

peripheral
[hardware] (Or "peripheral device", "device") Any part of a computer other than the {CPU} or {working memory}, i.e. {disks}, {keyboards}, {monitors}, {mice}, {printers}, {scanners}, {tape drives}, {microphones}, {speakers}, {cameras}, to list just the less exotic ones.
High speed working {memory}, such as {RAM}, {ROM} or, in the old days, {core} would not normally be referred to as peripherals. The more modern term "device" is also more general in that it is used for things such as a {pseudo-tty}, a {RAM drive}, or a {network adaptor}.
Some argue that, since the advent of the {personal computer}, the {motherboard}, {hard disk}, keyboard, mouse, and monitor are all parts of the base system, and only use the term "peripheral" for optional additional components.
(2002-09-03)

peripheral component interconnect
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
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
Perl
[language, tool] A {high-level} programming language, started by {Larry Wall} in 1987 and developed as an {open source} project. It has an eclectic heritage, deriving from the ubiquitous {C} programming language and to a lesser extent from {sed}, {awk}, various {Unix} {shell} languages, {Lisp}, and at least a dozen other tools and languages. Originally developed for {Unix}, it is now available for many {platforms}.
Perl's elaborate support for {regular expression} matching and substitution has made it the {language of choice} for tasks involving {string manipulation}, whether for text or binary data. It is particularly popular for writing {CGI scripts}.
The language's highly flexible syntax and concise regular expression operators, make densely written Perl code indecipherable to the uninitiated. The syntax is, however, really quite simple and powerful and, once the basics have been mastered, a joy to write.
Perl's only {primitive} data type is the "scalar", which can hold a number, a string, the undefined value, or a typed reference. Perl's {aggregate} data types are {arrays}, which are ordered lists of {scalars} indexed by {natural numbers}, and hashes (or "{associative arrays}") which are unordered lists of scalars indexed by strings. A reference can point to a scalar, array, hash, {function}, or {filehandle}. {Objects} are implemented as references "{blessed}" with a {class} name. Strings in Perl are {eight-bit clean}, including {nulls}, and so can contain {binary data}.
Unlike C but like most Lisp dialects, Perl internally and dynamically handles all memory allocation, {garbage collection}, and type {coercion}.
Perl supports {closures}, {recursive functions}, {symbols} with either {lexical scope} or {dynamic scope}, nested {data structures} of arbitrary content and complexity (as lists or hashes of references), and packages (which can serve as classes, optionally inheriting {methods} from one or more other classes). There is ongoing work on {threads}, {Unicode}, {exceptions}, and {backtracking}. Perl program files can contain embedded documentation in {POD} (Plain Old Documentation), a simple markup language.
The normal Perl distribution contains documentation for the language, as well as over a hundred modules (program libraries). Hundreds more are available from The {Comprehensive Perl Archive Network}. Modules are themselves generally written in Perl, but can be implemented as interfaces to code in other languages, typically compiled C.
The free availability of modules for almost any conceivable task, as well as the fact that Perl offers direct access to almost all {system calls} and places no arbitrary limits on data structure size or complexity, has led some to describe Perl, in a parody of a famous remark about {lex}, as the "Swiss Army chainsaw" of programming.
The use of Perl has grown significantly since its adoption as the language of choice of many {World-Wide Web} developers. {CGI} interfaces and libraries for Perl exist for several {platforms} and Perl's speed and flexibility make it well suited for form processing and on-the-fly {web page} creation.
Perl programs are generally stored as {text} {source} files, which are compiled into {virtual machine} code at run time; this, in combination with its rich variety of data types and its common use as a glue language, makes Perl somewhat hard to classify as either a "{scripting language}" or an "{applications language}" -- see {Ousterhout's dichotomy}. Perl programs are usually called "Perl scripts", if only for historical reasons.
Version 5 was a major rewrite and enhancement of version 4, released sometime before November 1993. It added real {data structures} by way of "references", un-adorned {subroutine} calls, and {method} {inheritance}.
The spelling "Perl" is preferred over the older "PERL" (even though some explain the language's name as originating in the acronym for "Practical Extraction and Report Language"). The program that interprets/compiles Perl code is called "perl", typically "/usr/local/bin/perl" or "/usr/bin/perl".
Current version: 5.005_03 stable, 5.005_62 in development, as of 1999-12-04.
{Home (http://www.perl.com/)}.
{Usenet} newsgroups: {news:comp.lang.perl.announce}, {news:comp.lang.perl.misc}.
["Programming Perl", Larry Wall and Randal L. Schwartz, O'Reilly & Associates, Inc. Sebastopol, CA. ISBN 0-93715-64-1].
["Learning Perl" by Randal L. Schwartz, O'Reilly & Associates, Inc., Sebastopol, CA].
[{Jargon File}]
(1999-12-04)

perl profiler
Perl profiler
[tool] (pprof) A tool by Anthony Iano-Fletcher of Nottingham University, UK to profile, and collate data from, {Perl} scripts.
Version: 1?
Source posted on comp.lang.perl in mid-June 1993.
(1993-06-17)

perl5
Perl5
[language, tool] A commonly used but unofficial term for 5.* versions of {Perl}.
(1999-12-04)

perlbyacc
perl-byacc
A modified version of {byacc} that generates a {parser} in {Perl} code, by Rick Ohnemus [rick@imd.sterling.com]. It has a "-p" switch so multiple parsers can be used in one program ({C} or Perl). Version 1.8.2 should work on most {Unix} systems. It also works with {SAS/C} 6.x on {Amiga}.
(1993-01-24)

permanent virtual circuit
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 Connection
{Permanent Virtual Circuit}

permission
[file system] (Or "file mode") The ability to access (read, write, execute, traverse, etc.) a {file} or {directory}. Depending on the {operating system}, each file may have different permissions for different kinds of access and different users or groups of users.
{chmod} ("change mode") is the {UNIX} command to change permissions.
(2000-12-07)

permutation
[mathematics] 1. An ordering of a certain number of elements of a given set.
For instance, the permutations of (1,2,3) are (1,2,3) (2,3,1) (3,1,2) (3,2,1) (1,3,2) (2,1,3).
Permutations form one of the canonical examples of a "{group}" - they can be composed and you can find an inverse permutation that reverses the action of any given permutation.
The number of permutations of r things taken from a set of n is
n P r = n! / (n-r)!
where "n P r" is usually written with n and r as subscripts and n! is the {factorial} of n.
What the football pools call a "permutation" is not a permutation but a {combination} - the order does not matter.
2. A {bijection} for which the {domain} and {range} are the same set and so
f(f'(x)) = f'(f(x)) = x.
(2001-05-10)

perp
\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
Persistent Functional Language
[functional language, database] (PFL) A {functional database} language developed by Carol Small at Birkbeck College, London, UK and Alexandra Poulovassilis (now at {King's College London}).
In PFL, functions are defined equationally and bulk data is stored using a special class of functions called selectors. PFL is a {lazy} language, supports {higher-order functions}, has a strong {polymorphic} {type inference} system, and allows new user-defined data types and values. All functions, types and values persist in a {database}. Functions can be written which update all aspects of the database: by adding data to selectors, by defining new equations, and by introducing new data types and values.
PFL is "semi-{referentially transparent}", in the sense that whilst updates are referentially opaque and are executed {destructive}ly, all evaluation is referentially transparent. Similarly, {type checking} is "semi-static" in the sense that whilst updates are dynamically type checked at run time, expressions are type checked before they are evaluated and no type errors can occur during their evaluation.
["{A Functional Approach to Database Updates (http://web.dcs.bbk.ac.uk/CS/Research/DBPL/papers/INFSYS93.abs.html)}", C. Small, Information Systems 18(8), 1993, pp. 581-95].
(1995-04-27)

persistent memory
{non-volatile storage}

person of no account
(University of California at Santa Cruz) Used when referring to a person with no {network address}, frequently to forestall confusion. Most often as part of an introduction: "This is Bill, a person of no account, but he used to be bill@random.com".
Compare {return from the dead}.
[{Jargon File}]
(1994-11-22)

personal communication network
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
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
Personal Computer Memory Card International Association
[body, hardware, standard] (PCMCIA, or "PC Card") An international trade association and the {standards} they have developed for devicies, such as {modems} and external {hard disk} drives, that can be plugged into {notebook computers}. A PCMCIA card is about the size of a credit card.
For some unfathomable reason, around 1995(?) they decided to rename PCMCIA cards "PC Cards", perhaps to encourage sales to confused purchasers.
{(ftp://ftp.sidewinder.com/pub/Portables/PCMCIA)}.
Address: PCMCIA Administration, 1030 East Duane Avenue, Suite G, Sunnyvale, CA 94086 USA.
Telephone: +1 (408) 720 0107. Fax: +1 (408) 720 9416. BBS: +1 (408) 720 9388.
(1996-10-16)

personal digital assistant
Personal Digital Assistant
[computer] (PDA) A small hand-held computer typically providing calendar, contacts, and note-taking applications but may include other applications, for example a {web browser} and {media player}. Small keyboards and pen-based input systems are most commonly used for user input.
The {Apple Newton} was a fairly early example.
[First? Notable examples? Current Best?]
(2002-09-03)

personal identification number
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
Personalized Array Translator
[language] (PAT) A small subset of {APL}.
E-mail: [oed@watsol.uwaterloo.ca].
[Sammet 1969, p. 252].
(1998-05-09)

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
PERT
{Program Evaluation and Review Technique}

pessimal
/pes'im-l/ (Latin-based antonym for "optimal") Maximally bad. "This is a pessimal situation." Also "pessimise" To make as bad as possible. These words are the obvious Latin-based antonyms for "optimal" and "optimise", but for some reason they do not appear in most English dictionaries, although "pessimise" is listed in the OED.
[{Jargon File}]
(1995-02-01)

pessimising compiler
/pes'*-mi:z"ing k*m-pi:l"r/ (Antonym of "{optimising compiler}") A {compiler} that produces {object code} that is worse than the straightforward or obvious hand translation. The implication is that the compiler is actually trying to optimise the program, but through excessive cleverness is doing the opposite. A few pessimizing compilers have been written on purpose, however, as pranks or burlesques.
(1995-02-01)

peta
-
{prefix}

petabyte
[unit] 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
Peter Chen
[person] The developer of the {Entity-Relationship model}.
(1995-02-07)

petri net
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
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}.
[{Jargon File}]
(1995-10-29)

pex
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
PFE
1. [text, editor] {Programmer's File Editor}.
2. [language] {Portable Forth Environment}.
(2000-12-07)

pfl
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
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
Pfortran
{Parallel Fortran}

pfp
PFP
{Plastic Flat Package}

pg
[networking] The {country code} for Papua New Guinea.
(1999-01-27)

pga
PGA
1. [graphics, specification] {Professional Graphics Adapter}.
2. [hardware] {Pin Grid Array}.
(1999-08-04)

pga370
PGA370
{Socket 370}

pgp
PGP
{Pretty Good Privacy}

ph
PH
[tool] The tool for looking up people in Eudora on the {Macintosh}. Equivalent to {Unix}'s {finger} service.
(1995-03-31)

ph
pH
{Parallel Haskell}

ph
[networking] The {country code} for the Philippines.
(1999-01-27)

phacker
[communications, security] A telephone system {cracker}. A phacker may attempt to gain unauthorised access to a phone system in order to make free or untraceable calls or he may disrupt, alter or illegally tap phone systems via computer.
The disruptions may include causing a phone line to be engaged so no calls go in or out, redirecting outgoing or incoming calls, as well as listening to actual calls made.
Phackers are frequently confidence tricksters or phone freaks (nuisance callers who can only relate to other people by phone). Phackers are sometimes employed by illegal enterprises to conduct business using untraceable calls, or to disrupt, or follow legal authorities' investigations. Phackers interventions may be lethal to the person being phacked.
A phacker may be a phone company employee, or usually, ex-employee who specialises in illegal phone system disruption, alteration or tapping via physically altering installations. A phacker is generally considered to be a socially and intellectually retarded cracker.
See {Captain Crunch}.
(1998-08-09)

phage
A program that modifies other programs or databases in unauthorised ways; especially one that propagates a {virus} or {Trojan horse}. See also {worm}, {mockingbird}. The analogy, of course, is with phage viruses in biology.
[{Jargon File}]

phase
1. The offset of one's waking-sleeping schedule with respect to the standard 24-hour cycle; a useful concept among people who often work at night and/or according to no fixed schedule. It is not uncommon to change one's phase by as much as 6 hours per day on a regular basis. "What's your phase?" "I've been getting in about 8 P.M. lately, but I'm going to {wrap around} to the day schedule by Friday." A person who is roughly 12 hours out of phase is sometimes said to be in "night mode". (The term "day mode" is also (but less frequently) used, meaning you're working 9 to 5 (or, more likely, 10 to 6).) The act of altering one's cycle is called "changing phase"; "phase shifting" has also been recently reported from Caltech.
2. "change phase the hard way": To stay awake for a very long time in order to get into a different phase.
3. "change phase the easy way": To stay asleep, etc. However, some claim that either staying awake longer or sleeping longer is easy, and that it is *shortening* your day or night that is really hard (see {wrap around}). The "jet lag" that afflicts travelers who cross many time-zone boundaries may be attributed to two distinct causes: the strain of travel per se, and the strain of changing phase. Hackers who suddenly find that they must change phase drastically in a short period of time, particularly the hard way, experience something very like jet lag without travelling.

phase alternating line
[television] (PAL) The {video} signal format used in the UK [where else?].
PAL uses {Amplitude Modulation} for the video information, and {Frequency Modulation} for the {audio} information. The phase of the {colour subcarrier} is reversed on alternate lines which (together with the use of a delay line) allows the receiver to cancel any phase errors introduced in the path between the studio and the end-user's receiver. Such phase errors are quite common and would cause the displayed colours to shift in {hue}.
The US equivalent, {NTSC}, does not have this feature and thus requires a user control to correct for transmission phase errors, hence the mis-expansion "Never Twice the Same Colour".
(2001-06-08)

phase encoded
Phase Encoded
[storage] (PE) A recording method used for 1600 BPI {magnetic tapes}.
Compare {NRZI}, {GCR}.
(1996-02-03)

phase of the moon
Used humorously as a random parameter on which something is said to depend. Sometimes implies unreliability of whatever is dependent, or that reliability seems to be dependent on conditions nobody has been able to determine. "This feature depends on having the channel open in mumble mode, having the foo switch set, and on the phase of the moon."
See also {heisenbug}.
True story: Once upon a time there was a {bug} that really did depend on the phase of the moon. There was a little subroutine that had traditionally been used in various programs at {MIT} to calculate an approximation to the moon's true phase. {GLS} incorporated this routine into a {Lisp} program that, when it wrote out a file, would print a timestamp line almost 80 characters long. Very occasionally the first line of the message would be too long and would overflow onto the next line, and when the file was later read back in the program would {barf}. The length of the first line depended on both the precise date and time and the length of the phase specification when the timestamp was printed, and so the bug literally depended on the phase of the moon!
The first paper edition of the {Jargon File} (Steele-1983) included an example of one of the timestamp lines that exhibited this bug, but the typesetter "corrected" it. This has since been described as the phase-of-the-moon-bug bug.
[{Jargon File}]
(1995-02-22)

phasewrapping
phase-wrapping
({MIT}) {wrap around}.
[{Jargon File}]
(1995-02-22)

phigs
PHIGS
{Programmers Hierarchical Interactive Graphics System}

philips
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
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
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
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
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
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
Photoshop
[graphics, tool] An image manipulation program by {Adobe Systems, Inc.}.
{Home (http://www.adobe.com/Apps/Photoshop.html)}.
[Summary?]
(1995-07-05)

php hypertext preprocessor
PHP: Hypertext Preprocessor
[World-Wide Web, programming] (PHP) A {server-side}, {cross-platform}, {HTML}-embedded {scripting language} used to create dynamic {web pages}. PHP is {Open Source} software.
{PHP Home (http://www.php.net/)}.
[Features?]
(2002-01-03)

phreaking
[jargon] /freek'ing/ "phone phreak" 1. The art and science of {cracking} the telephone network so as, for example, to make free long-distance calls.
2. By extension, security-{cracking} in any other context (especially, but not exclusively, on communications networks).
At one time phreaking was a semi-respectable activity among hackers; there was a gentleman's agreement that phreaking as an intellectual game and a form of exploration was OK, but serious theft of services was taboo. There was significant crossover between the hacker community and the hard-core phone phreaks who ran semi-underground networks of their own through such media as the legendary "TAP Newsletter".
This ethos began to break down in the mid-1980s as wider dissemination of the techniques put them in the hands of less responsible phreaks. Around the same time, changes in the phone network made old-style technical ingenuity less effective as a way of hacking it, so phreaking came to depend more on overtly criminal acts such as stealing phone-card numbers.
The crimes and punishments of gangs like the "414 group" turned that game very ugly. A few old-time hackers still phreak casually just to keep their hand in, but most these days have hardly even heard of "blue boxes" or any of the other paraphernalia of the great phreaks of yore.
[{Jargon File}]
(1994-11-09)

physical
[jargon] The opposite of {logical} in its jargon sense. Compare {real}, {virtual}, and {transparent}.
It is said that what you can touch and see is real; what you can see but not touch is virtual; what you can touch but not see is transparent; and what you can neither touch nor see is probably imaginary.
(2001-10-26)

physical address
[memory management] The address presented to a computer's main memory in a {virtual memory} system, in contrast to the {virtual address} which is the address generated by the {CPU}. A {memory management unit} translates virtual addresses into physical addresses.
(1995-03-31)

physical addressing
[networking] The low level addressing scheme used on {Ethernet}. The 48-bit destination {Ethernet address} in a {packet} is compared with the receiving node's Ethernet address.
Compare {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
Physics Analysis Workbench
[tool] (PAW) A general purpose portable tool for analysis and presentation of physics data.
(1994-11-28)

pi
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
PIC
1. [hardware] {programmable interrupt controller}.
2. A graphics language by {Brian Kernighan}, for textually describing pictures with {troff}.
[Featured in "More Programming Pearls", Jon Bentley].
["PIC - A Language for Typesetting Graphics", B.W. Kernighan, Soft Prac & Exp 12(1):1-21 (Jan 1982)].
["PIC - A Graphics Language for Typesetting, Revised User Manual", Bell Labs TR 116, Dec 1984].
(1994-10-28)
3. {personal intelligent communicator}.
(2001-04-30)

picalculus
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
Pick BASIC
{Data/BASIC}

picl
PICL
Language on {Ncube} or {iPSC} machines?

pico
-
{prefix}

picosecond
[unit] 10^-12 seconds.
(1997-04-26)

pics
PICS
{Platform for Internet Content Selection}

pict
PICT
[file format] An {Apple} graphics format.
[Details?]
(1997-06-06)

pictex
PicTeX
A version of {TeX} for pictures.
{(ftp://june.cs.washington.edu/tex/PiCTeX.tar.Z)}.

pictorial janus
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
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
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
PIE
A language from {CMU} similar to {Actus}.
(1994-11-29)

pif
{Program Information File}

pig run like a
pig, run like a
To run very slowly on given hardware, said of software. Distinct from {hog}.
[{Jargon File}]
(1994-11-29)

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)

pigui
PIGUI
{Platform Independent Graphical User Interface}

pil
PIL
Procedure Implementation Language.
A subsystem of {DOCUS}.
[Sammet 1969, p.678].
(1994-11-29)

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

pili
PIL/I
Variant of JOSS. Sammet 1969, p.217.

pilot
PILOT
Programmed Inquiry Learning Or Teaching. CAI language, many versions. "Guide to 8080 PILOT", J. Starkweather, Dr Dobb's J (Apr 1977).

pilot error
[jargon] ({Sun}, from aviation) A user's misconfiguration or misuse of a piece of software, producing apparently {bug}-like results.
E.g. "Joe Luser reported a bug in sendmail that causes it to generate bogus headers." "That's not a bug, that's pilot error. His "sendmail.cf" is hosed."
Compare {UBD}.
[{Jargon File}]
(1994-12-05)

pilot european image processing archive
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
PIM
1. {Personal Information Manager}.
2. {Product Information Management}.
(1997-02-11)

pin
PIN
{Personal Identification Number}

pin feed
{sprocket feed}

pin grid array
Pin Grid Array
[hardware] (PGA) A style of {integrated circuit} socket or pin-out with pins laid out on a square or rectangular grid with a separation of 0.1 inch in each direction. The pins near the centre of the array are often missing.
PGA is often used on {motherboards} for {processors}, e.g. {Socket 6} and {Socket 8}.
PPGA is "plastic PGA" (as opposed to ceramic?).
See also {SPGA}.
(2000-03-09)

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

ping
{Packet InterNet Groper}

pingflood
ping-flood
[networking] To {flood} another user with {ping} requests.
(1997-04-07)

pinging
{ping}

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

pinkshirt book
Pink-Shirt Book
[publication] "The Peter Norton Programmer's Guide to the IBM PC".
The original cover featured a picture of Peter Norton with a silly smirk on his face, wearing a pink shirt. Perhaps in recognition of this usage, the current edition has a different picture of Norton wearing a pink shirt.
See also {book titles}.
[{Jargon File}]
(1995-03-28)

pinout
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
PIP
[tool] Peripheral Interchange Program.
A program on {CP/M}, {RSX-11}, {RSTS/E}, {TOPS-10}, and {OS/8} (derived from a utility on the {PDP-6}) that was used for file copying (and in OS/8 and RT-11 for just about every other file operation you might want to do). It is said that when the program was written, during the development of the PDP-6 in 1963, it was called ATLATL ("Anything, Lord, to Anything, Lord"; this played on the Nahuatl word "atlatl" for a spear-thrower, with connotations of utility and primitivity that were no doubt quite intentional).
See also {BLT}, {dd}, {cat}.
[{Jargon File}]
(1995-03-28)

pipe
1. [operating system] One of {Unix}'s buffers which can be written to by one {asynchronous} process and read by another, with the {kernel} suspending and waking up the sender and receiver according to how full the pipe is. In later versions of Unix, rather than using an anonymous kernel-managed temporary file to implement a pipe, it can be named and is implemented as a local {socket} pair.
2. [character] "|" {ASCII} character 124. Used to represent a pipe between two processes in a {shell} command line. E.g.
grep foo log | more
which feeds the output of grep into the input of more without requiring a named temporary file and without waiting for the first process to finish.
3. [jargon, networking] A connection to a {network}.
See also {light pipe}.
(1996-09-24)

pipeline
[architecture] A sequence of {functional units} ("stages") which performs a task in several steps, like an assembly line in a factory. Each functional unit takes inputs and produces outputs which are stored in its output {buffer}. One stage's output buffer is the next stage's input buffer. This arrangement allows all the stages to work in parallel thus giving greater throughput than if each input had to pass through the whole pipeline before the next input could enter.
The costs are greater latency and complexity due to the need to synchronise the stages in some way so that different inputs do not interfere. The pipeline will only work at full efficiency if it can be filled and emptied at the same rate that it can process.
Pipelines may be synchronous or asynchronous. A synchronous pipeline has a master clock and each stage must complete its work within one cycle. The minimum clock period is thus determined by the slowest stage. An asynchronous pipeline requires {handshaking} between stages so that a new output is not written to the interstage buffer before the previous one has been used.
Many {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
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)

pipeline stall
{pipeline break}

pipelined
{pipeline}

pipelined burst cache
Pipelined Burst Cache
{Pipeline Burst Cache}

pipelining
{pipeline}

pipex ltd
PIPEX Ltd.
{UUNET PIPEX}

piping
{pipe}

piracy
{software piracy}

pirate
{software pirate}

pirl
PIRL
Pattern Information Retrieval Language.
A language for {digraph} manipulation, embeddable in {Fortran} or {ALGOL}, for {IBM 7094}.
["PIRL - Pattern Information Retrieval Language", S. Berkowitz, Naval Ship Res Dev Ctr, Wash DC].
(1994-11-29)

pistol
[IBM] A tool that makes it all too easy for you to shoot yourself in the foot. "Unix "rm *" makes such a nice pistol!"
[{Jargon File}]

pit
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.
[{Jargon File}]

pjpeg
PJPEG
{Progressive JPEG}

pk
[networking] The {country code} for Pakistan.
(1999-01-27)

pke
PKE
{public-key encryption}

pki
PKI
{Public Key Infrastructure}

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

pl cornell
PL Cornell
{Programming Language/Cornell}

pl1
PL1
[spelling] It's spelled "{PL/I}".
(1996-12-13)

pl1
PL/1
[spelling] It's spelled "{PL/I}".
(1996-12-13)

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

pl6
PL-6
A {PL/I}-like system language for the {Honeywell} {operating system}, {CP-6}.
(1995-01-05)

pl8
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
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
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
PLAGO
A translator-interpreter for a PL/I subset. "PLAGO/360 User's Manual, Poly Inst Brooklyn.

plaid screen
[XEROX PARC] A "special effect" that occurs when certain kinds of {memory smash}es overwrite the control blocks or image memory of a bit-mapped display. The term "salt and pepper" may refer to a different pattern of similar origin. Though the term as coined at PARC refers to the result of an error, some of the {X} demos induce plaid-screen effects deliberately as a {display hack}.
[{Jargon File}]

plain
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
plain ASCII
/playn-as'kee/ {flat ASCII}.
[{Jargon File}]

plain old documentation
Plain Old Documentation
[text] (pod, occasionally "POD") A simple {markup language} used to embed {documentation}, {literate programming}-style, in {Perl} programs. Pod readers and converters are part of the standard Perl distribution and the documentation provided with Perl is all in pod format.
{The Pod Specification (http://www.perl.com/CPAN-local/doc/manual/html/pod/perlpod.html)}.
(1998-12-18)

plain old telephone service
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
Plain Old Telephone System
{Public Switched Telephone Network}

plain tex
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
PLAN
[language] Programming LANguage Nineteen hundred.
The {assembly language} for {ICL 1900} series computers.
(1995-03-21)

plan
.plan
[operating system] See {plan file}.

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

plan file
[operating system] On {Unix} systems that support {finger}, the ".plan" file in a user's {home directory} is displayed when the user is fingered. This feature was originally intended to be used to keep potential fingerers apprised of one's location and near-future plans, but has been turned almost universally to humorous and self-expressive purposes (like a {sig block}). See also {Hacking X for Y}.
A later innovation in plan files was the introduction of "scrolling plan files" which are one-dimensional animations made using only the printable {ASCII} character set, {carriage return} and {line feed}, avoiding terminal specific {escape sequences}, since the {finger} command will (for security reasons; see {letterbomb}) not pass the {escape} character.
Scrolling .plan files have become art forms in miniature, and some sites have started competitions to find who can create the longest running, funniest, and most original animations. A compiler (ASP) is available on {Usenet} for producing them. Typical animation components include:
Centipede: mmmmme Lorry/Truck: oo-oP Andalusian Video Snail: _@/
In the mid-1990s {WWW} {home pages} largely supplanted .plan files, providing a much richer forum for the publication of personal minutiae and digital creativity.
See also {twirling baton}.
[{Jargon File}]
(1998-01-16)

planet
Planet
["An Experiment in Language Design for Distributed Systems", D. Crookes et al, Soft Prac & Exp 14(10):957-971 (Oct 1984)].

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

plankalkul
Plankalkul
[language, history] (Or "Plankalkuel" if you don't have umlauts). The first programming language, designed by {Konrad Zuse}, ca. 1945. Zuse wrote "Rechenplan allgemeiner Struktur" in 1944 which developed into Plankalkul. Plankalkul included {arrays} and {records} and used a style of {assignment} in which the new value appears on the right.
Zuse wrote Plankalkul for his {Z3} computer (finished before 1945) and implemented it on there as well. Much of his work may have been either lost or confiscated in the aftermath of World War II.
{ESR Plankalkul (http://www.tuxedo.org/~esr/retro/plankalkuel/)}.
["The Plankalkul of Konrad Zuse", F.L. Bauer et al, CACM 15(7):678-685, Jul 1972].
(2002-05-28)

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

planner73
Planner-73
The original name for {PLASMA}.

plans
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
PLASMA
PLAnner-like System Modelled on Actors. {Carl Hewitt}, 1975. The first {actor} language. Originally called Planner-73, and implemented in MacLisp. Lisp-like syntax, but with several kinds of parentheses and brackets.
["A PLASMA Primer", B. Smith et al, AI Lab Working Paper 92, MIT Oct 1975].
["Viewing Control Structures as Patterns of Passing Messages", C. Hewitt, AI Lab Memo 410, MIT 1976].

plastic pin grid array
Plastic Pin Grid Array
[hardware, processor] (PPGA) The package used for certain {Intel} {Celeron} {processors}. PPGA processors fit into {Socket 370} {motherboard} sockets.
The Plastic {Pin Grid Array} packaging is similar to that used on {Pentium} processors. The {silicon} {core} is covered by a {heat slug} that faces down toward the {motherboard}.
The Celeron 300A to the 533 use a PPGA package. The Celeron 566 onward use a {FC-PGA} package.
Celeron processors are also available in {Slot 1} {SEPP} packaging.
(2000-08-26)

platform
Specific computer hardware, as in the phrase "platform-independent". It may also refer to a specific combination of hardware and {operating system} and/or {compiler}, as in "this program has been ported to several platforms". It is also used to refer to support software for a particular activity, as in "This program provides a platform for research into routing protocols".
(1994-12-07)

platform for internet content selection
Platform for Internet Content Selection
[World-Wide Web] (PICS) A standard for {meta-data} associated with {World-Wide Web} content, originally designed to help parents and teachers control what children access on the Internet, but also used for {code signing} and privacy. The PICS platform is one on which other rating services and filtering software have been built.
{(http://www.w3.org/PICS}).
(2001-03-29)

platform independent graphical user interface
Platform Independent Graphical User Interface
(PIGUI) {The PIGUI FAQ (ftp://rtfm.mit.edu/pub/usenet/news.answers/portable-GUI-software/)}.
[Summary?]
(1994-11-22)

platinumiridium
platinum-iridium
[standard] A standard, against which all others of the same category are measured. Usage: silly.
The notion is that one of whatever it is has actually been cast in platinum-iridium alloy and placed in the vault beside the Standard Kilogram at the International Bureau of Weights and Measures near Paris, as the bar defining the standard {metre} once was.
"This {garbage collection} {algorithm} has been tested against the platinum-iridium cons cell in Paris."
Compare {golden}.
[{Jargon File}]
(1997-02-20)

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

play inc
Play, Inc.
[company] The company which designed and markets {Snappy Video Snapshot}.
{Home (http://www.play.com)}.
(1997-07-11)

playground
Playground
A visual language for children, developed for Apple's Vivarium Project. OOPSLA 89 or 90?

playpen
(IBM) A room where programmers work.
Compare {salt mines}.
[{Jargon File}]

playstation
Playstation
[games, hardware] The leading family of {games consoles}, from {Sony Corporation} consisting of the original Playstation (PS1) and the Playstation 2 (PS2).
The basic Playstations consist of a small box containing the processor and a {DVD} reader, with video outputs to connect to a TV, sockets for two game controllers, and a socket for one or two memory cards. The PS2 also has {USB} sockets.
The PS2 can run PS1 software because the PS2's I/O processor is the same as the PS1's CPU.
{Home (http://www.scea.sony.com/playstation/)}.
{FAQ (http://www.flex.net/users/cjayc/vgfa/system/sony_psx.txt)}.
[Dates? Features?]
(2003-07-29)

playte
[data, jargon] /playt/ 16 {bits}, by analogy with {byte}. Usage: rare and extremely silly.
See also {dynner}, {crumb}.
[{Jargon File}]
(1997-12-03)

plc
PLC
{Programmable Logic Controller}

plc
PL/C
{Programming Language/Cornell}

pld
PLD
{Programmable Logic Device}

plenum cable
[hardware] Cable that can be (legally) installed in the plenum (the space between a ceiling and the floor above it). Such cable is (usually) teflon-coated so that it will not give off toxic fumes when burned. In some parts of the world such cable is required by law.
(1996-08-25)

pleonasm
Redundancy of expression; tautology.
(1995-03-25)

plesiochronous
[communications] Nearly synchronised, a term describing a communication system where transmitted signals have the same nominal digital rate but are synchronised on different clocks.
According to {ITU-T} {standards}, corresponding signals are plesiochronous if their significant instants occur at nominally the same rate, with any variation in rate being constrained within specified limits.
[Pronunciation? /ples'ee-oh-kroh'nus/?]
(1995-03-02)

plesiochronous digital hierarchy
Plesiochronous Digital Hierarchy
[communications] (PDH) A transmission system for voice communication using {plesiochronous} synchronisation.
PDH is the conventional {multiplexing} technology for network transmission systems. The transmitter adds dummy information bits to allow multiple 2-Mbit/s channels to be bit interleaved. The receiver discards these bits once the signals have been demultiplexed. [Is this correct?]
PDH is being replaced by {SONET} and other SDH ({Synchronous Digital Hierarchy}) schemes. Service levels are described with terms like {DS1}, as in {ISDN}.
(2001-04-27)

pleuk grammar development system
Pleuk grammar development system
[grammar, tool] A {shell} for {grammar} development by Jo Calder [jcalder@cs.sfu.ca], Kevin Humphreys [kwh@cogsci.ed.ac.uk], Chris Brew [Chris.Brew@edinburgh.ac.uk], and Mike Reape [mreape@cs.tcd.ie]. It handles various grammatical formalisms and requires {SICStus Prolog} version 2.1#6 or later.
Current version: 1.0, as of 1993-06-18.
{(ftp://ai.uga.edu/ai.natural.language/)}.
E-mail: [pleuk@cogsci.ed.ac.uk].
(2000-07-22)

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

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

pli subset
PL/I SUBSET
An early 70's version of {PL/I} for {minicomputer}s.

pli subset g
PL/I Subset G
("General Purpose") The commercial {PL/I} subset, i.e. what was actually implemented by most vendors. ANS X3.74-1981.

pliformac
PL/I-FORMAC
[language] A variant of {FORMAC}.
["The PL/I-FORMAC Interpreter", J. Xenakis, Proc 2nd Symp Symbolic and Algebraic Manip, ACM, Mar 1971].
[Sammet 1969, p. 486].
[Details? Relatonship to {PL/I}?]
(1994-10-25)

pling
[character] {exclamation mark}.
[Does anyone call {vertical bar} ("|", broken or unbroken) "pling"?]
(1998-09-20)

plingnet
{UUCPNET}. See also {pling}.
[{Jargon File}]

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

plits
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
PLL
{phase-locked loop}

plm
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
PLMK
[chat] please let me know.
(1999-09-27)

plokta
/plok't*/ Press Lots Of Keys To Abort. To press random keys in an attempt to get some response from the system. One might plokta when the abort procedure for a program is not known, or when trying to figure out if the system is just sluggish or really hung. Plokta can also be used while trying to figure out any unknown key sequence for a particular operation. Someone going into "plokta mode" usually places both hands flat on the keyboard and mashes them down, hoping for some useful response.
A slightly more directed form of plokta can often be seen in mail messages or {Usenet} articles from new users - the text might end with
^X^C q quit :q ^C end x exit ZZ ^D ? help
as the user vainly tries to find the right exit sequence, with the incorrect tries piling up at the end of the message.
[{Jargon File}]

plonk
[networking, abuse] (Possibly influenced by British slang "plonk" for cheap booze, or "plonker" for someone behaving stupidly; usually written "*plonk*") The sound a {newbie} makes as he falls to the bottom of a {kill file}. While this term originated in the {Usenet} {newsgroup} {news:talk.bizarre}, by 1994 it was widespread on Usenet and mailing lists as a form of public ridicule.
Another theory is that it is an acronym for "Person with Little Or No Knowledge".
(2002-01-18)

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)

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

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

pls
PL/S
{Programming Language/Systems}

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

plsql
PL/SQL
{Procedural Language/SQL}

pltl
PLTL
{Propositional Linear Temporal Logic}

plug and play
[jargon] 1. Hardware or software that, after being installed ("plugged in"), can immediately be used ("played with"), as opposed to hardware or software which requires configuration.
See also {turnkey}, {plug and pray}.
2. A new recruit who needs no training. "The new guy, John, is great. He's totally plug-and-play."
(1997-03-30)

plug and pray
[humour] The {Windows 95} equivalent of the {Macintosh}'s {plug and play}, referring to difficulties encountered when setting up new {hardware} under Windows 95.
(1997-10-11)

plug compatible manufacturer
Plug Compatible Manufacturer
[company] (PCM) A manufacturer of equipment that some other manufacturer's system can identify and work with. The PCM's device replaces the original manufacturer's.
Most PCMs competed with {IBM}. PCM devices normally offer a cost-performance benefit over the original device. For example, several PCM versions of the {Direct-Access Storage Device} {IBM 3350} offered twice the storage and improved data access (dual port).
Plug compatible devices include replacement {CPU}s, such as the {Hitachi 7/90} series (which could be substituted for {IBM 3090} series processors), {I/O} subsystems, and {dumb terminals} like the {IBM 3270}.
[Used outside mainframe market?]
(2003-06-24)

pluggable authentication module
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.
[{Jargon File}]
(1996-04-01)

plugin
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
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
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.
[{Jargon File}]
(1995-02-23)

plural eulisp
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
PLUS
Late 60's. Machine-oriented systems language used internally by Univac.

plus
+
Common: {ITU-T}: plus; add. Rare: cross; {INTERCAL}: intersection.

pluss
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
PM
1. {preventive maintenance}.
2. {Presentation Manager}
3. ["PM, A System for Polynomial Manipulations", G.E. Collins, CACM 9(8):578-589 (Aug 1966)].
[{Jargon File}]

pm
[networking] The {country code} for St. Pierre and Miquelon.
(1999-01-27)

pm2
[language, compiler] A software emulator for parallel random access machine (PRAM) and a parallel {Modula-2} compiler for the emulator. pm2 programming language is Modula-2/Pascal mixture having extensions for parallel execution in a PRAM. Parallelism is expressed by pardo-loop-structure. Additional features include private/shared variables, two synchronisation strategies, load balancing and parallel dynamic memory allocation.
{(ftp://cs.joensuu.fi/pub/Software/pram/)}.
E-mail: Simo Juvaste [sjuva@cs.joensuu.fi].
(1997-06-04)

pmail
P-mail
Physical mail, as opposed to {e-mail}. Synonymous with {snail-mail}.
[{Jargon File}]

pmbx
PMBX
{Private Manual Branch EXchange}

pmc
PMC
{PCI Mezzanine Card}

pml
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].
[{Jargon File}]
(1994-11-01)

png
PNG
{Portable Network Graphics}

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

pnuprolog
PNU-Prolog
A parallel extension of NU-Prolog, implemented as a preproccessor.
{(ftp://munnari.oz.au/pub/bebop.tar.Z)}.

pob
PoB
{Prisoner of Bill}

poc
POC
{Point Of Contact}

pocal
POCAL
PETRA Operator's CommAnd Language.

pocket calculator
[computer] A small battery-powered digital electronic device for performing simple arithmetic operations on data input on a keypad and outputting the result (usually a single number) to a simple {LCD} or other display.
The most sophisticated programmable calculators are really {pocket computers} which are limited to handling numerical data only.
(1996-12-23)

pocket computer
{palmtop}

pod
Not to be confused with {P.O.D.}.
1. [printer] (Allegedly from abbreviation POD for "Prince Of Darkness") A {Diablo} 630 (or, latterly, any {letter-quality} {impact printer}). From the {DEC-10} {PODTYPE} program used to feed formatted text to it.
2. [text] {Plain Old Documentation}.
[{Jargon File}]
(1998-12-18)

pod
P.O.D.
[data] Piece Of Data (as opposed to {code}).
[{Jargon File}]
(2000-04-08)

poe
POE
{PowerOpen Environment}

pofac
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
POGO
Early system on G-15. Listed in CACM 2(5):16 (May 1959).

point
1. [unit, text] (Sometimes abbreviated "pt") The unit of length for {text} {characters}. There are six slightly different definitions: {Truchet point}, {Didot point}, {ATA point}, {TeX point}, {Postscript point}, and {IN point}.
The most commonly used are ATA in the USA and Didot in Europe.
A {twip} is 1/20 of a PostScript[?] point.
{Different point systems (http://www.vakcer.com/oberon/dtp/fonts/point.htm)}.
(2002-03-10)
2. [hardware] To move a {pointing device} so that the on-screen pointer is positioned over a certain object on the screen such as a {button} in a {graphical user interface}. In most {window systems} it is then necessary to {click} a (physical) button on the pointing device to activate or select the object. In some systems, just pointing to an object is known as "mouse-over" {event} which may cause some help text (called a "tool tip" in {Windows}) to be displayed.
(2001-05-21)

point of contact
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)

pointanddrool interface
point-and-drool interface
[abuse] (Or "point-and-grunt interface") A parody of "{point-and-shoot interface}", describing a windows, icons, and mouse-based ({WIMP}) {graphical user interface}. The implication, of course, is that such an interface is only suitable for idiots.
See {for the rest of us}, {WIMP}, {drool-proof paper}.
[{Jargon File}]
(2000-08-08)

pointandgrunt interface
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 backward from which we may never recover.
[C.A.R.Hoare "Hints on Programming Language Design", 1973, Prentice-Hall collection of essays and papers by Tony Hoare].
2. [operating system] (Or "mouse pointer") An {icon}, usually a small arrow, that moves on the screen in response to movement of a {pointing device}, typically a {mouse}. The pointer shows the user which object on the screen will be selected etc. when a mouse button is clicked.
(1999-07-07)

pointer swizzling
{swizzle}

pointing device
[hardware] Any hardware component that allows a user to input spatial data to a computer. {CAD} systems and {Graphical User Interfaces} (GUI) allow the user to control and provide data to the computer using physical "gestures" - {point}, {click}, and {drag} - typically by moving a hand-held {mouse} across the surface of the physical desktop and activating switches on the mouse. Movements of the pointing device are echoed on a graphical representation of a desktop on the screen by movements of the {mouse pointer} and other visual changes.
While the most common pointing device by far is a mouse, other kinds include {tracker ball}, {trackpad}, {lightpen}, various kinds of {digitising tablets} which use a stylus, and even a special "{data glove}" that translates the user's movements to computer gestures.
(1997-02-03)

pointing stick
{TrackPoint}

pointtopoint protocol
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)

pointtopoint tunneling protocol
Point-to-Point Tunneling Protocol
[communications, protocol] (PPTP) A {tunneling protocol} for connecting {Windows NT} {clients} and {servers} over {Remote Access Services} (RAS). PPTP can be used to create a {Virtual Private Network} between computers running NT. It is an extension of {PPP} sponsored by {Microsoft}.
{Microsoft Point to Point Encryption} may be used with PPTP to provide an encrypted connection but PPTP itself does not use encryption.
Compare: {Layer Two Tunneling Protocol}.
[Origin? Standard? Document?]
(1998-09-23)

poisson distribution
Poisson distribution
[mathematics] A {probability distribution} used to describe the occurrence of unlikely events in a large number of independent trials.
Poisson distributions are often used in building simulated user loads.
[Formula?]
(2003-03-18)

poke
The {BASIC} command to write a value to an absolute address.
See {peek}.
[{Jargon File}]
(1995-01-31)

polka
Polka
[language] An {object-oriented} parallel {logic programming} language, built on top of {Parlog}.
["Polka: A Parlog Object-Oriented Language", Andrew Davison, TR, Parlog Group, Imperial College, London 1988].
(1995-01-31)

poll
To check the status of an input line, sensor, or memory location to see if a particular external event has been registered.
Contrast {interrupt}.
[{Jargon File}]
(1995-01-31)

polling
{poll}

poly
Poly
[language] 1. A {polymorphic}, {block-structured} language developed by D.C.J. Matthews at Cambridge in the early 1980s.
["An Overview of the Poly Programming Language", D.C.J. Matthews, in Data Types and Persistence, M.P. Atkinson et al eds, Springer 1988].
2. A language developed at Saint Andrews University, Scotland.
[Software Practice & Exp, Oct 1986].
3. A {polymorphic} language used in the referenced book.
["Polymorphic Programming Languages", David M. Harland, Ellis Horwood 1984].
(2000-11-07)

polygon pusher
(Or "rectangle slinger"). A chip designer who spends most of his or her time at the physical layout level (which requires drawing *lots* of multi-coloured polygons).
[{Jargon File}]

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

polyml
Poly/ML
[language] {SML} implemented in D.C.J. Matthews's {Poly}, for {Motorola 68020} and {SPARC} by Abstract Hardware Ltd.
(1999-11-23)

polymorphic
{polymorphism}

polymorphic lambdacalculus
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
[theory, programming] 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 a {variable} that may refer to objects whose {class} is not known at {compile time} and which respond at {run time} according to the actual class of the object to which they refer.
(2002-08-08)

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

polynomialtime
polynomial-time
[complexity] (P) The set or property of problems which can be solved by a known {polynomial-time algorithm}.
(1995-04-10)

polynomialtime algorithm
polynomial-time algorithm
[complexity] A known {algorithm} (or {Turing Machine}) that is guaranteed to terminate within a number of steps which is a {polynomial} function of the size of the problem.
See also {computational complexity}, {exponential time}, {nondeterministic polynomial-time} (NP), {NP-complete}.
(1995-04-13)

polyvinyl chloride
[hardware] (PVC) A common plastic used for insulating and jacketing many wire and cable products.
(2001-03-26)

pom
POM
{phase of the moon}
Usually used in the phrase "POM-dependent", which means {flaky}.
(1995-04-10)

ponder
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
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
POOL
Parallel Object-Oriented Language.
A series of languages from {Philips Research Labs}.
See {POOL2}, {POOL-I}, {POOL-T}.
(1995-02-07)

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

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

poolt
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
POP
1. [language] A family of programming languages, {POP-1}, {POP-2}, {POP-10}, {Pop-11}, {POP++}, {POP-9X}, {POPLOG}.
2. {Post Office Protocol}.
See also {pop}, {PoP}.
[{Jargon File}]
(1996-02-18)

pop
PoP
[networking] {Point Of Presence}.
[{Jargon File}]
(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}.
[{Jargon File}]
(1996-02-18)

pop
POP++
An object-oriented extension of {POPLOG}. Available from Integral Solutions.
[{Jargon File}]

pop server
POP server
{Post Office Protocol}

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

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

pop11
Pop-11
[language] A programming language created by Robin Popplestone in 1975, originally for the {PDP-11}. Pop-11 is {stack-oriented}, extensible, and efficient like {FORTH}. It is also {functional}, {dynamically typed}, {interactive}, with {garbage collection} like {LISP}, and the {syntax} is {block structured} like {Pascal}.
["Programming in POP-11", J. Laventhol [jcl@deshaw.com], Blackwell 1987].
AlphaPop is an implementation for the {Macintosh} from Computable Functions Inc. PopTalk and POPLOG from the University of Sussex are available for {VAX/VMS} and most {workstations}.
E-mail: Robin Popplestone [pop@cs.umass.edu]
(2003-03-25)

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

pop9x
POP-9X
Proposed {BSI} standard for {Pop-11}.

popart
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
POPCORN
AI system built on POP-2. "The POPCORN Reference Manual", S. Hardy, Essex U, Colchester, 1973.

popdown menu
pop-down menu
{pull-down menu}

popj
POPJ
/pop'J/ [{PDP-10} return-from-subroutine instruction]. To return from a digression. By verb doubling, "Popj, popj" means roughly "Now let's see, where were we?" See {RTI}.
[{Jargon File}]

poplar
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
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
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
POPLOG ML
{SML} for the {Poplog} system from the University of Sussex, UK.

poptalk
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, machines, or other props. Some say it degrades women, some say it corrupts young boys (who down-load it from the {World-Wide Web} or exchange it on {floppy disks}). Most of it is in the form of {JPEG} images. There are many sites on the {World-Wide Web} offering porn of all sorts, almost always for a subscription. It is said that these are a driving force in the evolution of new technology and techniques for the web. Advertisments for them certainly constitute a significant proportion of all {spam}. There are even pornographic computer games, an early example being {Mac Playmate}.
Beware - many institutions, particularly universities, have strict rules against their computers and networks being used to transfer or store such things, and you might get corrupted.
(2002-03-08)

port
1. [networking] A logical channel or channel endpoint in a communications system. The {Transmission Control Protocol} and {User Datagram Protocol} {transport layer} protocols used on {Ethernet} use port numbers to distinguish between (demultiplex) different logical channels on the same {network interface} on 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.
Some port numbers are defined in {RFC 1700}, divided into {well-known ports} and {registered ports}.
2. [operating system, programming] To translate or modify {software} to run on a different {platform}, or the results of doing so. The {portability} of the software determines how easy it is to port.
3. [language] An {imperative} language descended from {Zed} from {Waterloo Microsystems} (now {Hayes} Canada) ca. 1979.
["Port Language" document in the Waterloo Port Development System].
(2002-06-19)

port address translation
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)

port language
Port Language
["Communicating Parallel Processes", J. Kerridge et al, Soft Prac & Exp 16(1):63-86 (Jan 1986)].

port number
{port}

portability
[operating system, programming] The ease with which a piece of software (or {file format}) can be "ported", i.e. made to run on a new {platform} and/or compile with a new {compiler}.
The most important factor is the language in which the software is written and the most portable language is almost certainly {C} (though see {Vaxocentrism} for counterexamples). This is true in the sense that C compilers are available for most systems and are often the first compiler provided for a new system. This has led several compiler writers to compile other languages to C code in order to benefit from its portability (as well as the quality of compilers available for it).
The least portable type of language is obviously {assembly code} since it is specific to one particular (family of) {processor}(s). It may be possible to translate mechanically from one assembly code (or even {machine code}) into another but this is not really portability. At the other end of the scale would come {interpreted} or {semi-compiled} languages such as {LISP} or {Java} which rely on the availability of a portable {interpreter} or {virtual machine} written in a lower level language (often C for the reasons outlined above).
The act or result of porting a program is called a "port". E.g. "I've nearly finished the {Pentium} port of my big bang simulation."
Portability is also an attribute of {file formats} and depends on their adherence to {standards} (e.g. {ISO 8859}) or the availability of the relevant "viewing" software for different {platforms} (e.g. {PDF}).
(1997-06-18)

portable
{portability}

portable airtime
Portable AIRTIME
[communications, wireless] A wireless, digital communications system enabling user-to-user voice communication, "{quicknotes}", and {alphanumeric messaging}.
[Details?]
(2000-12-07)

portable commodore 64
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
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
Portable Common Tool Environment
[tool] (PCTE) An {ECMA} standard framework for software tools developed in the {Esprit} programme. It is based on an {entity-relationship} {Object Management System} and defines the way in which tools access this.
(2001-03-03)

portable document format
Portable Document Format
[file format] (PDF) The native file format for {Adobe Systems}' {Acrobat}. PDF is the file format for representing documents in a manner that is independent of the original application software, hardware, and operating system used to create those documents. A PDF file can describe documents containing any combination of text, graphics, and images in a device-independent and {resolution} independent format. These documents can be one page or thousands of pages, very simple or extremely complex with a rich use of {fonts}, graphics, colour, and {images}.
{Home (http://www.adobe.com/products/acrobat/adobepdf.html)}.
["The Portable Document Format Reference Manual", Adobe systems, Inc. Addison-Wesley Publ. Co., ISBN: 0-201-62628-4].
(2000-09-08)

portable forth environment
Portable Forth Environment
[language] (PFE) A highly {portable} {Forth} development system based on the {ANSI} standard for Forth, by Dirk-Uwe Zoller of FHT, Mannheim, Germany. PFE aims to be correct, complete, usable, and simple but it isn't optimised for speed. It supports all {dpANS} {word sets}. It runs on {Linux}, {RS/6000}, and {HP-UX}.
{Tektronix} adopted PFE in 1998 and added {modules} and {multithreading}. You can load additional {C} objects at {run time} to extend the Forth {dictionary}. It can be targeted at different embedded environments by changing the terminal driver and initilisation routines.
Current version: 0.30.27 preview, as of 2000-11-23.
{Home (http://pfe.sourceforge.net/)}.
E-mail: Guido Draheim [guidod@gmx.de].
(2000-12-07)

portable network graphics
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
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
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
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
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
Portable Standard Lisp
[language] (PSL) A dialect of {Lisp} from {Utah University}. PSL is available as a kit for {68000} and also runs on {VAX}. It compiles {Lisp} to {C}-code {virtual machine} language.
["The Portable Standard LISP Users Manual", TR-10, CS Dept, U Utah, Jan 1982].
["A Portable Lisp System", M.L. Griss et al, Proc 1982 ACM Symp on Lisp and Functional Prog, Aug 1982].
(2000-09-25)

portable tool interface
Portable Tool Interface
[programming, standard] (PTI) A standard such as {PCTE}, allowing interworking between different software tools via defined interfaces to the user and to the {repository} or {object management system}.
(2000-09-25)

portal
PORTAL
Process-Oriented Real-Time Algorithmic Language.
["PORTAL - A Pascal-based Real-Time Programming Language", R. Schild in Algorithmic Languages, J.W. deBakker et al eds, N-H 1981].

portal
[World-Wide Web] A {web site} that aims to be an entry point to the {World-Wide Web}, typically offering a {search engine} and/or links to useful pages, and possibly news or other services. These services are usually provided for free in the hope that users will make the site their default {home page} or at least visit it often. Popular examples are {Yahoo} and {MSN}. Most portals on the {Internet} exist to generate advertising income for their owners, others may be focused on a specific group of users and may be part of an {intranet} or {extranet}. Some may just concentrate on one particular subject, say technology or medicine, and are known as a {vertical portals}.
(2001-07-07)

porting
Translating software to run on a different computer and/or {operating system}.
(1995-01-06)

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
POS
{point of sale}

pose
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
POSIX
{Portable Operating System Interface}

post
POST
{power-on self-test}

post
[messaging] To send a message to a {mailing list} or {newsgroup}. Usually implies that the message is sent indiscriminately to multiple users, in contrast to "mail" which implies one or more deliberately selected individual recipients.
You should only post a message if you think it will be of interest to a significant proportion of the readers of the group or list, otherwise you should use private {electronic mail} instead. See {netiquette}.
[{Jargon File}]
(1997-12-04)

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
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 telephone and telegraph administration
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)

postcardware
{Shareware} that borders on {freeware}, in that the author requests only that satisfied users send a postcard of their home town or something. (This practice, silly as it might seem, serves to remind users that they are otherwise getting something for nothing, and may also be psychologically related to real estate "sales" in which $1 changes hands just to keep the transaction from being a gift.)
[{Jargon File}]

posted writethrough
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
Postel, Jon
{Jon Postel}

postfix notation
[language] (Or "Reverse Polish Notation", RPN) One of the possible orderings of {functions} and {operands}: in postfix notation the functions are preceded by all their operands. For example, what may normally be written as "1+2" becomes "1 2 +". Postfix notation is well suited for {stack} based {architectures} but modern {compilers} reduced this advantage considerably.
The best-known language with postfix syntax is {FORTH}. Some {Hewlett-Packard} calculators use it, e.g. HP-25, HP-29C, HP-41C, HP-23SII.
Compare: {infix notation}, {prefix notation}.
(2003-06-23)

postfix syntax
{postfix notation}

postgres
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
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.
[{Jargon File}]

postmaster
The {electronic mail} contact and maintenance person at a site connected to the {Internet} or {UUCPNET}. Often, but not always, the same as the {admin}. The Internet standard for electronic mail ({RFC} 822) requires each machine to have a "postmaster" address; usually it is aliased to this person. See also {webmaster}.

postorder traversal
post-order traversal
{traversal}

postquel
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
PostScript
[language, text, graphics] A {page description language} based on work originally done by John Gaffney at Evans and Sutherland in 1976, evolving through "JaM" ("John and Martin", Martin Newell) at {XEROX PARC}, and finally implemented in its current form by John Warnock et al. after he and Chuck Geschke founded {Adobe Systems, Inc.} in 1982.
PostScript is an {interpreted}, {stack-based language} (like {FORTH}). It was used as a page description language by the {Apple LaserWriter}, and now many {laser printers} and on-screen graphics systems. Its primary application is to describe the appearance of text, graphical shapes, and sampled {images} on printed or displayed pages.
A program in PostScript can communicate a document description from a composition system to a printing system in a device-independent way.
PostScript is an unusually powerful printer language because it is a full programming language, rather than a series of low-level escape sequences. (In this it parallels {Emacs}, which exploited a similar insight about editing tasks). It is also noteworthy for implementing on-the fly {rasterisation}, from {Bezier curve} descriptions, of high-quality {fonts} at low (e.g. 300 dpi) resolution (it was formerly believed that hand-tuned {bitmap fonts} were required for this task).
PostScript's combination of technical merits and widespread availability made it the language of choice for graphical output until {PDF} appeared.
The {Postscript point}, 1/72 inch, is slightly different from other {point} units.
{An introduction
(http://www.cs.indiana.edu/docproject/programming/postscript/postscript.html)}.
["PostScript Language Reference Manual" ("The Red Book"), Adobe Systems, A-W 1985].
[{Jargon File}]
(2002-03-11)

postscript point
Postscript point
[unit, text] The variant of the {point} used by {Postscript}, equal to 0.3527777778 mm, or 1/72 inch.
(2002-03-11)

posybl
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
POTS
{Plain Old Telephone Service}

pound
{hash}

pound on
{bang on}

pound sign
{hash}

pounds
(pounds)
{pound}

power
POWER
Performance Optimization with Enhanced RISC. The {IBM} processor architecture on which {PowerPC} was based.

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.
[{Jargon File}]

power hit
(Or "power {glitch}") A sudden increase (spike) or decrease (drop-out) in the mains electricity supply. These can cause crashes and even permanent damage to computers. Computers and other electronic equipment should really include some kind of over-voltage protection in its mains input to prevent such damamge.
[{Jargon File}]

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

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)

powerbuilder
PowerBuilder
[tool, database] A {graphical user interface} development tool from {Powersoft} for developing {client-server} {database} {applications}. It runs under {MS-DOS}(?) and {Microsoft Windows}. There are also versions for {Microsoft Windows}, {Windows NT}, {Macintosh}, and {Unix}.
Applications can be built by creating {windows}, controls (such as {listboxes} and {buttons}), and {menus} within the PowerBuilder development environment. The language used to program PowerBuilder, {PowerScript}, is loosely based on {BASIC}.
PowerBuilder supports programming on many database backends including {Sybase} and {Oracle}. It also has added support for {ODBC} database drivers. PowerBuilder also comes with a built-in database backend ({WATCOM} {SQL} 32-bit {relational database}).
{Product information (http://www.powersoft.com/mktg/prodinfo/prodintr.html)}.
{FAQ (ftp://ftp.oar.net/pub/psoft/pb01.faq)}.
{Usenet} newsgroup: {news:comp.soft-sys.powerbuilder}.
[Correct list of platforms?]
(2001-03-23)

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
PowerFuL
[language] A language combining {functional programming} and {logic programming}, using "angelic Powerdomains".
(1998-06-30)

powermac
PowerMac
{Power Macintosh}

poweron selftest
power-on self-test
[hardware] (POST) A sequence of diagnostic tests that are run automatically by a device when the power is turned on.
In a {personal computer} a typical POST sequence does the following:
- checks that the {system board} is working
- checks that the {memory} is working
- compares the current system configuration with that recorded by the PC's configuration program to see if anything has been added or removed or broken
- starts the video operation
- checks that the {diskette} drive, {hard disk drive}, {CD-ROM} drive, and any other drives that may be installed are working.
When POST is finished, typically it will {beep}, and then let your {operating system} start to {boot}. If POST finds an error, it may beep more than once (or possibly not at all if it is your PC speaker that is broken) and display a POST error message. These messages are often nothing more than a single ominous number. Some common numbers and their meanings are:
161 Dead battery (get a new battery for the system board)
162 Configuration changed (you added some memory or a new card to the PC)
301 Keyboard error (take the book off the corner of the keyboard)
Because a successful POST indicates that the system is restored to known state, turning the power off and on is a standard way to reset a system whose software has {hung}. Compare {120 reset}, {Big Red Switch}, {power cycle}.
(2001-03-30)

poweropen
PowerOpen
The {PowerOpen Association} defines and promotes the {PowerOpen Environment} (POE).

poweropen association
PowerOpen Association
An independent body established to promote, and test conformance with, the {PowerOpen Environment} (POE).
(1994-11-08)

poweropen environment
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
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 were 32-bit (e.g. {PowerPC 601}); later higher-performance implementations were 64-bit (e.g. PowerPC 620). A PowerPC has 32 integer {registers} (32- or 64 bit) and 32 {floating-point} (IEEE standard 64 bit) {floating-point} registers.
The POWER CPU chip and PowerPC have a (large) common core, but both have instructions that the other doesn't. The PowerPC offers the following features that POWER does not:
Support for running in {little-endian} mode.
Addition of single precision {floating-point} operations.
Control of branch prediction direction.
A hardware coherency model (not in Book I).
Some other {floating-point} instructions (some optional).
The real time clock (upper and lower) was replaced with the time base registers (upper and lower), which don't count in sec/ns (the decrementer also changed).
64-bit instruction operands, registers, etc. (in 64 bit processors).
See also {PowerOpen}, {PowerPC Platform} (PReP).
{IBM PPC info (http://fnctsrv0.chips.ibm.com/products/ppc/index.html)}.
{(gopher://info.hed.apple.com/)}, "Apple Corporate News/" (press releases), "Apple Technologies/" and "Product Information/". {(gopher://ike.engr.washington.edu/)}, "IBM General News/", "IBM Product Announcements/", "IBM Detailed Product Announcements/", "IBM Hardware Catalog/".
{Usenet} newsgroups: {news:comp.sys.powerpc}, {news:comp.sys.mac.hardware}.
["Microprocessor Report", 16 October 1991].
(1994-09-30)

powerpc 601
PowerPC 601
[processor] A 32-bit {RISC} processor with 2.8 million transistors (~1.2 million in the core logic) and 32 kilobytes of on-chip {cache}. Die size: 118.8 mm2. Heat dissipation at 66MHz: 9W. Performance at 66MHz: integer ]60 {SPECint92}, {floating-point} ]80 {SPECfp92}. Estimated manufacturing cost: $76. Maximum instructions per cycle: 3. 32 32-bit general-purpose registers. 32 64-bit {floating-point} registers. Successors: PowerPC 603, 604, 620.
(2000-01-12)

powerpc g3
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
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 Reference Platform
{PowerPC Platform}

powerpoint
Powerpoint
[graphics, tool] A {Microsoft} application for creating presentations, speeches, slides, etc.
(1996-08-26)

powerset
[mathematics] The powerset of a set S is the set of possible subsets of S, usually written PS.
(1994-11-08)

powersoft corporation
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
PP96
[language] A parallel {Pascal} extension.
[Details? Any relation to {Parallel Pascal}?]
(1998-04-29)

ppc
PPC
{PowerPC}

ppcp
PPCP
{PowerPC Platform}

ppd
PPD
{Parallel Presence Detect}

ppga
PPGA
{Plastic Pin Grid Array}

ppl
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
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
PPM
{Portable Pixmap}

ppn
PPN
Project-Programmer Number.
A user-ID under {TOPS-10} and its various mutant progeny at {SAIL}, {BBN}, {CompuServe} and elsewhere. Old-time hackers from the {PDP-10} era sometimes use this to refer to user IDs on other systems as well.
[{Jargon File}]
(1994-11-18)

ppp
PPP
{Point-to-Point Protocol}

pprolog
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
PPTP
{Point-to-Point Tunneling Protocol}

pqs
PQS
{Picture Quality Scale}

pr
PR
{Packet Radio}

pr
[networking] The {country code} for Puerto Rico.
(1999-01-27)

pr0n
{pron}

pra
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
PRAM
[hardware] 1. {parallel random access machine}.
2. {parameter RAM}.

praxis critical systems
Praxis Critical Systems
[company] The company that supplies {SPARK}.
(2001-07-12)

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

precc
PRE-CC
PREttier Compiler-Compiler.
An earlier version of {PRECCX}.
(1995-01-24)

preccx
PRECCX
[tool] (Pre-C-Compiler eXtended) An infinite-{lookahead} {compiler-compiler} by Peter Breuer [ptb@comlab.ox.ac.uk] for {context dependent grammars}. PRECCX generates {ANSI C}. Specification scripts are in very {EBNF} with {inherited attributes} and {synthetic attributes} allowed. Scripts can be compiled in separate {modules} and linked later. {Meta-production rules} are allowed. Grammars can be essentially LL(oo) with optimisations. A converter for {yacc} scripts is available.
Versions 1.xx were known as "PRECC" and only had unbounded lookahead. The 2.xx series added the "X" for "extended" and featured higher order parameterisation (inherited attributes).
Version 2.42 integrates inherited and synthesized attributes by using a "monadic" model for parsing. You can now synthsize attributes during the pass and inherit them in the remainder, e.g.
@ foo = bar\x gum(x)
synthesises an x in bar and passes it down into gum as a parameter. Useful for @ what = ?\x did_you_say(x), for example. It now compiles into {C} instead of running an {interpreter} at parse-time.
Version 2.42 runs under {Unix} and {MS-DOS}.
{Home (http://www.comlab.ox.ac.uk/archive/redo/precc.html)}.
E-mail: Peter Breuer [ptb@comlab.ox.ac.uk], Jonathan Bowen [J.P.Bowen@reading.ac.uk].
["The PRECC Compiler-Compiler" by P.T. Breuer and J.P. Bowen. In E. Davies and A. Findlay (eds.), Proc. UKUUG/SUKUG Joint New Year 1993 Conference, St. Cross Centre, Oxford, UK, 6-8 January 1993, ISBN 1 873611 06 4 (UKUUG), 0 9520700 0 6 (SUKUG) UKUUG/SUKUG Secretariat, Owles Hall, Buntingford, Herts SG9 9PL, UK, pp 167-182, 1993].
(2000-04-24)

precedence 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}.
[{Jargon File}]
(1994-12-16)

precharge
[storage] The phase in the access cycle of {DRAM} during which the storage capacitors are charged to the appropriate value.
(1997-02-23)

precision
[mathematics] The number of decimal places to which a number is computed.
Compare {accuracy}.
(1998-04-19)

predecessor
{parent}

predicate calculus
{predicate logic}

predicate logic
[logic] (Or "predicate calculus") An extension of {propositional logic} with separate symbols for {predicates}, {subjects}, and {quantifiers}.
For example, where propositional logic might assign a single symbol P to the proposition "All men are mortal", predicate logic can define the predicate M(x) which asserts that the subject, x, is mortal and bind x with the {universal quantifier} ("For all"):
All x . M(x)
Higher-order predicate logic allows predicates to be the subjects of other predicates.
(2002-05-21)

predomain
[theory] A {domain} with no {bottom} element.
(1995-05-04)

preemptive multitasking
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 {Syst�me International} (SI) conventions for scientific measurement.
Here are the SI magnifying prefixes, along with the corresponding binary interpretations in common use:
prefix abr decimal binary
yocto- 1000^-8 zepto- 1000^-7 atto- 1000^-6 femto- f 1000^-5 pico- p 1000^-4 nano- n 1000^-3 micro- * 1000^-2 * Abbreviation: Greek mu milli- m 1000^-1
kilo- k 1000^1 1024^1 = 2^10 = 1,024 mega- M 1000^2 1024^2 = 2^20 = 1,048,576 giga- G 1000^3 1024^3 = 2^30 = 1,073,741,824 tera- T 1000^4 1024^4 = 2^40 = 1,099,511,627,776 peta- 1000^5 1024^5 = 2^50 = 1,125,899,906,842,624 exa- 1000^6 1024^6 = 2^60 = 1,152,921,504,606,846,976 zetta- 1000^7 1024^7 = 2^70 = 1,180,591,620,717,411,303,424 yotta- 1000^8 1024^8 = 2^80 = 1,208,925,819,614,629,174,706,176
"Femto" and "atto" derive not from Greek but from Danish.
The abbreviated forms of these prefixes are common in electronics and physics.
When used with bytes of storage, these prefixes usually denote multiplication by powers of 1024 = 2^10 (K, M, and G are common in computing). Thus "MB" stands for megabytes (2^20 bytes). This common practice goes against the edicts of the {BIPM} who deprecate the use of these prefixes for powers of two. The formal SI prefix for 1000 is lower case "k"; some, including this dictionary, use this strictly, reserving upper case "K" for multiplication by 1024 (KB is thus "kilobytes").
Also, in data transfer rates the prefixes stand for powers of ten so, for example, 28.8 kb/s means 28,800 bits per second.
In speech, 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. [Is this true of Commonwealth countries?]
Confusing 1000 and 1024 (or other powers of 2 and 10 close in magnitude) - for example, describing a memory in units of 500K or 524K instead of 512K - is a sure sign of the {marketroid}. For example, 3.5" {microfloppies} are often described as storing "1.44 MB". In fact, this is completely specious. The correct size is 1440 KB = 1440 * 1024 = 1474560 bytes. Alas, this point is probably lost on the world forever.
In 1993, hacker Morgan Burke proposed, to general approval on {Usenet}, the following additional prefixes: groucho (10^-30), harpo (10^-27), harpi (10^27), grouchi (10^30). This would leave the prefixes zeppo-, gummo-, and chico- available for future expansion. Sadly, there is little immediate prospect that Mr. Burke's eminently sensible proposal will be ratified.
2. [language] Related to the {prefix notation}.
(2003-05-06)

prefix notation
[language] (Or "prefix syntax") One of the possible orderings of {functions} and {operands}: in prefix notation the function precedes all its operands. For example, what may normally be written as "1+2" becomes "(+ 1 2)". A few languages (e.g., {lisp}) have strictly prefix syntax, many more employ prefix notation in combination with {infix notation}.
Compare: {postfix notation}.
(2001-02-14)

prefix syntax
{prefix notation}

preorder
pre-order
1. [graph theory] {traversal}.
2. [theory] A {relation} R is a pre-order if it is {reflexive} (x R x) and {transitive} (x R y R z =] x R z). If it is also {antisymmetric} (x R y R x =] x = y) then it is a {partial ordering}.
(2001-10-01)

preorder traversal
pre-order traversal
{traversal}

prep
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.
[{Jargon File}]
(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
Presentation Manager
The {elephantine} graphical user interface to the {OS/2} {operating system}.

prestidigitization
/pres`t*-di"j*-ti:-zay"sh*n/ 1. A term coined by Daniel Klein [dvk@lonewolf.com] for the act of putting something into digital notation via sleight of hand.
["Open Channel", IEEE "Computer", November 1981].
2. Data entry through legerdemain.
[{Jargon File}]
(1994-11-01)

presto
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
Pretty Amazing New Stuff
[humour, communications] (PANS) What {PSTN} is evolving into.
(1996-10-16)

pretty good privacy
Pretty Good Privacy
[tool, cryptography] (PGP) A high security {RSA} {public-key encryption} application for {MS-DOS}, {Unix}, {VAX/VMS}, and other computers. It was written by {Philip R. Zimmermann} [pkz@acm.org] of Phil's Pretty Good(tm) Software and later augmented by a cast of thousands, especially including Hal Finney, Branko Lankester, and Peter Gutmann.
PGP was distributed as "{guerrilla freeware}". The authors don't mind if it is distributed widely, just don't ask Philip Zimmermann to send you a copy. PGP uses a {public-key encryption} {algorithm} claimed by US patent #4,405,829. The exclusive rights to this patent are held by a California company called {Public Key Partners}, and you may be infringing this patent if you use PGP in the USA. This is explained in the PGP User's Guide, Volume II.
PGP allows people to exchange files or messages with {privacy} and {authentication}. Privacy and authentication are provided without managing the keys associated with conventional cryptographic software. No secure channels are needed to exchange keys between users, which makes PGP much easier to use. This is because PGP is based on {public-key cryptography}.
PGP encrypts data using the {International Data Encryption Algorithm} with a random {session key}, and uses the {RSA} algorithm to encrypt the session key.
In December 1994 Philip Zimmermann faced prosecution for "exporting" PGP out of the United States but in January 1996 the US Goverment dropped the case. A US law prohibits the export of {encryption} software out of the country. Zimmermann did not do this, but the US government hoped to establish the proposition that posting an encryption program on a {BBS} or on the {Internet} constitutes exporting it - in effect, stretching export control into domestic censorship. If the government had won it would have had a chilling effect on the free flow of information on the global network, as well as on everyone's privacy from government snooping.
{FAQ (ftp://ftp.netcom.com/pub/mp/mpj/getpgp.asc)}. {UK FTP (ftp://src.doc.ic.ac.uk/packages/pgp/)}. {USA FTP (http://web.mit.edu/network/pgp-form.html)}. {(http://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}.
[{Jargon File}]
(1995-02-15)

prettyprint
/prit'ee-print/ (Or "pretty-print") To generate "pretty" human-readable output from a {hairy} internal representation; especially used for the process of {grind}ing program code.
[{Jargon File}]
(1995-02-15)

pretzel key
{feature key}

preventive maintenance
(PM) To bring down a machine for inspection or test purposes.
See {provocative maintenance}, {scratch monkey}.
(1995-02-15)

pri
PRI
{ISDN} {Primary Rate Interface}.
See also {BRI}
(1994-12-08)

primary cache
[hardware, architecture] (L1 cache, level one cache) A small, fast {cache} memory inside or close to the {CPU} chip.
For example, an {Intel 80486} has an eight-{kilobyte} on-chip cache, and most {Pentiums} have a 16-KB on-chip level one cache that consists of an 8-KB {instruction cache} and an 8-KB {data cache}.
The larger, slower secondary cache is normally connected to the CPU via its external {bus}.
(1997-06-25)

primary domain controller
Primary Domain Controller
[networking] (PDC) Each {Windows NT} {domain} has a Primary Domain Controller and zero or more {Backup Domain Controllers}. The PDC holds the {SAM} database and authenticates access requests from {workstations} and {servers} in the domain.
(2003-07-16)

primary key
[database] The {candidate key} selected as being most important for identifying a body of information (an entity, object or {record}).
(1997-04-26)

primary management domain
[messaging] (PRMD) The component of an {X.400} {electronic mail address} that gives the organisation name, usually abbreviated to p= in written addresses.
See also {ADMD}.
(2003-05-15)

primary rate interface
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
Prime Computer
[company] (Or "Pr1ME") A {minicomputer} manufacturer.
[Dates? Status? Products? Addresses?]
(1996-09-28)

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 Erdos 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.
[{Jargon File}]
(1995-01-18)

primenet inc
Primenet, Inc.
Arizona's {Internet provider}.
(1994-12-08)

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
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
PRINT
[language] PRe-edited INTerpreter.
An early mathematics language for the {IBM 705}.
[Sammet 1969, p. 134].
(1995-05-01)

print i
PRINT I
An early system on {IBM 705}.
[CACM 2(5):16 (May 1959)].

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

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

printing discussion
[XEROX PARC] A protracted, low-level, time-consuming, generally pointless discussion of something only peripherally interesting to all.
[{Jargon File}]

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.
[{Jargon File}]

priority inversion
[parallel] The state of a concurrent system where a high priority task is waiting for a low priority task which is waiting for a medium priority task. The system may become unstable and {crash} under these circumstances.
In an {operating system} that uses multiple tasks, each task (or {context}) may be given a priority. These priorities help the {scheduler} decide which task to run next. Consider tasks, L, M, and H, with priorities Low, Medium, and High. M is running and H is blocked waiting for some resource that is held by L. So long as any task with a priority higher than L is runable, it will prevent task L, and thus task H, from running.
Priority inversion is generally considered either as a high-level design failure or an implementation issue to be taken into account depending on who is talking. Most operating systems have methods in place to prevent or take inversion into account. {Priority inheritance} is one method.
The most public instance of priority inversion is the repeated 'fail-safe' rebooting of the {Mars Pathfinder
(http://research.microsoft.com/~mbj/Mars_Pathfinder/Mars_Pathfinder.html)}. base station ('Sagan Memorial Station').
(2003-06-04)

priority queue
[programming] A data structure with three operations: insert a new item, return the highest priority item, and remove the highest priority item. The obvious way to represent priority queues is by maintaining a sorted list but this can make the insert operation very slow. Greater efficiency can be achieved by using {heaps}.
(1996-03-12)

priority scheduling
[operating system] {Processes scheduling} in which the {scheduler} selects tasks to run based on their priority as opposed to, say, a simple {round-robin}.
Priorities may be static or dynamic. Static priorities are assigned at the time of creation, while dynamic priorities are based on the processes' behaviour while in the system. For example, the scheduler may favour {I/O}-intensive tasks so that expensive requests can be issued as early as possible.
A danger of priority scheduling is {starvation}, in which processes with lower priorities are not given the opportunity to run. In order to avoid starvation, in preemptive scheduling, the priority of a process is gradually reduced while it is running. Eventually, the priority of the running process will no longer be the highest, and the next process will start running. This method is called {aging}.

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

privatekey cryptography
private-key cryptography
[cryptography] As opposed to {public-key cryptography}, a cryptographic method in which the same key is used to encrypt and decrypt the message. Private-key algorithms include the obsolescent {Data Encryption Standard} (DES), triple-DES (3DES), the {Advanced Encryption Standard} (AES), also known as Rijndael, Blowfish, Twofish RC2, {RC4}, RC5 and RC6.
A problem with private-key cryptography is that the emitter and the recipient of the message must agree secretly on a common key beforehands; but how can they do so?
{Public-key cryptography} gives an answer to this problem.
(2003-04-12)

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
PRL
Proof Refinement Logic.
Versions: {micro-PRL}, {lambda-PRL}, {nu-PRL}.
["PRL: Proof Refinement Logic Programmer's Manual", CS Dept, Cornell, 1983].
(1995-01-24)

prmd
PRMD
{primary management domain}

prml
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
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
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] 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.
The term should not be confused with "{imperative language}". An example (non-imperative) procedural language is {LOGO}, which specifies sequences of steps to perform but does not have an internal state.
Other procedural languages include {Basic}, {Pascal}, {C}, and {Modula-2}.
(2003-06-23)

procedural languagesql
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
1. [operating system, software] The sequence of states of an executing {program}. A process consists of the program {code} (which may be shared with other processes which are executing the same program), private data, and the state of the {processor}, particularly the values in its {registers}. It may have other associated resources such as a {process identifier}, open files, {CPU time} limits, {shared memory}, {child processes}, and {signal handlers}.
One process may, on some {platforms}, consist of many {threads}. A {multitasking} {operating system} can run multiple processes {concurrently} or in {parallel}, and allows a process to spawn "child" processes.
(2001-06-16)
2. [business] The sequence of activities, people, and systems involved in carrying out some business or achieving some desired result. E.g. software development process, project management process, configuration management process.
(2001-06-16)

process and experiment automation realtime language
Process and Experiment Automation Real-Time Language
[language] (PEARL) A {real-time} language for programming {process control} systems, widely used in Europe. Size and complexity exceeds {Ada}. Defined in {DIN} 66253 Teil 2.
["Programmiersprache PEARL", Beuth-Verlag, Nov 1980].
(2000-08-16)

process design language 2
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 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)

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)

processor
{central processing unit}

processor direct slot
Processor Direct Slot
[hardware] (PDS) {Apple Computer}'s name for a {local bus} connection. Most {Macintosh}es have only one PDS connector. Different Apple computers have different PDS specifications.
(1995-05-02)

processor farm
[computer, parallel] A {parallel processor} where tasks are distributed, or "farmed out", by one "farmer" processor to several "worker" processors, and results are sent back to the farmer. This arrangement is suitable for {applications} which can be partitioned into many separate, independent tasks, the canonical examples being {ray tracing} and the {Mandelbrot set}. In order to be efficient, the extra time spent on communications must be small compared to the time spent processing each task.
(2001-05-28)

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

procol
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
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
Procrustean string
[programming] A fixed-length {string}. If a string value is too long for the allocated space, it is truncated to fit; and if it is shorter, the empty space is padded, usually with space characters.
This is an allusion to Procrustes, a legendary robber of ancient Attica. He bound his victims to a bed, and if they were shorter than the bed, he stretched their limbs until they would fit; if their limbs were longer, he lopped them off.
(1997-09-12)

prodigy
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
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
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
Professional Office System
[messaging] (PROFS) An office messaging system from {IBM}, used worldwide, mainly on IBM {mainframes}.
(1996-03-23)

professional programming
{paranoid programming}

profile
PROFILE
Simple language for matching and scoring data. "User's Manual for the PROFILE System", Cambridge Computer Assoc (May 1974).
[{Jargon File}]

profile
1. A control file for a program, especially a text file automatically read from each user's home directory and intended to be easily modified by the user in order to customise the program's behaviour. Used to avoid {hard-coded} choices (see also {dot file}, {rc file}).
2. A report on the amounts of time spent in each routine of a program, used to find and {tune} away the {hot 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
PROFS
{Professional Office System}

progeny
PROGENY
1961. Report generator for UNIVAX SS90.

proglet
/prog'let/ [UK] A short extempore program written to meet an immediate, transient need. Often written in BASIC, rarely more than a dozen lines long and containing no subroutines. The largest amount of code that can be written off the top of one's head, that does not need any editing, and that runs correctly the first time (this amount varies significantly according to one's skill and the language one is using). Compare {toy program}, {noddy}, {one-liner wars}.
[{Jargon File}]

program
{software}

program composition notation
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 modelling, fluid dynamics, computational biology, chemistry, and circuit simulation.
Version 2.0 runs on networks of workstations: {Sun-4}, {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
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
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
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)

program temporary fix
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}.

programmable airline reservation system
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
Programmable Array Logic
[hardware] (PAL) A family of fuse-programmable logic {integrated circuits} originally developed by {MMI}. Registered or {combinatorial} output functions are modelled in a {sum of products} form. Each output is a sum (logical or) of a fixed number of products (logical and) of the input signals. This structure is well suited for automatic generation of programming patterns by logic compilers.
PAL devices are programmed by blowing the fuses permanently using overvoltage.
Today, more complex devices based on the same original architecture are available (CPLD's for Complex PLD's) that incorporate the equivalent of several original PAL chips. PAL chips are, however, still popular due to their high speed.
{Generic Array Logic} devices are reprogrammable and contain more {logic gates}.
(1995-12-09)

programmable interrupt controller
Programmable Interrupt Controller
[integrated circuit] {PIC} A special-purpose {integrated circuit} that functions as an overall manager in an {interrupt} driven system. It accepts requests from the {peripheral} equipment, determines which of the incoming requests is of the highest priority, ascertains whether the incoming request has a higher priority value than the level currently being serviced, and issues an interrupt to the {CPU} based on this determination.
PICs typically have eight interrupt lines, and two PICs are often cascaded to provide 15 available interrupt lines.
See also: {Advanced Programmable Interrupt Controller}.
(2003-03-18)

programmable logic controller
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 readonly memory
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
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
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 {Sun-4}.
(1993-11-02)

programmer
[job] (Or "computer programmer", "developer") Someone who writes or debugs {computer programs}, for a living or for fun. "Analyst/developer" is a common equivalent job title, implying the added role of {system analysis}. The term may be qualified according to the type of software - "{application} programmer", "{system programmer}", etc.
(2000-01-24)

programmer brain damage
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)

programmers cheer
Programmer's Cheer
[humour]
"Shift to the left! Shift to the right! Pop up, push down! Byte! Byte! Byte!"
[Origin?]
[{Jargon File}]
(1996-10-13)

programmers hierarchical interactive graphics system
Programmers Hierarchical Interactive Graphics System
(PHIGS) An {ANSI}/{ISO} {standard}. Worked on by the {ISO}/{IEC} group {JTC1/SC24}.
[More detail?]
(1995-01-04)

programmers microapplication language
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)

programmers switch
Programmer's Switch
[hardware] A button on the front of some {Apple Macintosh} computers which, when pressed, causes a command line prompt to appear. This gives access to the built-in mini-{debugger}, which has commands to dump memory, return to the application that was broken out, and others. A more sophisticated debugger must be installed in order to inspect {breakpoints}, etc.
(2000-11-01)

programming
1. The art of debugging a blank sheet of paper (or, in these days of on-line editing, the art of debugging an empty file).
2. A pastime similar to banging one's head against a wall, but with fewer opportunities for reward.
3. The most fun you can have with your clothes on (although clothes are not mandatory).
[{Jargon File}]
(2003-02-12)

programming fluid
[jargon] (Or "{wirewater}") Coffee, unleaded coffee (decaffeinated), Cola, or any caffeinacious stimulant. Many hackers consider these essential for those all-night {hacking runs}.
(1996-05-01)

programming language
[language] A formal language in which computer programs are written. The definition of a particular language consists of both {syntax} (how the various symbols of the language may be combined) and {semantics} (the meaning of the language constructs).
Languages are classified as low level if they are close to {machine code} and high level if each language statement corresponds to many machine code instructions (though this could also apply to a low level language with extensive use of {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 languagecornell
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 languagesystems
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)

prograph
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
PROGRES
[language] {PROgrammed Graph REwriting Systems}.

progressive coding
[graphics, file format, algorithm] (Or "interlacing") An aspect of a {graphics} storage format or transmission {algorithm} that treats {bitmap} {image} data non-sequentially in such a way that later data adds progressively greater {resolution} to an already full-size image. This contrasts with {sequential coding}.
Progressive coding is useful when an image is being sent across a slow communications channel, such as the {Internet}, as the low-resolution image may be sufficient to allow the user to decide not to wait for the rest of the file to be received.
In an interlaced {GIF89} image, the {pixels} in a row are stored sequentially but the rows are stored in interlaced order, e.g. 0, 8, 4, 12, 2, 6, 8, 10, 14, 1, 3, 5, 7, 9, 11, 13, 15. Each vertical scan adds rows in the middle of the gaps left by the previous one.
{PNG} interlaces both horizontally and vertically using the "{Adam7}" method, a seven pass process named after Adam M. Costello.
Interlacing is also supported by other formats. {JPEG} supports a functionally similar concept known as {Progressive JPEG}. [How does the algorithm differ?]
{JBIG} uses {progressive coding}.
See also {progressive/sequential coding}.
["Progressive Bi-level Image Compression, Revision 4.1", ISO/IEC JTC1/SC2/WG9, CD 11544, 1991-09-16].
(2000-09-12)

progressive jpeg
Progressive JPEG
[graphics, file format] (PJPEG) An implementation of {JPEG} that supports {progressive coding}.
[Standards documents?]
(1998-02-10)

progressivesequential coding
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
PROJECT
Subsystem of ICES. Sammet 1969, p.616.

project assurance
The process of specifying the support system: techniques, internal standards, measurements, tools, and training for a project; counselling the project team in the application of these elements and monitoring the adherence to the standards.

project athena
Project Athena
[project] A {distributed system} project for support of educational and research computing at {MIT}. Much of the software developed is now in wider use, especially the {X Window System}.
(2000-02-24)

project guardian
Project Guardian
[project, security] A project which grew out of the {ARPA} support for {Multics} and the sale of Multics systems to the US Air Force. The USAF wanted a system that could be used to handle more than one security classification of data at a time. They contracted with {Honeywell} and {MITRE Corporation} to figure out how to do this. Project Guardian led to the creation of the {Access Isolation Mechanism}, the forerunner of the {B2} labeling and star property support in Multics. The {DoD Orange Book} was influenced by the experience in building secure systems gained in Project Guardian.
(1997-01-29)

project mac
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}

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)

prolog
Prolog
[programming] Programming in Logic or (French) Programmation en Logique. The first of the huge family of {logic programming} languages.
Prolog was invented by Alain Colmerauer and Phillipe Roussel at the University of Aix-Marseille in 1971. It was first implemented 1972 in {ALGOL-W}. It was designed originally for {natural-language processing} but has become one of the most widely used languages for {artificial intelligence}.
It is based on {LUSH} (or {SLD}) {resolution} {theorem proving} and {unification}. The first versions had no user-defined functions and no control structure other than the built-in {depth-first search} with {backtracking}. Early collaboration between Marseille and Robert Kowalski at {University of Edinburgh} continued until about 1975.
Early implementations included {C-Prolog}, {ESLPDPRO}, {Frolic}, {LM-Prolog}, {Open Prolog}, {SB-Prolog}, {UPMAIL Tricia Prolog}. In 1998, the most common Prologs in use are {Quintus Prolog}, {SICSTUS Prolog}, {LPA Prolog}, {SWI Prolog}, {AMZI Prolog}, {SNI Prolog}.
{ISO} draft standard at {Darmstadt, Germany (ftp://ftp.th-darmstadt.de/pub/programming/languages/prolog/standard/)}. or {UGA, USA (ftp://ai.uga.edu/ai.prolog.standard)}.
See also {negation by failure}, {Kamin's interpreters}, {Paradigms of AI Programming}, {Aditi}.
A Prolog {interpreter} in {Scheme}. {(ftp://cpsc.ucalgary.ca/pub/prolog1.1)}.
{A Prolog package (ftp://cpsc.ucalgary.ca/pub/prolog1.1/prolog11.tar.Z)} from the {University of Calgary} features {delayed goals} and {interval arithmetic}. It requires {Scheme} with {continuations}.
["Programming in Prolog", W.F. Clocksin & C.S. Mellish, Springer, 1985].
(2001-04-01)

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

prolog2
Prolog-2
An implementation of Edinburgh Prolog by Nick Henfrey, {ESL}.
["An Advanced Logic Programming Language", Anthony Dodd].

prologdlinda
Prolog-D-Linda
Embeds the {Linda} parallel paradigm into {SISCtus Prolog}.
{(ftp://ftp.cs.uwa.au/)}. E-mail: [geoff@cs.uwa.edu.au].

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

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

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

prologmali
Prolog/Mali
[language] (PM) {Lambda-Prolog} for the {MALI}-V06 abstract memory system, developed by Pascal Brisset at IRISA, France. There is a compiler which compiles to {C}, a linker, libraries, {run-time system}, and documentation. It runs under {Unix}.
{(ftp://ftp.irisa.fr/pm/)}.
Mailing list: prolog-mali-request@irisa.fr. E-mail: [pm@irisa.fr].
(1992-07-06)

prom
PROM
{Programmable Read-Only Memory}

prom monitor
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)

promal
PROMAL
{PROgrammer's Microapplication Language}

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

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
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
Pronunciation
In this dictionary slashes (/../) bracket phonetic pronunciations of words not found in a standard English dictionary. The notation, and many of the pronunciations, were adapted from the Hacker's {Jargon File}.
Syllables are separated by {dash} or followed {single quote} or {back quote}. Single quote means the preceding syllable is stressed (louder), back quote follows a syllable with intermediate stress (slightly louder), otherwise all syllables are equally stressed.
Consonants are pronounced as in English but note:
ch soft, as in "church" g hard, as in "got" gh aspirated g+h of "bughouse" or "ragheap" j voiced, as in "judge" kh guttural of "loch" or "l'chaim" s unvoiced, as in "pass" zh as "s" in "pleasure"
Uppercase letters are pronounced as their English letter names; thus (for example) /H-L-L/ is equivalent to /aych el el/. /Z/ is pronounced /zee/ in the US and /zed/ in the UK (elsewhere?).
Vowels are represented as follows:
a back, that ah father, palm (see note) ar far, mark aw flaw, caught ay bake, rain e less, men ee easy, ski eir their, software i trip, hit i: life, sky o block, stock (see note) oh flow, sew oo loot, through or more, door ow out, how oy boy, coin uh but, some u put, foot *r fur, insert (only in stressed syllables; otherwise use just "r") y yet, young yoo few, chew [y]oo /oo/ with optional fronting as in `news' (/nooz/ or /nyooz/)
A /*/ is used for the `schwa' sound of unstressed or occluded vowels (often written with an upside-down `e'). The schwa vowel is omitted in unstressed syllables containing vocalic l, m, n or r; that is, "kitten" and "colour" would be rendered /kit'n/ and /kuhl'r/, not /kit'*n/ and /kuhl'*r/.
The above table reflects mainly distinctions found in standard American English (that is, the neutral dialect spoken by TV network announcers and typical of educated speech in the Upper Midwest, Chicago, Minneapolis/St.Paul and Philadelphia). However, we separate /o/ from /ah/, which tend to merge in standard American. This may help readers accustomed to accents resembling British Received Pronunciation.
Entries with a pronunciation of `//' are written-only.
(1997-12-10)

proof
1. [logic] A {finite} sequence of {well-formed 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 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)

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

propeller head
[jargon] Used by hackers, this is synonym with {computer geek}. Non-hackers sometimes use it to describe all techies. Probably derives from SF fandom's tradition (originally invented by old-time fan Ray Faraday Nelson) of propeller beanies as fannish insignia (though nobody actually wears them except as a joke).
[{Jargon File}]
(1995-01-18)

propeller key
{feature key}

proposal writing
Proposal Writing
Extension of {Fortran} for proposal writing.
[Sammet 1969, p. 170].
(1995-01-18)

propositional calculus
{propositional logic}

propositional logic
[logic] (or "propositional calculus") A system of {symbolic logic} using symbols to stand for whole {propositions} and {logical connectives}. Propositional logic only considers whether a proposition is true or false. In contrast to {predicate logic}, it does not consider the internal structure of propositions.
(2002-05-21)

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.
[{Jargon File}]

prose
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
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
["PROSPER: A Language for Specification by Prototyping", J. Leszczylowski, Comp Langs 14(3):165-180 (1989)].

prospero
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
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
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}.
[{Jargon File}]
(1995-01-12)

protocol analyser
[communications, hardware, networking, testing, tool] Any device that captures and interprets the {network traffic} between two or more connected computer systems. The traffic can then be {decoded} so that it is possible to see what {processes} are occurring.
By examining the flow of traffic, protocol analysers can be used to find out where problems (such as {bottlenecks} or the failure of a network device) are on a {LAN}.
Advanced protocol analysers can also provide statistics on the traffic that can help to identify trends that may in future lead to further problems with the network.
(2000-07-24)

protocol converter
[networking] A device or program to translate between different {protocols} which serve similar functions (e.g. {TCP} and {TP4}).
Some call this a "{gateway}", though others use that term for other kinds of {internetworking} device.
(1996-03-07)

protocol data unit
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
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
Protosynthex
A query system for English text.
[Sammet 1969, p. 669].

prototyper
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}.
[{Jargon File}]

prowler
({Unix}) A {daemon} that is run periodically (typically once a week) to seek out and erase {core} files, truncate administrative logfiles, nuke "lost+found" directories, and otherwise clean up the cruft that tends to pile up in the corners of a file system.
See also {GFR}, {reaper}, {skulker}.
(1995-02-14)

proxy arp
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
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
PS
{PostScript}

ps 440
PS 440
[language] The system implementation language for the {Telefunken TR 440} computer, developed by K. Lagally in about 1974.
(2003-07-29)

ps1
PS1
{Sony Playstation}

ps2
PS2
{Sony Playstation}

ps2
PS/2
[computer] {IBM}'s second generation of {personal computers}. The PS/2 series introduced three advances over the PC series: 3.5" 1.44 megabyte {microfloppy} disks, {VGA} and {8514} graphics {display 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)

psa
PSA
Problem Statement Analizer. See {PSL/PSA}.

psalgol
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
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
PSD
[tool] {Portable Scheme Debugger}.

psdn
PSDN
[communications] {Public Switched Data Network}.

pseudo
[jargon] /soo'doh/ ({Usenet}) Pseudonym.
1. An {electronic-mail} or {Usenet} persona adopted by a human for amusement value or as a means of avoiding negative repercussions of one's net.behaviour; a "nom de {Usenet}", often associated with forged postings designed to conceal message origins. Perhaps the best-known and funniest hoax of this type is {BIFF}.
2. Notionally, a {flamage}-generating {AI} program simulating a {Usenet} user. Many flamers have been accused of actually being such entities, despite the fact that no AI program of the required sophistication yet exists. However, in 1989 there was a famous series of forged postings that used a phrase-frequency-based travesty generator to simulate the styles of several well-known flamers; it was based on large samples of their back postings (compare {Dissociated Press}). A significant number of people were fooled by the forgeries, and the debate over their authenticity was settled only when the perpetrator came forward to publicly admit the hoax.
[{Jargon File}]
(1995-03-13)

pseudocode
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.
[{Jargon File}]

pseudorandom number
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
PseudoScheme
A translator from {Scheme} to {Common Lisp} by Jonathan Rees [jar@cs.cornell.edu]. Version 2.8. It conforms to all of {R3RS} except {call/cc} and requires {Common Lisp}. Runs on {Lucid}, {Symbolics CL}, {VAX Lisp}, {Explorer CL}.
Mailing list: info-clscheme-request@mc.lcs.mit.edu.
(1994-10-28)

pseudosuit
/soo'doh-s[y]oot"/ A {suit} wannabee; a hacker who has decided that he wants to be in management or administration and begins wearing ties, sport coats, and (shudder!) suits voluntarily. It's his funeral. See also {lobotomy}.
[{Jargon File}]

pseudotty
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
PSF
{Print Services Facility}

psi
PSI
{Portable Scheme Interpreter}

psion organiser
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
PSK
[communications] {Phase Shift Keying}.

psl
PSL
1. {Portable Standard Lisp}.
2. Problem Statement Language. See {PSL/PSA}.

pslpsa
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
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
PSN
{Packet Switch Node}

pso
PSO
{Oracle Parallel Server}

pstn
PSTN
{Public Switched Telephone Network}

psychedelicware
/si:"k*-del"-ik-weir/ [UK] Synonym {display hack}. See also {smoking clover}.
[{Jargon File}]

psyton
[humour] /si:'ton/ (From {TMRC}) The elementary particle carrying the sinister force. The probability of a process losing is proportional to the number of psytons falling on it. Psytons are generated by observers, which is why demos are more likely to fail when lots of people are watching. This term appears to have been largely superseded by {bogon}; see also {quantum bogodynamics}.
(1997-04-26)

pt
1. [text, unit] {point}.
2. [networking] The {country code} for Portugal.
(1999-01-27)

ptac
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
PTF
{Program Temporary Fix}

pthreads
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
PTI
{Portable Tool Interface}

ptn
PTN
{Physical Transmission Network}

ptolemy
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
PTT
{Post, Telephone and Telegraph administration}

pub
PUB
1. PUBlishing. A 1972 text-formatting language for {TOPS-10}, with syntax based on {SAIL}. Influenced {TeX} and {Scribe}. ["PUB: The Document Compiler", Larry Tesler, Stanford AI Proj Op Note, Sept 1972].
2. /pub, the top-level, publicly accessible directory on most {anonymous FTP} archives. This is usually where the interesting files are. See {pubic directory}.

pubic directory
[NYU] (also "pube directory" /pyoob' d*-rek't*-ree/) The "pub" (public) directory on a machine that allows {FTP} access. So called because it is the default location for {SEX} (software exchange).
[{Jargon File}]

public domain
(PD) The total absence of {copyright} protection. If something is "in the public domain" then anyone can copy it or use it in any way they wish. The author has none of the exclusive rights which apply to a copyright work.
The phrase "public domain" is often used incorrectly to refer to {freeware} or {shareware} (software which is copyrighted but is distributed without (advance) payment). Public domain means no copyright -- no exclusive rights. In fact the phrase "public domain" has no legal status at all in the UK.
See also {archive site}, {careware}, {charityware}, {copyleft}, {crippleware}, {guiltware}, {postcardware} and {-ware}. Compare {payware}.

public domain software
{public domain}

public key infrastructure
Public Key Infrastructure
[cryptography, communications] (PKI) A system of {public key encryption} using {digital certificates} from {Certificate Authorities} and other registration authorities that verify and authenticate the validity of each party involved in an electronic transaction.
PKIs are currently evolving and there is no single PKI nor even a single agreed-upon standard for setting up a PKI. However, nearly everyone agrees that reliable PKIs are necessary before {electronic commerce} can become widespread.
{US DOD PKI (http://www-pki.itsi.disa.mil/)}.
{US NIST PKI (http://csrc.ncsl.nist.gov/pki/)}.
{IETF PKIX Working Group (http://www.imc.org/ietf-pkix/)}.
(1999-11-30)

public switched telephone network
Public Switched Telephone Network
[communications] (PSTN, T.70) The collection of interconnected systems operated by the various telephone companies and administrations ({telcos} and {PTTs}) around the world. Also known as the Plain Old Telephone System (POTS) in contrast to {xDSL} and {ISDN} (not to mention other forms of {PANS}).
The PSTN started as human-operated analogue circuit switching systems (plugboards), progressed through electromechanical switches. By now this has almost completely been made digital, except for the final connection to the subscriber (the "last mile"): The signal coming out of the phone set is analogue. It is usually transmitted over a {twisted pair cable} still as an analogue signal. At the {telco} office this analogue signal is usually digitised, using 8000 samples per second and 8 bits per sample, yielding a 64 kb/s data stream ({DS0}). Several such data streams are usually combined into a fatter stream: in the US 24 channels are combined into a {T1}, in Europe 31 DS0 channels are combined into an {E1} line. This can later be further combined into larger chunks for transmission over high-bandwidth core trunks. At the receiving end the channels are separated, the digital signals are converted back to analogue and delivered to the received phone.
While all these conversions are inaudible when voice is transmitted over the phone lines it can make digital communication difficult. Items of interest include {A-law} to {mu-law} conversion (and vice versa) on international calls; {robbed bit} signalling in North America (56 kbps [--] 64 kbps); data {compression} to save {bandwidth} on long-haul trunks; signal processing such as echo suppression and voice signal enhancement such as AT&T TrueVoice.
(2000-07-09)

publickey cryptography
public-key cryptography
{public-key encryption}

publickey cryptography standards
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)

publickey encryption
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)

puff
[algorithm] To decompress data that has been crunched by {Huffman coding}. At least one widely distributed Huffman decoder program was actually *named* "PUFF", but these days it is usually packaged with the encoder.
Opposite: {huff}.
[{Jargon File}]
(1996-10-16)

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

pulldown list
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)

pulldown menu
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)

pulse code modulation
Pulse Code Modulation
[data] (PCM) A method by which an audio signal is represented as digital data.
Virtually all digital audio systems use PCM, including, {CD}, {DAT}, F1 format, 1630 format, DASH, DCC, and MD. Many people get confused because "PCM" is also slang for Sony's F1 format which stores PCM digital audio on videotape.
(1995-02-09)

pumpkin
[jargon] A humourous term for the {token} - the object (notional or real) that gives its possessor (the "pumpking" or the "pumpkineer") exclusive access to something, e.g. applying {patches} to a master copy of {source} (for which the pumpkin is called a "patch pumpkin").
Chip Salzenberg [chip@perl.com] wrote:
David Croy once told me once that at a previous job, there was one tape drive and multiple systems that used it for backups. But instead of some high-tech exclusion software, they used a low-tech method to prevent multiple simultaneous backups: a stuffed pumpkin. No one was allowed to make backups unless they had the "backup pumpkin".
(1999-02-23)

pumpkineer
{pumpkin}

pumpking
{pumpkin}

punch card
{punched card}

punched card
[storage, history] (Or "punch card") The signature medium of computing's Stone Age, now long obsolete outside of a few {legacy systems}. The punched card actually predates computers considerably, originating in 1801 as a control device for {Jacquard looms}. {Charles Babbage} used them as a data and program storage medium for his {Analytical Engine}:
"To those who are acquainted with the principles of the Jacquard loom, and who are also familiar with analytical formul�, a general idea of the means by which the Engine executes its operations may be obtained without much difficulty. In the Exhibition of 1862 there were many splendid examples of such looms. [...] These patterns are then sent to a peculiar artist, who, by means of a certain machine, punches holes in a set of pasteboard cards in such a manner that when those cards are placed in a Jacquard loom, it will then weave upon its produce the exact pattern designed by the artist. [...] The analogy of the Analytical Engine with this well-known process is nearly perfect. There are therefore two sets of cards, the first to direct the nature of the operations to be performed -- these are called operation cards: the other to direct the particular variables on which those cards are required to operate -- these latter are called variable cards. Now the symbol of each variable or constant, is placed at the top of a column capable of containing any required number of digits."
-- from Chapter 8 of Charles Babbage's "Passages from the Life of a Philosopher", 1864.
The version patented by {Herman Hollerith} and used with mechanical tabulating machines in the 1890 US Census was a piece of cardboard about 90 mm by 215 mm. There is a widespread myth that it was designed to fit in the currency trays used for that era's larger dollar bills, but recent investigations have falsified this.
{IBM} (which originated as a tabulating-machine manufacturer) married the punched card to computers, encoding binary information as patterns of small rectangular holes; one character per column, 80 columns per card. Other coding schemes, sizes of card, and hole shapes were tried at various times.
The 80-column width of most character terminals is a legacy of the IBM punched card; so is the size of the quick-reference cards distributed with many varieties of computers even today.
See {chad}, {chad box}, {eighty-column mind}, {green card}, {dusty deck}, {lace card}, {card walloper}.
[{Jargon File}]
(1998-10-19)

punt
(From the punch line of an old joke referring to American football: "Drop back 15 yards and punt!") 1. To give up, typically without any intention of retrying. "Let's punt the movie tonight." "I was going to hack all night to get this feature in, but I decided to punt" may mean that you've decided not to stay up all night, and may also mean you're not ever even going to put in the feature.
2. More specifically, to give up on figuring out what the {Right Thing} is and resort to an inefficient hack.
3. A design decision to defer solving a problem, typically because one cannot define what is desirable sufficiently well to frame an algorithmic solution. "No way to know what the right form to dump the graph in is - we'll punt that for now."
4. To hand a tricky implementation problem off to some other section of the design. "It's too hard to get the compiler to do that; let's punt to the run-time system."
[{Jargon File}]

purdue compilerconstruction tool set
Purdue Compiler-Construction Tool Set
[tool] (PCCTS) A highly integrated {lexical analser generator} and {parser generator} by Terence J. Parr [parrt@acm.org], Will E. Cohen and Henry G. Dietz [hankd@ecn.purdue.edu], both of {Purdue University}.
ANTLR (ANother Tool for Language Recognition) corresponds to YACC and DLG (DFA-based Lexical analyser Generator) functions like {LEX}. PCCTS has many additional features which make it easier to use for a wide range of translation problems. PCCTS {grammars} contain specifications for lexical and syntactic analysis with selective {backtracking} ("infinite lookahead"), {semantic predicates}, intermediate-form construction and error reporting. Rules may employ {Extended BNF} (EBNF) grammar constructs and may define parameters, return values, and have {local variables}.
Languages described in PCCTS are recognised via {LLk} parsers constructed in pure, human-readable, {C} code. Selective backtracking is available to handle non-LL(k) constructs. PCCTS {parsers} may be compiled with a {C++} compiler. PCCTS also includes the {SORCERER} tree parser generator.
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).
(2000-10-30)

purdue university
Purdue University
{Home (http://www.purdue.edu/)}.
(1995-01-05)

pure functional language
{purely functional language}

pure lambdacalculus
pure lambda-calculus
{Lambda-calculus} with no constants, only functions expressed as {lambda abstraction}s.
(1994-10-27)

pure lisp
Pure Lisp
A {purely functional language} derived from {Lisp} by excluding any feature which causes {side-effect}s.

purelink
PureLink
An incremental linker from {Pure Software}.

purely functional language
[language] A language that supports only {functional programming} and does not allow functions to have {side-effects}. Program execution consists of evaluation of an expression and all subexpressions are {referentially transparent}.
(2003-03-25)

purify
Purify
A debugging tool from Pure Software.

purple book
Purple Book
1. [publication] The "System V Interface Definition". The covers of the first editions were an amazingly nauseating shade of off-lavender.
2. [publication] The {Wizard Book}.
See also {book titles}.
[{Jargon File}]

purple wire
[jargon, hardware] Wire installed by {IBM} Field Engineers to work around problems discovered during testing or debugging. These are called "purple wires" even when (as is frequently the case) they are yellow.
Compare {blue wire}, {yellow wire}, and {red wire}.
(1995-04-11)

purveyor
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}.
[{Jargon File}]
(1997-04-10)

push down list
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)

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

pvc
PVC
1. [networking] {Permanent Virtual Circuit}.
2. [hardware] {polyvinyl chloride}.
(2001-03-26)

pvm
PVM
{Parallel Virtual Machine}

pvwave
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
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: 1.4, includes {interpreter}, libraries, and documentation.
{Home (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
Q
[language] A very {high level language} by Per Bothner based on {lazy} generalised sequences. Q has {lexical scope}, and some support for {logic programming}[?] and {constraint} programming. The language includes small subsets of {Common Lisp} and {Scheme}.
Q was a test-bed for programming language ideas. Where {APL} uses {arrays} for looping, Q uses generalised sequences which may be infinite and may be stored or calculated on demand. It has {macros}, {primitives} to run programs, and an {interactive} command language.
Q is implemented in {C++}, and comes with an {interpreter}, {compiler} framework, libraries, and documentation. It runs on {Linux} and {SUN-4} and should work on any 32-bit {Unix}.
Latest version: 1, as of 1993-06-07. Development stopped in 1994.
{Home (http://kelso.bothner.com/~per/software/#Q )}.
E-mail: Per Bothner [per@bothner.com].
(2000-05-22)

qa
QA
{Quality Assurance}

qa
[networking] The {country code} for Qatar.
(1999-01-27)

qa4
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
QAM
1. {Quadrature Amplitude Modulation}.
2. {Quality Assurance Management}.

qbasic
Qbasic
[language] Quick basic.
A version of {BASIC} from {Microsoft}, later known as {MS-BASIC}.
(1995-03-16)

qbe
QBE
{Query By Example}

qca
QCA
{Quantum-dot Cellular Automata}

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
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
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
QIC
{Quarter-Inch Cartridge}

ql
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
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
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
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
QMW
{Queen Mary and Westfield College}

qnial
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
QNX
[operating system] A {realtime}, network distributed, {POSIX}-certified, {microkernel}, multi-user, {multitasking}, {ROMable}, {fault-tolerant}, embeddable {operating system} that supports {TCP/IP}, {NFS}, {FTP}, the {X Window System}, {Microsoft Windows} as a guest process, {Ethernet}, {Token Ring}, {Arcnet} and {Watcom} {ANSI C}/{C++}. Support for {Pentium}, {486}, {386}, {286}, {80x87}. Developed and distributed by QNX Software Systems, Ltd.
Current version: 6.1, as of 2001-09-02.
{QNX Home (http://www.qnx.com/)}.
{OpenQNX: The QNX community portal (http://www.openqnx.com)}.
{Papers (ftp://ftp.cse.ucsc.edu/pub/qnx/qnx-paper.ps.Z)}. (128.114.134.19).
{Usenet} newsgroup: {news:comp.os.qnx}.
E-mail: [info@qnx.com].
(2003-07-27)

qos
QoS
{Quality of service}

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

qtobjects
QT-OBJECTS
A library by Michael Travers [mt@media.mit.edu] and others providing an interface between {MCL} and {QuickTime}.
(1992-12-20)

qtrader
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").
[{Jargon File}]

quadralay corporation
Quadralay Corporation
[company] The developers of {GWHIS}.
{Home (http://www.quadralay.com/)}.
Telephone: +1 512-346-9199. Fax: +1 512-346-8990.
(2000-08-12)

quadrature amplitude modulation
Quadrature Amplitude Modulation
(QAM) A method for encoding digital data in an analog signal in which each combination of phase and amplitude represents one of sixteen four bit patterns. This is required for fax transmission at 9600 bits per second.
(1995-02-02)

quadruple bucky
Obsolete. 1. On an MIT {space-cadet keyboard}, use of all four of the shifting keys (control, meta, hyper, and super) while typing a character key.
2. On a Stanford or MIT keyboard in {raw mode}, use of four shift keys while typing a fifth character, where the four shift keys are the control and meta keys on *both* sides of the keyboard. This was very difficult to do! One accepted technique was to press the left-control and left-meta keys with your left hand, the right-control and right-meta keys with your right hand, and the fifth key with your nose.
Quadruple-bucky combinations were very seldom used in practice, because when one invented a new command one usually assigned it to some character that was easier to type. If you want to imply that a program has ridiculously many commands or features, you can say something like: "Oh, the command that makes it spin the tapes while whistling Beethoven's Fifth Symphony is quadruple-bucky-cokebottle." See {double bucky}, {bucky bits}, {cokebottle}.
[{Jargon File}]

quadruplex
[communications] A kind of telegraphy system developed by Thomas A. Edison in the 1870s combining {diplex} and {duplex} communications to support simultaneous transmission of two messages in each direction.
(2000-04-02)

quake
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
Qualcomm
[company] A California-based technology company; their primary product is the {OMNITRACS} tractor-trailer-tracking system. They also develop the free and commercial versions of {Eudora} for {Macintosh} and {IBM PC}.
(1995-10-05)

quality
The totality of features and characteristics of a product or service that bear on its ability to satisfy stated or implied needs. Not to be mistaken for "degree of excellence" or "fitness for use" which meet only part of the definition.
[{ISO8402}].
(1995-11-10)

quality assurance
[testing] (QA) A planned and systematic pattern of all actions necessary to provide adequate confidence that the product optimally fulfils customers' expectations, i.e. that it is problem-free and well able to perform the task it was designed for.
The QA of a commercial product usually involves {alpha testing}, where an early version of the product is tested at the developer's site, and is then improved accordingly. Then, an almost complete version of the product is made available for {beta testing} by (selected) real users. Faults identified during beta testing should be fixed before the product is released for full scale manufacturing and distribution.
(2001-04-21)

quality control
[testing] The assessment of product compliance with stated requirements. Quality control should be independent from production.
(2001-05-20)

quality of service
[communications, networking] (QoS) The performance properties of a network service, possibly including {throughput}, {transit delay}, {priority}. Some {protocols} allow {packets} or {streams} to include QoS requirements.
(1998-07-30)

quality systems software ltd
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
[logic] An operator in {predicate logic} specifying for which values of a variable a formula is true. Universally quantified means "for all values" (written with an inverted A, {LaTeX} \forall) and existentially quantified means "there exists some value" (written with a reversed E, {LaTeX} \exists). To be unambiguous, the set to which the values of the variable belong should be specified, though this is often omitted when it is clear from the context (the "universe of discourse"). E.g.
Forall x . P(x) [=] not (Exists x . not P(x))
meaning that any x (in some unspecified set) has property P which is equivalent to saying that there does not exist any x which does not have the property.
If a variable is not quantified then it is a {free variable}. In {logic programming} this usually means that it is actually universally quantified.
See also {first order logic}.
(2002-05-21)

quantify
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.
[{Jargon File}]
(1994-11-02)

quantum cell
[electronics, computing] (Or "quantum dot cell") A structure comprising four {quantum dots} arranged in a square, with two diagonally opposed dots containing electron charges. One diagonal containing charges is arbitrarily defined as representing a value of '1', the other as '0'. In a five-dot cell, the fifth, central dot contains no charge.
See also: {quantum cell wire}, {quantum-dot cellular} automata.
{(http://www.mitre.org/research/nanotech/quantum_dot_cell.html)}.
["Quantum Dot Heterostructures", D. Bimberg, et al, John Wiley & Sons Ltd., Dec 1998].
[Implementations?]
(2001-07-17)

quantum cell wire
[electronics, computing] (Or "quantum wire", "binary wire") {Quantum cells} arranged in a line to carry signals. Adjacent cells with the same orientation are at a low energy state and a change of orientation at one end of a quantum wire propagates along the wire, transmitting a signal. However, unlike conventional wire, since only the orientation of charge pairs changes, no current flows.
Circuits created using quantum cell wires are referred to as Quantum-dot Wireless Digital Circuits, see {quantum dot}, {Quantum-dot Cellular Automata}.
{(http://www.mitre.org/research/nanotech/quantum_dot_cell.html)}.
["Quantum Dot Heterostructures", D. Bimberg, et al, John Wiley & Sons Ltd., Dec 1998]
(2001-07-17)

quantum computer
[computer] A type of computer which uses the ability of quantum systems, such as a collection of atoms, to be in many different states at once. In theory, such superpositions allow the computer to perform many different computations simultaneously. This capability is combined with interference among the states to produce answers to some problems, such as factoring integers, much more rapidly than is possible with conventional computers. In practice, such machines have not yet been built due to their extreme sensitivity to noise.
{Oxford University (http://eve.physics.ox.ac.uk/QChome.html)}, {Stanford University (http://feynman.stanford.edu/qcomp/)}.
A {quantum search algorithm (ftp://parcftp.xerox.com/pub/dynamics/quantum.html)} for {constraint satisfaction} problems exhibits the phase transition for {NP-complete} problems.
(1997-02-11)

quantum computing
{quantum computer}

quantum dot
[physics] (Or "single-electron transistor") A location capable of containing a single electrical charge; i.e., a single electron of {Coulomb} charge. Physically, quantum dots are nanometer-size {semiconductor} structures in which the presence or absence of a quantum electron can be used to store information.
See also: {quantum cell}, {quantum cell wire}, {quantum-dot cellular automata}.
{(http://www-mtl.mit.edu/MTL/bulletin/v6n2/Kumar.html)}.
["Quantum Dot Heterostructures", D. Bimberg, et al, John Wiley & Sons Ltd., Dec 1998].
(2001-07-17)

quantumdot cellular automata
Quantum-dot Cellular Automata
[electronics, computing] (QCA) Quantum logic circuits created by orientating pairs of {quantum cells} so that their relative positions determine their affect on each other. This is functionally analogous but structurally different from how individual {gates} in {integrated circuits} are combined to create logical and memory circuitry.
The advantages of quantum-dot cellular automata over conventional circuitry are extremely small size/high density, low power requirements, and potentially high processing speeds. Disadvantages (in 2000) are difficulty of fabrication and low yield.
See also: {quantum cell wire}.
{Home (http://www.nd.edu/~qcahome/)}.
{(http://www.mitre.org/research/nanotech/quantum_dot_cell.html)}.
["Quantum Dot Heterostructures", D. Bimberg, et al, John Wiley & Sons Ltd., Dec 1998].
(2001-07-17)

quarter
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}.
[{Jargon File}]
(1995-01-25)

quarter inch cartridge
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
Quay Financial Software
{CSK Software}

queasy
QUEASY
An early system on the {IBM 701}.
[Listed in CACM 2(5):16 (May 1959)].
(1995-01-25)

queen mary and westfield college
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
Queens Problem
{Eight Queens Puzzle}

queens puzzle
Queens Puzzle
{Eight Queens Puzzle}

queens university
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
QUEL
The {query language} used by the {database management system} {INGRES}.
(1995-01-31)

query
1. [database, information science] A user's (or {agent}'s) request for information, generally as a formal request to a {database} or {search engine}.
{SQL} is the most common {database query language}.
2. [character] {question mark}.
(1997-04-09)

query by example
Query By Example
[database, language] (QBE) A {user-friendly} {query language} developed by Moshe Zloof of {IBM} in 1975.

{(http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/z/Zloof:Mosh=eacute=_M=.html)}.
[Moshe M. Zloof, "Query By Example", AFIPS NCC 1975: 431-438].
[Moshe M. Zloof, "Query-by-Example: A Data Base Language", IBM Systems Journal 16(4): 324-343, 1977].
["QBE/OBE: A Language for Office and Business Automation", M.M. Zloof, Computer pp.13-22, May 1981].
(2001-03-25)

query expansion
[information science] Adding {search terms} to a user's search. Query expansion is the process of a {search engine} adding {search terms} to a user's {weighted search}. The intent is to improve {precision} and/or {recall}. The additional terms may be taken from a {thesaurus}. For example a search for "car" may be expanded to: car cars auto autos automobile automobiles.
The additional terms may also be taken from documents that the user has specified as being relevant; this is the basis for the "more like this" feature of some search engines.
The extra terms can have positive or negative weights.
(1999-08-27)

ques
{question mark}

quest
Quest
1. A language designed for its simple denotational semantics. "The Denotational Semantics of Programming Languages", R. Tennent, CACM 19(8):437-453 (Aug 1976).
2. QUantifiers and SubTypes. Language with a sophisticated type system. Just as types classify values, "kinds" classify types and type operators. Explicit universal and existential quantification over types, type operators, and subtypes. Subtyping is defined inductively on all type constructions, including higher-order functions and abstract types. User-definable higher-order type operators.
"Typeful Programming", Luca Cardelli [luca@src.dec.com], RR 45, DEC SRC 1989.
Implemented in Modula-3.
{(ftp://gatekeeper.dec.com/pub/DEC/Quest/quest12A.tar.Z)}.
3. [tool, text] A {multimedia} {authoring} system. Quest has been available for {MS-DOS} for some time. Version 3.5 for {Microsoft Windows} was released around March 1995. It features an {Authorware}-style {flowchart} system with an {ANSI-C} {script language}.
(1995-04-02)

question mark
[character] "?", {ASCII} character 63.
Common names: query; {ITU-T}: question mark; {ques}. Rare: whatmark; {INTERCAL}: what; wildchar; huh; hook; buttonhook; hunchback.
Question mark is used, along with {colon} for {C}'s {lazy} triadic "if" {operator} (similar to the {IIF} function in {Visual Basic}). The expression x?y:z evaluates x, then if x is true it returns y else it returns z.
In {Unix} {shell} file name patterns, question mark matches any single character.
(2003-06-17)

queue
[programming] A {first-in first-out} data structure used to sequence 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
QUICK
[language] An early system on the {IBM 701}.
[Listed in CACM 2(5):16 (May 1959)].
(1995-05-11)

quickanddirty
quick-and-dirty
[jargon, programming] Describes a {crock} put together under time or user pressure. Used especially when you want to convey that you think the fast way might lead to trouble further down the road. "I can have a quick-and-dirty fix in place tonight, but I'll have to rewrite the whole module to solve the underlying design problem."
See also {kluge}.
[{Jargon File}]
(1995-05-11)

quickdraw
QuickDraw
[library, graphics] Part of the software in the {Apple Macintosh}'s {ROM} that performs graphics operations.
(1995-05-11)

quicksilver
Quicksilver
[database] A {dBASE}-like compiler for {MS-DOS} from {WordTech}.
(1995-05-11)

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

quiesce
[networking] To render quiescent, i.e. temporarily inactive or disabled. For example to quiesce a device (such as a digital modem). It is also a system command in MAX TNT software which is used to "Temporarily disable a modem or DS0 channel".
Also used as an adjective, in the expression "{quiesce time}".
(2000-03-05)

quiesce time
[jargon] The length of time taken to {quiesce} a system (to render it inactive), or the length of time between periods of inactivity.
(2000-03-05)

quikscript
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
QUIKTRAN
Fortran-like, interactive with debugging facilities. Sammet 1969, p.226.

quin
QUIN
Pyle 1965. Interactive language. Sammet 1969, p.691.

quine
[programming] /kwi:n/ (After the logician Willard V. Quine, via Douglas Hofstadter) A program that generates a copy of its own source text as its complete output. Devising the shortest possible quine in some given programming language is a common hackish amusement.
In most interpreted languages, any constant, e.g. 42, is a quine because it "evaluates to itself". In certain {Lisp} dialects (e.g. {Emacs Lisp}), the symbols "nil" and "t" are "self-quoting", i.e. they are both a symbol and also the value of that symbol. In some dialects, the function-forming function symbol, "lambda" is self-quoting so that, when applied to some arguments, it returns itself applied to those arguments. Here is a quine in {Lisp} using this idea:
((lambda (x) (list x x)) (lambda (x) (list x x)))
Compare this to the {lambda expression}:
(\ x . x x) (\ x . x x)
which reproduces itself after one step of {beta reduction}. This is simply the result of applying the {combinator} {fix} to the {identity function}. In fact any quine can be considered as a {fixed point} of the language's evaluation mechanism.
We can write this in {Lisp}:
((lambda (x) (funcall x x)) (lambda (x) (funcall x x)))
where "funcall" applies its first argument to the rest of its arguments, but evaluation of this expression will never terminate so it cannot be called a quine.
Here is a more complex version of the above Lisp quine, which will work in Scheme and other Lisps where "lambda" is not self-quoting:
((lambda (x) (list x (list (quote quote) x))) (quote (lambda (x) (list x (list (quote quote) x)))))
It's relatively easy to write quines in other languages such as {PostScript} which readily handle programs as data; much harder (and thus more challenging!) in languages like {C} which do not. Here is a classic {C} quine for {ASCII} machines:
char*f="char*f=%c%s%c;main() {printf(f,34,f,34,10);}%c"; main(){printf(f,34,f,34,10);}
For excruciatingly exact quinishness, remove the interior line break. Some infamous {Obfuscated C Contest} entries have been quines that reproduced in exotic ways.
{Ken Thompson}'s {back door} involved an interesting variant of a quine - a compiler which reproduced part of itself when compiling (a version of) itself.
[{Jargon File}]
(1995-04-25)

quintecobjects
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
Quintus Prolog
[language, product] A version of {Prolog} developed by {Quintus}. Development of Quintus Prolog had transferred to the {Swedish Institute of Computer Science} by December 1998.
{(ftp://ftp.quintus.com/)}.
Telephone: +1 (800) 542 1283.
[More details? Features?]
(1998-12-12)

quote chapter and verse
[by analogy with the mainstream phrase] To cite a relevant excerpt from an appropriate {bible}. "I don't care if "rn" gets it wrong; "Followup-To: poster" is explicitly permitted by {RFC} 1036. I'll quote chapter and verse if you don't believe me." See also {legalese}, {language lawyer}, {RTFS} (sense 2).
[{Jargon File}]

quotient
The number obtained by dividing one number (the "numerator") by another (the "denominator"). If both numbers are {rational} then the result will also be rational.

quprolog
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
Quty
A functional plus logic language. "Quty: A Functional Language Based on Unification", M. Sato et al, in Conf. Fifth Gen. Computer Systems, ICOT 1984, pp.157-165.

quux
/kwuhks/ [Mythically, from the Latin semi-deponent verb quuxo, quuxare, quuxandum iri; noun form variously "quux" (plural "quuces", anglicised to "quuxes") and "quuxu" (genitive plural is "quuxuum", for four u-letters out of seven in all, using up all the "u" letters in Scrabble).] 1. Originally, a {metasyntactic variable} like {foo} and {foobar}. Invented by {Guy Steele} for precisely this purpose when he was young and naive and not yet interacting with the real computing community. Many people invent such words; this one seems simply to have been lucky enough to have spread a little. In an eloquent display of poetic justice, it has returned to the originator in the form of a nickname.
2. See {foo}; however, denotes very little disgust, and is uttered mostly for the sake of the sound of it.
3. {Guy Steele} in his persona as "The Great Quux", which is somewhat infamous for light verse and for the "Crunchly" cartoons.
4. In some circles, used as a punning opposite of "crux". "Ah, that's the quux of the matter!" implies that the point is *not* crucial (compare {tip of the ice-cube}).
[{Jargon File}]

qux
/kwuhks/ The fourth of the standard {metasyntactic variable}, after {baz} and before the quu(u...)x series. See {foo}, {bar}, {baz}, {quux}. This appears to be a recent mutation from {quux}, and many versions (especially older versions) of the standard series just run {foo}, {bar}, {baz}, {quux}, ...

qwerty
QWERTY
[hardware] /kwer'tee/ (From the top left row of letter keys of most keyboards) Pertaining to a standard English-language typewriter keyboard (sometimes called the Sholes keyboard after its inventor), as opposed to {Dvorak} or foreign-language layouts (e.g. "keyboard AZERTY" in french-speaking countries) or a {space-cadet keyboard} or {APL keyboard}.
The QWERTY layout is a fine example of a {fossil}. It is sometimes said that it was designed to slow down the typist, but this is wrong; it was designed to allow *faster* typing - under a constraint now long obsolete. In early typewriters, fast typing using nearby type-bars jammed the mechanism. So Sholes fiddled the layout to separate the letters of many common digraphs (he did a far from perfect job, though; "th", "tr", "ed", and "er", for example, each use two nearby keys). Also, putting the letters of "typewriter" on one line allowed it to be typed with particular speed and accuracy for {demos}. The jamming problem was essentially solved soon afterward by a suitable use of springs, but the keyboard layout lives on.
[{Jargon File}]
(1998-01-15)

qx
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
R2000
{MIPS R2000}

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

r399rs
R3.99RS
{R4RS} without the {macro}s.

r3rs
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
R4RS
A revision of {R3RS}, revised in {R3.99RS}.
{(ftp://altdorf.ai.mit.edu/)}.
["The Revised^4 Report on the Algorithmic Language Scheme", W. Clinger et al, MIT (Nov 1991)].
(1994-10-28)
[Later revisions?]

rabbit job
(Cambridge) A batch job that does little, if any, real work, but creates one or more copies of itself, breeding like rabbits.
Compare {wabbit}, {fork bomb}.
[{Jargon File}]
(1994-11-09)

race
RACE
[programming] {Requirements Acquisition and Controlled Evolution}.
(1995-11-21)

race condition
Anomalous behavior due to unexpected critical dependence on the relative timing of events.
For example, if one process writes to a file while another is reading from the same location then the data read may be the old contents, the new contents or some mixture of the two depending on the relative timing of the read and write operations.
A common remedy in this kind of race condition is {file locking}; a more cumbersome remedy is to reorganize the system such that a certain processes (running a {daemon} or the like) is the only process that has access to the file, and all other processes that need to access the data in that file do so only via interprocess communication with that one process.
As an example of a more subtle kind of race condition, consider a {distributed} {chat} {network} like {IRC}, where a {user} is granted channel-operator {privileges} in any channel he starts. If two users on different {servers}, on different ends of the same network, try to start the same-named channel at the same time, each user's respective server will grant channel-operator privileges to each user, since neither will yet have received the other's signal that that channel has been started.
In this case of a race condition, the "shared resource" is the conception of the {state} of the network (what channels exist, as well as what users started them and therefore have what privileges), which each server is free to change as long as it signals the other servers on the network about the changes so that they can update their conception of the state of the network. However, the {latency} across the network makes possible the kind of race condition described. In this case, heading off race conditions by imposing a form of control over access to the shared resource -- say, appointing one server to be in charge of who holds what privileges -- would mean turning the distributed network into a centralized one (at least for that one part of the network operation). Where this is not acceptable, the more pragmatic solution is to have the system recognize when a race condition has occurred and to repair the ill effects.
Race conditions also affect electronic circuits where the value output by a {logic gate} depends on the exact timing of two or more input signals. For example, consider a two input AND gate fed with a logic signal X on input A and its negation, NOT X, on input B. In theory, the output (X AND NOT X) should never be high. However, if changes in the value of X take longer to propagate to input B than to input A then when X changes from false to true, there will be a brief period during which both inputs are true, and so the gate's output will also be true. If this output is fed to an edge-sensitive component such as a counter or flip-flop then the temporary effect ("{glitch}") will become permanent.
(2002-08-03)

racf
RACF
{Resource Access Control Facility}

rad
RAD
[programming] {Rapid Application Development}.

raddle
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
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
[graphics] A method for rendering a view of a three-dimensional scene that provides realistic lighting effects, such as interobject reflections and {color bleeding}. Radiosity methods are computationally intense, due to the use of linear systems of equations and the spatial complexity of large scenes.
{Usenet} newsgroup: {news:comp.graphics}.
[Is radiosity more accurate than {ray tracing}? Does it take more computing power? How does compute time scale with scene complexity?]
(2003-06-01)

radius
RADIUS
{Remote Authentication 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
RAID
{Redundant Arrays of Independent Disks}

rail
RAIL
[robotics] Automatix. High-level language for industrial robots.

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}.
[{Jargon File}]
(1995-02-09)

rainbow series
[publication] Any of several series of technical manuals distinguished by cover colour. The original rainbow series was the NCSC security manuals (see {Orange Book}, {crayola books}); the term has also been commonly applied to the PostScript reference set (see {Red Book}, {Green Book}, {Blue Book}, {White Book}). Which books are meant by ""the" rainbow series" unqualified is thus dependent on one's local technical culture.
[{Jargon File}]
(1996-12-03)

raise
RAISE
See {RSL}.

ral
RAL
1. Rutherford Appleton Laboratory (UK).
2. An {expert system}.

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

ram disk
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 drive
{RAM disk}

rambus dram
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
Rambus, Inc.
[company] The company which designed {Rambus DRAM}.
{Home (http://www.rambus.com/)}.
Address: Mountain View, CA., USA.
(1996-12-15)

ramdac
RAMDAC
{Random Access Memory Digital-to-Analog Converter}

ramis ii
RAMIS II
Rapid Access {Management Information System}.
A {database} from {On-Line Software International}.
(1994-11-14)

ramtron
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}.
[{Jargon File}]
(1995-12-05)

random access memory digitaltoanalog converter
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)

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)

random testing
[programming, testing] A {black-box testing} approach in which {software} is tested by choosing an arbitrary subset of all possible input values. Random testing helps to avoid the problem of only testing what you know will work.
(2001-04-30)

randomaccess memory
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)

randomness
1. An inexplicable misfeature; gratuitous inelegance.
2. A {hack} or {crock} that depends on a complex combination of coincidences (or, possibly, the combination upon which the crock depends for its accidental failure to malfunction). "This hack can output characters 40--57 by putting the character in the four bit accumulator field of an XCT and then extracting six bits - the low 2 bits of the XCT opcode are the right thing." "What randomness!"
3. Of people, synonymous with "flakiness". The connotation is that the person so described is behaving weirdly, incompetently, or inappropriately for reasons which are (a) too tiresome to bother inquiring into, (b) are probably as inscrutable as quantum phenomena anyway, and (c) are likely to pass with time. "Maybe he has a real complaint, or maybe it's just randomness. See if he calls back."
[{Jargon File}]

range
{image}

rapid application development
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)

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)

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

rapidwrite
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
RAPT
["An Interpreter for a Language for Describing Assemblies", R.J. Popplestone et al, Artif Intell 14:79-107 (1980)].
(1995-05-10)

rare
RARE
{Reseaux Associes pour la Recherche Europeenne}

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.
[{Jargon File}]
(1995-05-10)

rarp
RARP
{Reverse Address Resolution Protocol}

ras
RAS
1. [hardware, storage] {Row Address Strobe}.
2. [communications] {Remote Access Services}.
3. [system] {Reliability, Availability, Serviceability}.
(2000-08-13)

rasp
RASP
[language] ["RASP - A Language with Operations on Fuzzy Sets", D.D. Djakovic, Comp Langs 13(3):143-148 (1988)].
(1995-05-10)

raster
[hardware] The area of a video display that is covered by sweeping the electron beam of the display in a series of horizontal lines from top to bottom. The beam then returns to the top during the vertical flyback interval.
See also {CRT}, {frame buffer}.
(1995-03-22)

raster blaster
[hardware, jargon] (Cambridge) Specialised hardware for {bitblt} operations (a {blitter}). Allegedly inspired by "Rasta Blasta", British slang for the sort of portable stereo Americans call a "boom box" or "ghetto blaster".
[{Jargon File}]
(1995-03-22)

raster burn
1. (Or terminal illness) Eyestrain brought on by too many hours of looking at low-resolution, poorly tuned, or glare-ridden monitors, especially graphics monitors.
2. The "burn-in" condition your {CRT} tends to get if you don't use a {screen saver}.
[{Jargon File}]

raster font
{bitmap font}

raster graphics
[graphics] Computer graphics in which an {image} is composed of an array of pixels arranged in rows and columns.
Opposite: {vector graphics}.
(1995-03-22)

raster image processor
Raster Image Processor
[application, printer] (RIP) A device (usually {hardware} but can be {software}) that takes a {Page Description Language} description of a page and converts it into a {bitmap} for printing.
(2003-09-10)

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)

rastergram
{Single Image Random Dot Stereogram}

rasterising
[algorithm] A transformation that can be applied to an image to prepare it for printing. Rasterising reduces resolution by a factor of typically four to eight. It also reduces sensitivity to paper properties. Rasterising can be combined with {dithering}.
[How does it work?]
(2003-07-20)

rasterizing
{rasterising}

rat belt
A cable tie, especially the sawtoothed, self-locking plastic kind that you can remove only by cutting (as opposed to a random twist of wire or a twist tie or one of those humongous metal clip frobs). Small cable ties are "mouse belts".
[{Jargon File}]

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

ratc
RatC
{Rationalized C}

rate monotonic scheduling
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)

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

ratfiv
RATFIV
Successor to {RATFOR}.

ratfor
RATFOR
{RATional Fortran}

rational
[Mathematics] a fractional number n/d, where n and d are integers, n is the numerator and d is the denominator. The set of all rational numbers is usually called Q. Computers do not usually deal with rational numbers but instead convert them to {real} numbers which are represented (approximately in some cases) as {floating-point} numbers. Compare {irrational}.

rational fortran
RATional Fortran
[language] (RATFOR) {Brian Kernighan}'s {Fortran} {preprocessor} that allows programming with {C}-like {control flow}. RATFOR is mainly of historical significance.
A translator from Ratfor to Fortran IV was posted to comp.sources.Unix volume 13.
{(ftp://ftp.wustl.edu/mirrors/Unix-c/languages/ratfor.tar-z)}.
["Ratfor - A Preprocessor for a Rational Fortran", B.W. Kernighan, Soft Prac & Exp 5:395-406, Oct 1975].
["Software Tools", B.W. Kernighan & P.J. Plauger, A-W, 1976].
(2001-07-31)

rationalized c
Rationalized C
[language] (RatC, after "{RATFOR}") A version of Ron Cain's original {Small-C} {compiler}.
["A Book on C", R.E. Berry and B.A. Meekings, 1984, ISBN 0-333-36821-5].
[In what way was it "rationalized"?]
(1999-06-28)

rave
[WPI] 1. To persist in discussing a specific subject.
2. To speak authoritatively on a subject about which one knows very little.
3. To complain to a person who is not in a position to correct the difficulty.
4. To purposely annoy another person verbally.
5. To evangelise. See {flame}.
6. Also used to describe a less negative form of blather, such as friendly bullshitting. "Rave" differs slightly from {flame} in that "rave" implies that it is the persistence or obliviousness of the person speaking that is annoying, while {flame} implies somewhat more strongly that the tone or content is offensive as well.
[{Jargon File}]

rave on
!
Sarcastic invitation to continue a {rave}, often by someone who wishes the raver would get a clue but realises this is unlikely.

raw data
{data}

raw mode
[operating system] A mode that allows a program to transfer {bits} directly to or from an {I/O} device without any processing, abstraction, or interpretation by the {operating system}.
Systems that make this distinction for a disk file are generally regarded as broken.
Compare {rare mode}, {cooked mode}.
[{Jargon File}]
(2002-04-14)

rawoopsnap
RAWOOP-SNAP
[language] An early system on the {IBM 1103} or 1103A.
[Listed in CACM 2(5):16, May 1959].
(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 backward from the viewpoint, through a point (a {pixel}) in the image plane until they hit some object in the scene or go off to infinity. Objects are modelled as collections of abutting surfaces which may be rectangles, triangles, or more complicated shapes such as 3D {splines}. The optical properties of different surfaces (colour, reflectance, transmitance, refraction, texture) also affect how it will contribute to the colour and brightness of the ray. The position, colour, and brightness of light sources, including ambient lighting, is also taken into account.
Ray tracing is an ideal application for {parallel processing} since there are many pixels, each of whose values is independent and can thus be calculated in parallel.
Compare: {radiosity}.
{Usenet} newsgroup: {news:comp.graphics.raytracing}.

{(http://directory.google.com/Top/Computers/Software/Graphics/3D/Ray_Tracing/)}.
(2003-09-11)

rayleigh distribution
Rayleigh distribution
[mathematics] A curve that yields a good approximation to the actual labour curves on software projects.
[Details? Equation?]
(1996-05-29)

rbase
R:BASE
{MS-DOS} 4GL from Microrim. Based on Minicomputer DBMS RIM.
[Was Wayne Erickson the author?]

rbasic
RBASIC
Database language for Revelation, by Cosmos, Inc. Combines features of BASIC, Pascal and Fortran.

rbcsp
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
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.html)}.
2. A {shell} from {AT&T}'s {Plan 9}, by Tom Duff. rc offers much the same capabilities as a traditional {Bourne shell}, but with a much cleaner {syntax}.
An open source reimplementation was made by Byron Rakitzis, and is now maintained by Tim Goodwin [tjg@star.le.ac.uk].
Latest version: 1.6, as of 2000-06-15.
{Home (http://www.star.le.ac.uk/~tjg/rc)}.
(2000-06-17)

rc file
/R C fi:l/ [Unix: from the startup script "/etc/rc", but this is commonly believed to have been named after older scripts to "run commands"] Script file containing startup instructions for an application program (or an entire operating system), usually a text file containing commands of the sort that might have been invoked manually once the system was running but are to be executed automatically each time the system starts up. See also {dot file}, {profile} (sense 1).
[{Jargon File}]

rc4
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
RCA 1802
[processor] An extremely simple {microprocessor} fabricated in {CMOS}, running at 6.4 MHz at 10V (very fast for 1974). It could be suspended with the clock stopped. It was an 8-bit processor, with 16-bit addressing. Simplicity was the primary design goal, and in that sense it was one of the first {RISC} chips. It had sixteen 16-bit {registers}, which could be accessed as thirty-two 8-bit registers, and an {accumulator} D used for arithmetic and memory access - memory to D, then D to registers and vice versa, using one 16-bit register as an address. This led to one person describing the 1802 as having 32 bytes of {RAM} and 65535 I/O ports. A 4-bit control register P selected any one general register as the {program counter}, while control registers X and N selected registers for I/O Index and the operand for the current instruction. All instructions were 8 bits - a 4-bit {op code} (total of 16 operations) and 4-bit {operand register} stored in N. There was no real {conditional branching}, no {subroutine} support and no actual {stack} but these could be implemented by clever use of registers, e.g. changing P to another register allowed jump to a subroutine. Similarly, on an interrupt P and X were saved, then R1 and R2 were selected for P and X until an {RTI} restored them.
The {RCA 1805} was an enhanced version.
The 1802 was used in the {COSMAC} (VIP?) {microcomputer} kit, some video games from {RCA} and {Radio Shack}, and the {ETI-660} computer. It was chosen for the Voyager, Viking and Galileo space probes as it was also fabricated in {Silicon on Sapphire}, giving radiation and static resistance, ideal for space operation.
{More history (http://www.cosmacelf.com)}.
(2002-04-09)

rca 1805
RCA 1805
A later, enhanced version of the {RCA 1802}. It added several {Forth} language primitives.
(1994-11-16)

rcc
RCC
An extensible language.
[More detail?]

rcl
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
RCS
{Revision Control System}

rdb
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
RDBA
{Remote Database Access}

rdbms
RDBMS
{relational database}

rdf
RDF
{Resource Description Framework}

rdi
RDI
{Receiver Data Interface}

rdl
RDL
Requirements and Development Language.
["RDL: A Language for Software Development", H.C. Heacox, SIGPLAN Notices 14(9):71-79 (Sep 1979)].

rdos
RDOS
{Realtime Disk Operating System}

rdram
RDRAM
{Rambus DRAM}

rds
RDS
{Random Dot Stereogram}

re
RE
{regular expression}

re
1. [networking] The {country code} for Reunion.
2. [chat] /re-/ (From "rehi") Hello again. A greeting originating in, and most often heard on, {Internet} interactive conversation services.
[{Jargon File}]
(1999-02-08)

readevalprint loop
read-eval-print loop
[language, LISP, programming] (REPL) A programming {structure} within {LISP} which repeatedly reads a {form} from the {user}, evaluates it, and displays the result.
A read-eval-print {loop} forms the basis of the {Top-Level} {shell} that programmers of the LISP family of languages interact with.
In many dialects of LISP a very simple REPL could be implemented as:
(loop (print (eval (read)))).
(2003-06-23)

readme file
README file
[convention] An introduction traditionally included in the top-level directory of a {Unix} {source} distribution, containing a pointer to more detailed documentation, credits, miscellaneous revision history, notes, etc. The file may be named README, or READ.ME, or rarely ReadMe or readme.txt or some other variant.
In the {Macintosh} and {IBM PC} worlds, software is not usually distributed in source form, and the README is more likely to contain user-oriented material like last-minute documentation changes, error workarounds, and restrictions.
The README convention probably follows the famous scene in Lewis Carroll's "Alice's Adventures In Wonderland" in which Alice confronts magic munchies labelled "Eat Me" and "Drink Me".
[{Jargon File}]
(1995-02-28)

readonly memory
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)

readonly user
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}.
[{Jargon File}]
(1995-02-28)

real
1. Not simulated. Often used as a specific antonym to {virtual} in any of its jargon senses.
2. [mathematics] {real number}.
[{Jargon File}]
(1997-03-12)

real estate
[jargon] May be used for any critical resource measured in units of area. Most frequently used of "chip real estate", the area available for logic on the surface of an {integrated circuit} (see also {nanoacre}). May also be used of floor space in a {dinosaur pen}, or even space on a crowded desktop (whether physical or electronic).
[{Jargon File}]
(1996-11-06)

real hack
A {crock}. This is sometimes used affectionately; see {hack}.
[{Jargon File}]

real mode
An operating mode of {Intel 80x86} processors. The opposite of {protected mode}.
(1995-03-29)

real number
[mathematics] One of the infinitely divisible range of values between positive and negative {infinity}, used to represent continuous physical quantities such as distance, time and temperature.
Between any two real numbers there are infinitely many more real numbers. The {integers} ("counting numbers") are real numbers with no fractional part and real numbers ("measuring numbers") are {complex numbers} with no imaginary part. Real numbers can be divided into {rational numbers} and {irrational numbers}.
Real numbers are usually represented (approximately) by computers as {floating point} numbers.
Strictly, real numbers are the {equivalence classes} of the {Cauchy sequences} of {rationals} under the {equivalence relation} "~", where a ~ b if and only if a-b is {Cauchy} with limit 0.
The real numbers are the minimal {topologically closed} {field} containing the rational field.
A sequence, r, of rationals (i.e. a function, r, from the {natural numbers} to the rationals) is said to be Cauchy precisely if, for any tolerance delta there is a size, N, beyond which: for any n, m exceeding N,
| r[n] - r[m] | [ delta
A Cauchy sequence, r, has limit x precisely if, for any tolerance delta there is a size, N, beyond which: for any n exceeding N,
| r[n] - x | [ delta
(i.e. r would remain Cauchy if any of its elements, no matter how late, were replaced by x).
It is possible to perform addition on the reals, because the equivalence class of a sum of two sequences can be shown to be the equivalence class of the sum of any two sequences equivalent to the given originals: ie, a~b and c~d implies a+c~b+d; likewise a.c~b.d so we can perform multiplication. Indeed, there is a natural {embedding} of the rationals in the reals (via, for any rational, the sequence which takes no other value than that rational) which suffices, when extended via continuity, to import most of the algebraic properties of the rationals to the reals.
(1997-03-12)

real operating system
[operating system, abuse] The sort the speaker is used to. People from the {BSD}ophilic academic community are likely to issue comments like "{System V}? Why don't you use a *real* operating system?", people from the commercial/industrial {Unix} sector are known to complain "BSD? Why don't you use a *real* operating system?", and people from {IBM} object "Unix? Why don't you use a *real* operating system?"
See {holy wars}, {religious issues}, {proprietary}, {Get a real computer!}.
[{Jargon File}]
(1997-03-12)

real programmer
Real Programmer
[job, humour] (From the book "Real Men Don't Eat Quiche") A variety of hacker possessed of a flippant attitude toward complexity that is arrogant even when justified by experience. The archetypal "Real Programmer" likes to program on the {bare metal} and is very good at it, remembers the binary {op codes} for every machine he has ever programmed, thinks that {high-level languages} are sissy, and uses a {debugger} to edit his code because full-screen editors are for wimps. Real Programmers aren't satisfied with code that hasn't been {bum}med into a state of {tense}ness just short of rupture.
Real Programmers never use {comments} or write {documentation}: "If it was hard to write", says the Real Programmer, "it should be hard to understand." Real Programmers can make machines do things that were never in their spec sheets; in fact, they are seldom really happy unless doing so. A Real Programmer's code can awe with its fiendish brilliance, even as its crockishness appals.
Real Programmers live on junk food and coffee, hang line-printer art on their walls, and terrify the crap out of other programmers - because someday, somebody else might have to try to understand their code in order to change it. Their successors generally consider it a {Good Thing} that there aren't many Real Programmers around any more.
For a famous (and somewhat more positive) portrait of a Real Programmer, see "{The Story of Mel}". The term itself was popularised by a 1983 Datamation article "{Real Programmers Don't Use Pascal}" by Ed Post, still circulating on {Usenet} and Internet in on-line form.
[{Jargon File}]
(1997-08-29)

real programmers dont use pascal
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 to pronounce his name. He replied, "You can either call me by name, pronouncing it 'Veert', or call me by value, 'Worth'." One can tell immediately from this comment that Nicklaus Wirth is a Quiche Eater. The only parameter passing mechanism endorsed by Real Programmers is call-by-value-return, as implemented in the {IBM 370} {Fortran-G} and H compilers. Real programmers don't need all these abstract concepts to get their jobs done - they are perfectly happy with a {keypunch}, a {Fortran IV} {compiler}, and a beer.
Real Programmers do List Processing in Fortran.
Real Programmers do String Manipulation in Fortran.
Real Programmers do Accounting (if they do it at all) in Fortran.
Real Programmers do {Artificial Intelligence} programs in Fortran.
If you can't do it in Fortran, do it in {assembly language}. If you can't do it in assembly language, it isn't worth doing.
STRUCTURED PROGRAMMING
The academics in computer science have gotten into the "structured programming" rut over the past several years. They claim that programs are more easily understood if the programmer uses some special language constructs and techniques. They don't all agree on exactly which constructs, of course, and the examples they use to show their particular point of view invariably fit on a single page of some obscure journal or another - clearly not enough of an example to convince anyone. When I got out of school, I thought I was the best programmer in the world. I could write an unbeatable tic-tac-toe program, use five different computer languages, and create 1000-line programs that WORKED. (Really!) Then I got out into the Real World. My first task in the Real World was to read and understand a 200,000-line Fortran program, then speed it up by a factor of two. Any Real Programmer will tell you that all the Structured Coding in the world won't help you solve a problem like that - it takes actual talent. Some quick observations on Real Programmers and Structured Programming:
Real Programmers aren't afraid to use {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 GOTOs}.
Data Structures have also gotten a lot of press lately. Abstract Data Types, Structures, Pointers, Lists, and Strings have become popular in certain circles. Wirth (the above-mentioned Quiche Eater) actually wrote an entire book [2] contending that you could write a program based on data structures, instead of the other way around. As all Real Programmers know, the only useful data structure is the Array. Strings, lists, structures, sets - these are all special cases of arrays and can be treated that way just as easily without messing up your programing language with all sorts of complications. The worst thing about fancy data types is that you have to declare them, and Real Programming Languages, as we all know, have implicit typing based on the first letter of the (six character) variable name.
OPERATING SYSTEMS
What kind of operating system is used by a Real Programmer? CP/M? God forbid - CP/M, after all, is basically a toy operating system. Even little old ladies and grade school students can understand and use CP/M.
Unix is a lot more complicated of course - the typical Unix hacker never can remember what the PRINT command is called this week - but when it gets right down to it, Unix is a glorified video game. People don't do Serious Work on Unix systems: they send jokes around the world on {UUCP}-net and write adventure games and research papers.
No, your Real Programmer uses OS 370. A good programmer can find and understand the description of the IJK305I error he just got in his JCL manual. A great programmer can write JCL without referring to the manual at all. A truly outstanding programmer can find bugs buried in a 6 megabyte {core dump} without using a hex calculator. (I have actually seen this done.)
OS is a truly remarkable operating system. It's possible to destroy days of work with a single misplaced space, so alertness in the programming staff is encouraged. The best way to approach the system is through a keypunch. Some people claim there is a Time Sharing system that runs on OS 370, but after careful study I have come to the conclusion that they were mistaken.
PROGRAMMING TOOLS
What kind of tools does a Real Programmer use? In theory, a Real Programmer could run his programs by keying them into the front panel of the computer. Back in the days when computers had front panels, this was actually done occasionally. Your typical Real Programmer knew the entire bootstrap loader by memory in hex, and toggled it in whenever it got destroyed by his program. (Back then, memory was memory - it didn't go away when the power went off. Today, memory either forgets things when you don't want it to, or remembers things long after they're better forgotten.) Legend has it that {Seymore Cray}, inventor of the Cray I supercomputer and most of Control Data's computers, actually toggled the first operating system for the CDC7600 in on the front panel from memory when it was first powered on. Seymore, needless to say, is a Real Programmer.
One of my favorite Real Programmers was a systems programmer for Texas Instruments. One day he got a long distance call from a user whose system had crashed in the middle of saving some important work. Jim was able to repair the damage over the phone, getting the user to toggle in disk I/O instructions at the front panel, repairing system tables in hex, reading register contents back over the phone. The moral of this story: while a Real Programmer usually includes a keypunch and lineprinter in his toolkit, he can get along with just a front panel and a telephone in emergencies.
In some companies, text editing no longer consists of ten engineers standing in line to use an 029 keypunch. In fact, the building I work in doesn't contain a single keypunch. The Real Programmer in this situation has to do his work with a "text editor" program. Most systems supply several text editors to select from, and the Real Programmer must be careful to pick one that reflects his personal style. Many people believe that the best text editors in the world were written at Xerox Palo Alto Research Center for use on their Alto and Dorado computers [3]. Unfortunately, no Real Programmer would ever use a computer whose operating system is called SmallTalk, and would certainly not talk to the computer with a mouse.
Some of the concepts in these Xerox editors have been incorporated into editors running on more reasonably named operating systems - {Emacs} and {VI} being two. The problem with these editors is that Real Programmers consider "what you see is what you get" to be just as bad a concept in Text Editors as it is in women. No the Real Programmer wants a "you asked for it, you got it" text editor - complicated, cryptic, powerful, unforgiving, dangerous. TECO, to be precise.
It has been observed that a TECO command sequence more closely resembles transmission line noise than readable text [4]. One of the more entertaining games to play with TECO is to type your name in as a command line and try to guess what it does. Just about any possible typing error while talking with TECO will probably destroy your program, or even worse - introduce subtle and mysterious bugs in a once working subroutine.
For this reason, Real Programmers are reluctant to actually edit a program that is close to working. They find it much easier to just patch the binary {object code} directly, using a wonderful program called SUPERZAP (or its equivalent on non-IBM machines). This works so well that many working programs on IBM systems bear no relation to the original Fortran code. In many cases, the original source code is no longer available. When it comes time to fix a program like this, no manager would even think of sending anything less than a Real Programmer to do the job - no Quiche Eating structured programmer would even know where to start. This is called "job security".
Some programming tools NOT used by Real Programmers:
Fortran preprocessors like {MORTRAN} and {RATFOR}. The Cuisinarts of programming - great for making Quiche. See comments above on structured programming.
Source language debuggers. Real Programmers can read core dumps.
Compilers with array bounds checking. They stifle creativity, destroy most of the interesting uses for EQUIVALENCE, and make it impossible to modify the operating system code with negative subscripts. Worst of all, bounds checking is inefficient.
Source code maintenance systems. A Real Programmer keeps his code locked up in a card file, because it implies that its owner cannot leave his important programs unguarded [5].
THE REAL PROGRAMMER AT WORK
Where does the typical Real Programmer work? What kind of programs are worthy of the efforts of so talented an individual? You can be sure that no Real Programmer would be caught dead writing accounts-receivable programs in {COBOL}, or sorting {mailing lists} for People magazine. A Real Programmer wants tasks of earth-shaking importance (literally!).
Real Programmers work for Los Alamos National Laboratory, writing atomic bomb simulations to run on Cray I supercomputers.
Real Programmers work for the National Security Agency, decoding Russian transmissions.
It was largely due to the efforts of thousands of Real Programmers working for NASA that our boys got to the moon and back before the Russkies.
Real Programmers are at work for Boeing designing the operating systems for cruise missiles.
Some of the most awesome Real Programmers of all work at the Jet Propulsion Laboratory in California. Many of them know the entire operating system of the Pioneer and Voyager spacecraft by heart. With a combination of large ground-based Fortran programs and small spacecraft-based assembly language programs, they are able to do incredible feats of navigation and improvisation - hitting ten-kilometer wide windows at Saturn after six years in space, repairing or bypassing damaged sensor platforms, radios, and batteries. Allegedly, one Real Programmer managed to tuck a pattern-matching program into a few hundred bytes of unused memory in a Voyager spacecraft that searched for, located, and photographed a new moon of Jupiter.
The current plan for the Galileo spacecraft is to use a gravity assist trajectory past Mars on the way to Jupiter. This trajectory passes within 80 +/-3 kilometers of the surface of Mars. Nobody is going to trust a Pascal program (or a Pascal programmer) for navigation to these tolerances.
As you can tell, many of the world's Real Programmers work for the U.S. Government - mainly the Defense Department. This is as it should be. Recently, however, a black cloud has formed on the Real Programmer horizon. It seems that some highly placed Quiche Eaters at the Defense Department decided that all Defense programs should be written in some grand unified language called "ADA" ((C), DoD). For a while, it seemed that ADA was destined to become a language that went against all the precepts of Real Programming - a language with structure, a language with data types, {strong typing}, and semicolons. In short, a language designed to cripple the creativity of the typical Real Programmer. Fortunately, the language adopted by DoD has enough interesting features to make it approachable -- it's incredibly complex, includes methods for messing with the operating system and rearranging memory, and Edsgar Dijkstra doesn't like it [6]. (Dijkstra, as I'm sure you know, was the author of "GoTos Considered Harmful" - a landmark work in programming methodology, applauded by Pascal programmers and Quiche Eaters alike.) Besides, the determined Real Programmer can write Fortran programs in any language.
The Real Programmer might compromise his principles and work on something slightly more trivial than the destruction of life as we know it, providing there's enough money in it. There are several Real Programmers building video games at Atari, for example. (But not playing them - a Real Programmer knows how to beat the machine every time: no challenge in that.) Everyone working at LucasFilm is a Real Programmer. (It would be crazy to turn down the money of fifty million Star Trek fans.) The proportion of Real Programmers in Computer Graphics is somewhat lower than the norm, mostly because nobody has found a use for computer graphics yet. On the other hand, all computer graphics is done in Fortran, so there are a fair number of people doing graphics in order to avoid having to write COBOL programs.
THE REAL PROGRAMMER AT PLAY
Generally, the Real Programmer plays the same way he works - with computers. He is constantly amazed that his employer actually pays him to do what he would be doing for fun anyway (although he is careful not to express this opinion out loud). Occasionally, the Real Programmer does step out of the office for a breath of fresh air and a beer or two. Some tips on recognizing Real Programmers away from the computer room:
At a party, the Real Programmers are the ones in the corner talking about operating system security and how to get around it.
At a football game, the Real Programmer is the one comparing the plays against his simulations printed on 11 by 14 fanfold paper.
At the beach, the Real Programmer is the one drawing flowcharts in the sand.
At a funeral, the Real Programmer is the one saying "Poor George, he almost had the sort routine working before the coronary."
In a grocery store, the Real Programmer is the one who insists on running the cans past the laser checkout scanner himself, because he never could trust keypunch operators to get it right the first time.
THE REAL PROGRAMMER'S NATURAL HABITAT
What sort of environment does the Real Programmer function best in? This is an important question for the managers of Real Programmers. Considering the amount of money it costs to keep one on the staff, it's best to put him (or her) in an environment where he can get his work done.
The typical Real Programmer lives in front of a computer terminal. Surrounding this terminal are:
Listings of all programs the Real Programmer has ever worked on, piled in roughly chronological order on every flat surface in the office.
Some half-dozen or so partly filled cups of cold coffee. Occasionally, there will be cigarette butts floating in the coffee. In some cases, the cups will contain Orange Crush.
Unless he is very good, there will be copies of the OS JCL manual and the Principles of Operation open to some particularly interesting pages.
Taped to the wall is a line-printer Snoopy calendar for the year 1969.
Strewn about the floor are several wrappers for peanut butter filled cheese bars - the type that are made pre-stale at the bakery so they can't get any worse while waiting in the vending machine.
Hiding in the top left-hand drawer of the desk is a stash of double-stuff Oreos for special occasions.
Underneath the Oreos is a flowcharting template, left there by the previous occupant of the office. (Real Programmers write programs, not documentation. Leave that to the maintenance people.)
The Real Programmer is capable of working 30, 40, even 50 hours at a stretch, under intense pressure. In fact, he prefers it that way. Bad response time doesn't bother the Real Programmer - it gives him a chance to catch a little sleep between compiles. If there is not enough schedule pressure on the Real Programmer, he tends to make things more challenging by working on some small but interesting part of the problem for the first nine weeks, then finishing the rest in the last week, in two or three 50-hour marathons. This not only impresses the hell out of his manager, who was despairing of ever getting the project done on time, but creates a convenient excuse for not doing the documentation. In general:
No Real Programmer works 9 to 5 (unless it's the ones at night).
Real Programmers don't wear neckties.
Real Programmers don't wear high-heeled shoes.
Real Programmers arrive at work in time for lunch [9].
A Real Programmer might or might not know his wife's name. He does, however, know the entire {ASCII} (or EBCDIC) code table.
Real Programmers don't know how to cook. Grocery stores aren't open at three in the morning. Real Programmers survive on Twinkies and coffee.
THE FUTURE
What of the future? It is a matter of some concern to Real Programmers that the latest generation of computer programmers are not being brought up with the same outlook on life as their elders. Many of them have never seen a computer with a front panel. Hardly anyone graduating from school these days can do hex arithmetic without a calculator. College graduates these days are soft - protected from the realities of programming by source level debuggers, text editors that count parentheses, and "user friendly" operating systems. Worst of all, some of these alleged "computer scientists" manage to get degrees without ever learning Fortran! Are we destined to become an industry of Unix hackers and Pascal programmers?
From my experience, I can only report that the future is bright for Real Programmers everywhere. Neither OS 370 nor Fortran show any signs of dying out, despite all the efforts of Pascal programmers the world over. Even more subtle tricks, like adding structured coding constructs to Fortran have failed. Oh sure, some computer vendors have come out with Fortran 77 compilers, but every one of them has a way of converting itself back into a Fortran 66 compiler at the drop of an option card - to compile DO loops like God meant them to be.
Even Unix might not be as bad on Real Programmers as it once was. The latest release of Unix has the potential of an operating system worthy of any Real Programmer - two different and subtly incompatible user interfaces, an arcane and complicated teletype driver, virtual memory. If you ignore the fact that it's "structured", even 'C' programming can be appreciated by the Real Programmer: after all, there's no type checking, variable names are seven (ten? eight?) characters long, and the added bonus of the Pointer data type is thrown in - like having the best parts of Fortran and assembly language in one place. (Not to mention some of the more creative uses for #define.)
No, the future isn't all that bad. Why, in the past few years, the popular press has even commented on the bright new crop of computer nerds and hackers ([7] and [8]) leaving places like Stanford and M.I.T. for the Real World. From all evidence, the spirit of Real Programming lives on in these young men and women. As long as there are ill-defined goals, bizarre bugs, and unrealistic schedules, there will be Real Programmers willing to jump in and Solve The Problem, saving the documentation for later. Long live Fortran!
ACKNOWLEGEMENT
I would like to thank Jan E., Dave S., Rich G., Rich E., for their help in characterizing the Real Programmer, Heather B. for the illustration, Kathy E. for putting up with it, and atd!avsdS:mark for the initial inspiration.
REFERENCES
[1] Feirstein, B., "Real Men don't Eat Quiche", New York, Pocket Books, 1982.
[2] Wirth, N., "Algorithms + Data Structures Programs", Prentice Hall, 1976.
[3] Ilson, R., "Recent Research in Text Processing", IEEE Trans. Prof. Commun., Vol. PC-23, No. 4, Dec. 4, 1980.
[4] Finseth, C., "Theory and Practice of Text Editors - or - a Cookbook for an EMACS", B.S. Thesis, MIT/LCS/TM-165, Massachusetts Institute of Technology, May 1980.
[5] Weinberg, G., "The Psychology of Computer Programming", New York, Van Nostrand Reinhold, 1971, p. 110.
[6] Dijkstra, E., "On the GREEN language submitted to the DoD", Sigplan notices, Vol. 3 No. 10, Oct 1978.
[7] Rose, Frank, "Joy of Hacking", Science 82, Vol. 3 No. 9, Nov 82, pp. 58-66.
[8] "The Hacker Papers", Psychology Today, August 1980.
[9] sdcarl!lin, "Real Programmers", UUCP-net, Thu Oct 21 16:55:16 1982.
Ed Post, "Real Programmers Don't Use Pascal", DATAMATION, July 1983, pp. 263-265 (Readers' Forum).
(1997-08-29)

real soon now
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).
[{Jargon File}]

real time streaming protocol
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 user
1. A commercial user. One who is paying *real* money for his computer usage.
2. A non-hacker. Someone using the system for an explicit purpose (a research project, a course, etc.) other than pure exploration. See {user}. Hackers who are also students may also be real users. "I need this fixed so I can do a problem set. I'm not complaining out of randomness, but as a real user." See also {luser}.
[{Jargon File}]

real video
Real Video
[video, compression] A {lossy} video compression format from {Real Media}.
(2001-12-13)

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

realaudio
RealAudio
[tool, communications] A program from {Real Media} for playing {audio} over the {Internet}, and the {lossy} audio compression format it uses.
The system is implemented as a {client/server} architecture. The RealAudio server incorporates an {encoder} which compresses sound into RealAudio files. The client side is a {web browser} {plug-in} or {add-on} (a recent version of {Internet Explorer} apparently has built-in support for RealAudio) which allows the stream of data sent from the server to be uncompressed and output using the normal sound facilities of the computer, such as a {sound card}.
A 14.4 {KBps} or better {modem} is required, and a 28.8 KBps connection is recommended for music-quality sound.
{Home (http://www.realaudio.com/)}.
(2001-12-13)

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

realtime
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 common design language
Real-Time Common Design Language
[language] (RT-CDL) A {real-time} language for the design of reliable {reactive systems}.
["RT-CDL: A Real-Time Description Language and Its Semantics", L.Y. Lin et al, 11th World Computer Congress IFIP '89 pp.19-26 Sep 1989].
(2003-06-07)

realtime disk operating system
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)

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

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

realtime objectoriented modeling
Real-Time Object-Oriented Modeling
[programming] (ROOM Methodology)
{Home (http://www.objectime.on.ca/ROOM.HTML)}.
[Summary?]
(1997-02-17)

realtime operating system
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)

realtime operating system nucleus
Real-Time Operating System Nucleus
{The Real-Time Operating System Nucleus}

realtime pascal
Real-Time Pascal
[language] A later name for {Pascal-80} by {RC International}, Denmark.
(1995-05-09)

realtime structured analysis
real-time structured analysis
[programming] (RTSA) Any version of {structured analysis} capable of modelling {real-time} aspects of software.
(1995-04-06)

realtime transport protocol
Real-Time Transport Protocol
[protocol] (RTP) An {Internet} {protocol} for transmitting {real-time} data such as {audio} and {video}. RTP itself does not guarantee real-time delivery of data, but it does provide mechanisms for the sending and receiving applications to support {streaming} data. Typically, RTP runs on top of the {UDP} protocol, although the specification is general enough to support other {transport protocols}.
RTP has received wide industry support. {Netscape} intends to base its {LiveMedia} technology on RTP, and {Microsoft} claims that its {NetMeeting} product supports RTP.
(2003-07-06)

reaper
A {prowler} that {GFR}s files. A file removed in this way is said to have been "reaped".
[{Jargon File}]

reassembly
{segmentation}

reboot
[operating system] (From {boot}) A {boot} with the implication that the computer has not been down for long, or that the {boot} is a {bounce} intended to clear some state of {wedgitude}.
See {warm boot}.
(1995-11-27)

rec
REC
Regular Expression Converter. See {CONVERT}.

recipe
{suspension}

recipient
[communications] One who receives; receiver. E.g. "No recipient of the {e-mail} message will know about the other {addressees} who were listed in the {BCC} header."
(2000-03-22)

recital
Recital
{dBASE}-like language and {DBMS} from Recital Corporation. Versions include {Vax} {VMS}.

recol
RECOL
REtrieval COmmand Language. CACM 6(3):117-122 (Mar 1963).

recommended standard
Recommended Standard
[standard] (RS) A series of {EIA} {standards} including {EIA-232}.
(1995-03-28)

record
[data, database, programming] An {ordered set} of {fields}, usually stored contiguously. The term is used with similar meaning in several different contexts. In a file, a "record" probably has some fixed length, in contrast to a "line" which may have any length and is terminated by some {End Of Line} sequence). A {database} record is also called a "row". In a {spreadsheet} it is always called a "row". Some programming languages use the term to mean a type composed of fields of several other types ({C} calls this a "{struct}").
In all these cases, a record represents an entity with certain field values.
Fields may be of a fixed width ({bit}s or {characters}) or they may be separated by a {delimiter} character, often {comma} ({CSV}) or {HT} ({TSV}).
In a database the list of values of a given field from all records is called a column.
(2002-03-22)

record management services
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
Record Separator
[character] (RS) {ASCII} character 30.

rectangle slinger
See {polygon pusher}.
[{Jargon File}]

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}.
[{Jargon File}]
(1996-05-11)

recursion theory
[theory] The study of problems that, in principle, cannot be solved by either computers or humans.
[Proper definition?]
(1999-03-01)

recursive
{recursion}

recursive acronym
[convention] A hackish (and especially {MIT}) tradition is to choose acronyms and abbreviations that refer humorously to themselves or to other acronyms or abbreviations. The classic examples were two MIT editors called {EINE} ("EINE Is Not {Emacs}") and {ZWEI} ("ZWEI Was EINE Initially"). More recently, there is a {Scheme} compiler called {LIAR} (Liar Imitates Apply Recursively), and {GNU} stands for "GNU's Not Unix!" - and a company with the name {CYGNUS}, which expands to "Cygnus, Your GNU Support".
See also {mung}.
[{Jargon File}]
(1995-04-28)

recursive definition
See {recursive definition}.

recursive descent parser
[grammar] A "top-down" {parser} built from a set of {mutually-recursive} procedures or a non-recursive equivalent where each such procedure usually implements one of the {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
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
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
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
Red Book
1. [publication] Informal name for one of the four standard references on {PostScript}. The other three official guides are known as the {Blue Book}, the {Green Book}, and the {White Book}.
["PostScript Language Reference Manual", Adobe Systems, Addison-Wesley, 1985 (ISBN 0-201-10174-2); second edition 1990 (ISBN 0-201-18127-4)].
2. [publication] Informal name for one of the three standard references on Smalltalk. This book also has blue and green siblings.
["Smalltalk-80: The Interactive Programming Environment", Adele Goldberg, Addison-Wesley, 1984; (ISBN 0-201-11372-4)].
3. [publication] Any of the 1984 standards issued by the {ITU-T} eighth plenary assembly. These include, among other things, the {X.400} {electronic mail} specification, the Group 1 through 4 fax standards, {ISDN}, the R2 signalling system (Q.400 series recommendations), data communication via the {PSTN} (the V series recommendations) and tariffs and metering principles (the D series).
4. [publication] The new version of the {Green Book} - IEEE 1003.1-1990, also known as ISO 9945-1 - is (because of the colour and the fact that it is printed on A4 paper) known in the USA. as "the Ugly Red Book That Won't Fit On The Shelf" and in Europe as "the Ugly Red Book That's A Sensible Size".
5. [publication] The NSA "Trusted Network Interpretation" companion to the {Orange Book}.
See also {book titles}.
[{Jargon File}]

red brick intelligent sql
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)

red hat
Red Hat
[operating system] A distribution of {Linux}.
{Home (http://www.redhat.com/)}.
(1996-12-21)

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}.
[{Jargon File}]
(1994-12-23)

red zone
[networking] An environment located between internal and external {firewalls} where software and hardware are deployed to enable access to {extranet} applications.
Compare {De-Militarised Zone}.
(1997-11-05)

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

redilisp
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
RedNet Ltd.
[company] A systems integration company who also provide "onLine", an {Internet} service aimed at both hobbyists and corporate end-users. The service offers {dial-in} with {slip} or {PPP}, {POP3} {electronic mail}.
{(http://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
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
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
Redundant Array of Inexpensive Disks
It's {Redundant Arrays of Independent Disks}.

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/raidPapers)}.
{(http://HTTP.CS.Berkeley.EDU/projects/parallel/research_summaries/14-Computer-Architecture/)}.
["A Case for Redundant Arrays of Inexpensive Disks (RAID)", "D. A. Patterson and G. Gibson and R. H. Katz", Proc ACM SIGMOD Conf, Chicago, IL, Jun 1988].
["Introduction to Redundant Arrays of Inexpensive Disks (RAID)", "D. A. Patterson and P. Chen and G. Gibson and R. H. Katz", IEEE COMPCON 89, San Francisco, Feb-Mar 1989].
(1995-07-20)

redundant arrays of inexpensive disks
Redundant Arrays of Inexpensive Disks
Renamed {Redundant Arrays of Independent Disks}.

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

reentrant
re-entrant
[programming] Used to describe code which can have multiple simultaneous, interleaved, or nested invocations which will not interfere with each other. This is important for {parallel processing}, {recursive} functions or subroutines, and {interrupt handling}.
It is usually easy to arrange for multiple invocations (e.g. calls to a subroutine) to share one copy of the code and any read-only data but, for the code to be re-entrant, each invocation must use its own copy of any modifiable data (or synchronised access to shared data). This is most often achieved using a {stack} and allocating local variables in a new {stack frame} for each invocation. Alternatively, the caller may pass in a pointer to a block of memory which that invocation can use (usually for outputting the result) or the code may allocate some memory on a {heap}, especially if the data must survive after the routine returns.
Re-entrant code is often found in system software, such as {operating systems} and {teleprocessing monitors}. It is also a crucial component of {multithreaded} programs where the term "thread-safe" is often used instead of "re-entrant".
(1996-12-21)

refactoring
[object-oriented, programming] Improving a computer {program} by reorganising its internal structure without altering its external behaviour.
When software developers add new features to a program, the code degrades because the original program was not designed with the extra features in mind.
This problem could be solved by either rewriting the existing code or working around the problems which arise when adding the new features. Redesigning a program is extra work, but not doing so would create a program which is more complicated than it needs to be. Refactoring is a collection of techniques which have been designed to provide an alternative to the two situations mentioned above.
The techniques enable programmers to restructure code so that the design of a program is clearer. It also allows programmers to extract {reusable components}, streamline a program, and make additions to the program easier to implement.
Refactoring is usually done by renaming {methods}, moving {fields} from one {class} to another, and moving code into a separate method.
Although it is done using small and simple steps, refactoring a program will vastly improve its design and structure, making it easier to maintain and leading to more robust code.
{"Refactoring, Reuse & Reality" by Bill Opdyke (http://st-www.cs.uiuc.edu/users/opdyke/wfo.990201.refac.html)}.
{"Refactoring, a first example" by Martin Fowler
(http://www.aw.com/cseng/titles/0-201-89542-0/vidrefact/vidrefact.html)}.
(2001-05-02)

refal
REFAL
{Recursive Functional Algorithmic Language}

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

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)

referentially transparent
{referential transparency}

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
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
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
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
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
RefLisp
[language] A {Lisp} {interpreter} by Bill Birch of {Bull}, 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/implementations/reflisp/)}.
(2000-03-28)

refresh
1. [storage] {DRAM refresh}.
2. [hardware] {screen refresh}.
(1998-10-19)

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)

refreshable braille display
{braille display}

refreshable display
{braille display}

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].
[{Jargon File}]

regina
Regina
[standard] A widely-used {open source} {Rexx} {interpreter} by Anders Christensen [anders@pvv.unit.no], ported to many {platforms} including {Unix}, {Windows 95}, {Windows NT}, {OS/2}. Regina is currently maintained by Mark Hessling.
Regina conforms almost completely to Rexx Language Level 4.00, with some Rexx SAA API extensions. It is distributed under the GNU {General Public License}.
Current version: 2.0+, as of 2001-03-30.
{Home {http://www.lightlink.com/hessling/)}.
{Usenet} newsgroup: {news:comp.lang.rexx}.
(2001-03-30)

regional network
{mid-level network}

register
1. One of a small number of high-speed memory locations in a computer's {CPU}. Registers differ from ordinary {random access memory} in several respects:
There are only a small number of registers (the "register set"), typically 32 in a modern processor though some, e.g. {SPARC}, have as many as 144. A register may be directly addressed with a few bits. In contrast, there are usually millions of words of main memory (RAM), requiring at least twenty bits to specify a memory location. Main memory locations are often specified indirectly, using an {indirect addressing} mode where the actual memory address is held in a register.
Registers are fast; typically, two registers can be read and a third written -- all in a single cycle. Memory is slower; a single access can require several cycles.
The limited size and high speed of the register set makes it one of the critical resources in most computer architectures. {Register allocation}, typically one phase of the {back-end}, controls the use of registers by a compiled program.
See also {accumulator}, {FUBAR}, {orthogonal}, {register dancing}, {register allocation}, {register spilling}.
2. An addressable location in a {memory-mapped} peripheral device. E.g. the transmit data register in a {UART}.

register allocation
[compiler, algorithm] The phase of a {compiler} that determines which values will be placed in {registers}. Register allocation may be combined with {register assignment}.
This problem can be shown to be isomorphic to {graph colouring} by relating values to nodes in the graph and registers to colours. Values (nodes) which must be valid simultaneously are linked by edges and cannot be stored in the same register (coloured the same).
See also {register dancing} and {register spilling}.
[Preston Briggs, PhD thesis, Rice University, April 1992 {"Register Allocation via Graph Coloring" (ftp://ftp.cs.rice.edu/public/preston/thesis.ps.gz)}].
(2000-12-04)

register assignment
[compiler, algorithm] The phase of a {compiler} that determines which {register} to use for each program value selected during {register allocation}.
(2000-12-04)

register dancing
Many older processor architectures suffer from a serious shortage of general-purpose registers. This is especially a problem for compiler-writers, because their generated code needs places to store temporaries for things like intermediate values in expression evaluation. Some designs with this problem, like the Intel 80x86, do have a handful of special-purpose registers that can be pressed into service, providing suitable care is taken to avoid unpleasant side effects on the state of the processor: while the special-purpose register is being used to hold an intermediate value, a delicate minuet is required in which the previous value of the register is saved and then restored just before the official function (and value) of the special-purpose register is again needed.
[{Jargon File}]

register set
All a processor's {registers}. The size and arrangement of a processor's register set is one of the crucial factors in its performance.

register spilling
[programming, compiler] (By analogy with spilling the contents of an overfull container) When a {compiler} is generating {machine code} and there are more {live variables} than the machine has {registers} and it has to transfer or "spill" some variables from registers to memory.
(1997-06-24)

register transfer language
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)

registered port
[networking] Any {TCP} or {UDP} {port} with a number in the range 1025 to 65535 (i.e. not a {well-known port}) that is registered with {IANA}.

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)

regsymbolic
REG-SYMBOLIC
An early system on the {IBM 704}.
[Listed in CACM 2(5):16 (May 1959)].
(1994-12-02)

regtral
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 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
Reid, Brian
{Brian Reid}

reify
To regard (something abstract) as a material thing.
(1995-03-07)

reincarnation cycle of
reincarnation, cycle of
{cycle of reincarnation}

reinvent the wheel
[jargon] To design or implement a tool equivalent to an existing one or part of one, with the implication that doing so is silly or a waste of time. This is often a valid criticism. On the other hand, automobiles don't use wooden rollers, and some kinds of wheel have to be reinvented many times before you get them right. On the third hand, people reinventing the wheel do tend to come up with the moral equivalent of a trapezoid with an offset axle.
[{Jargon File}]
(1997-04-12)

rel english
REL English
{Rapidly Extensible Language, English}

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 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 database
[database] (RDBMS - relational database management system) A {database} based on the {relational model} developed by {E.F. Codd}. A relational database allows the definition of data structures, storage and retrieval operations and {integrity constraints}. In such a database the data and relations between them are organised in {tables}. A table is a collection of rows or {records} and each row in a table contains the same {fields}. Certain fields may be designated as {keys}, which means that searches for specific values of that field will use indexing to speed them up.
Where fields in two different tables take values from the same set, a {join} operation can be performed to select related records in the two tables by matching values in those fields. Often, but not always, the fields will have the same name in both tables. For example, an "orders" table might contain (customer_id, product_code) pairs and a "products" table might contain (product_code, price) pairs so to calculate a given customer's bill you would sum the prices of all products ordered by that customer by joining on the product-code fields of the two tables. This can be extended to joining multiple tables on multiple fields. Because these relationships are only specified at retreival time, relational databases are classed as {dynamic database management system}.
The first commercial RDBMS was the {Multics Relational Data Store}, first sold in 1978.
{INGRES}, {Oracle}, {Sybase, Inc.}, {Microsoft Access}, and {Microsoft SQL Server} are well-known database products and companies. Others include {PostgreSQL}, {SQL/DS}, and {RDB}.
["Managing Data Bases, Four Critical Factors" Michael M. Gorman, QED Information Sciences, Inc.].
["An Introduction To Database Systems" (6th ed) C. J. Date, Addison Wesley (an excellent source of detailed info)].
["An End-User's Guide to Data Base" James Martin, Prentice Hall (excellent place to begin learning about DBMS)].
(2002-06-10)

relational database management system
{relational database}

relational dbms
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
RELATIVE
Early system on IBM 650. Listed in CACM 2(5):16 (May 1959).

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
Relative Record Data Set
[database] (RRDS) One of the access methods used by {IBM}'s {VSAM}.
[What is it?]
(1999-01-12)

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)

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

relevance
[information science] A measure of how closely a given object (file, {web page}, database {record}, etc.) matches a user's search for information.
The relevance {algorithms} used in most large web {search engines} today are based on fairly simple word-occurence measurement: if the word "daffodil" occurs on a given page, then that page is considered relevant to a {query} on the word "daffodil"; and its relevance is quantised as a factor of the number of times the word occurs in the page, on whether "daffodil" occurs in title of the page or in its META keywords, in the first {N} words of the page, in a heading, and so on; and similarly for words that a {stemmer} says are based on "daffodil".
More elaborate (and resource-expensive) relevance algorithms may involve thesaurus (or {synonym ring}) lookup; e.g. it might rank a document about narcissuses (but which may not mention the word "daffodil" anywhere) as relevant to a query on "daffodil", since narcissuses and daffodils are basically the same thing. Ditto for queries on "jail" and "gaol", etc.
More elaborate forms of thesaurus lookup may involve multilingual thesauri (e.g. knowing that documents in Japanese which mention the Japanese word for "narcissus" are relevant to your search on "narcissus"), or may involve thesauri (often auto-generated) based not on equivalence of meaning, but on word-proximity, such that "bulb" or "bloom" may be in the thesaurus entry for "daffodil".
{Word spamming} essentially attempts to falsely increase a web page's relevance to certain common searches.
See also {subject index}.
(1997-04-09)

reliability
[system] An attribute of any system that consistently produces the same results, preferably meeting or exceeding its specifications. The term may be qualified, e.g {software reliability}, {reliable communication}.
Reliability is one component of {RAS}.
(2000-08-13)

reliability availability serviceability
Reliability, Availability, Serviceability
[system, design, hardware, software] (RAS) Three key attributes of a computing system design. See {reliability}, {availability}, and {serviceability}.
The term "RAS" is fairly common in the computing industry (particularly computers and storage) as computing becomes more fundamental. For example, a vehicle may depend on dozens of computers, and the consequences of the failure can be significant (e.g., an ambulance's engine won't start).
(2000-08-13)

reliable communication
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
religion of CHI
/ki:/ [Case Western Reserve University] Yet another hackish parody religion (see also {Church of the SubGenius}, {Discordianism}). In the mid-70s, the canonical "Introduction to Programming" courses at CWRU were taught in {ALGOL}, and student exercises were punched on cards and run on a Univac 1108 system using a homebrew operating system named CHI. The religion had no doctrines and but one ritual: whenever the worshipper noted that a digital clock read 11:08, he or she would recite the phrase "It is 11:08; ABS, ALPHABETIC, ARCSIN, ARCCOS, ARCTAN." The last five words were the first five functions in the appropriate chapter of the ALGOL manual; note the special pronunciations /obz/ and /ark'sin/ rather than the more common /ahbz/ and /ark'si:n/. Using an alarm clock to warn of 11:08's arrival was {considered harmful}.
[{Jargon File}]

religious issues
Questions which seemingly cannot be raised without touching off {holy wars}, such as "What is the best operating system (or editor, language, architecture, shell, mail reader, news reader)?", "What about that Heinlein guy, eh?", "What should we add to the new Jargon File?" See {holy wars}; see also {theology}, {bigot}.
This term is a prime example of {ha ha only serious}. People actually develop the most amazing and religiously intense attachments to their tools, even when the tools are intangible. The most constructive thing one can do when one stumbles into the crossfire is mumble {Get a life!} and leave - unless, of course, one's *own* unassailably rational and obviously correct choices are being slammed.
(1996-08-16)

rem
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
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
Remote Database Access
[database, standard] (RDBA) A standard permitting the exchange of information between different {DBMS} systems.
(1998-09-23)

remote echo
[communications] (Obsolete: "full-duplex") A mode of operation of communicating programs or devices in which the sending system does not display the characters the user enters, but only sends them to the remote system which then "echoes" them back to be displayed to the user. This lets the operator see not only typing errors, but also transmission errors. This is now the usual mode of most systems with remote users.
Contrast: {local echo}.
(2000-03-30)

remote job entry
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
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 monitoring
[protocol] (RMON) A {network management} {protocol} that allows network information to be gathered at a single computer. Whereas {SNMP} gathers network data from a single type of {Management Information Base} (MIB), RMON 1 defines nine additional MIBs that provide a much richer set of data about network usage. For RMON to work, network devices, such as {hubs} and {switches}, must be designed to support it.
The newest version of RMON, RMON 2, provides data about {traffic} at the {network layer} in addition to the {physical layer}. This allows administrators to analyse traffic by protocol.
(2003-09-15)

remote operations service element
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
Remote Procedure Call
[networking, programming] (RPC) A {protocol} which allows a program running on one {host} to cause code to be executed on another host without the programmer needing to explicitly code for this. RPC is an easy and popular paradigm for implementing the {client-server} model of {distributed computing}. An RPC is initiated by the caller (client) sending request message to a remote system (the server) to execute a certain procedure using arguments supplied. A result message is returned to the caller. There are many variations and subtleties in various implementations, resulting in a variety of different (incompatible) RPC {protocols}.
{Sun} RPC is defined in {RFC 1057} and {ONC} RPC in {RFC 1831}.
(2003-06-04)

remote reference layer
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
Remote Spooling Communication Subsystem
[communications] (RSCS) A {networking} {protocol} used primarily on {Bitnet}.
[Details?]
(1996-02-04)

remote write protocol
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
[graphics, text] The conversion of a high-level object-based description into a graphical image for display.
For example, {ray-tracing} takes a mathematical model of a three-dimensional object or scene and converts it into a {bitmap} image. Another example is the process of converting {HTML} into an image for display to the user.
(2001-02-06)

renderman shading language
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
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}

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)

repeater
[networking, communications] A network or communications device which propagates electrical signals from one cable to another, amplifying them to restore them to full strength in the process. Repeaters are used to counter the attenuation which occurs when signals travel long distances (e.g. across an ocean).
A network repeater is less intelligent than a {bridge}, {gateway} or {router} since it works at the {physical layer}.
(1998-07-16)

repeating group
[database] Any {attribute} that can have multiple values associated with a single instance of some {entity}. For example, a book might have multiple authors.
In order to represent such a relationship in a {relational database}, it would be converted to "first normal form" as the first step in {database normalisation}. Each author of the book would then appear in a separate {row}, each of which also contained the book's {primary key}.
(2001-04-10)

repetitive strain disorder
{overuse strain injury}

repetitive strain injury
{overuse strain injury}

repl
REPL
1. [language, LISP, programming] {read-eval-print loop}.
2. [language] {Restricted EPL}.
(2003-06-23)

replacement algorithm
The method used to determine which entry in an associative {cache} to flush to main memory when it is desired to cache a new block of data. The "least recently used" algorithm flushed the block which has not been accessed for the longest time. A random replacement algorithm picks any block with equal probability.

replay
Replay
{Acorn Computers}' {full-motion video} system written by Roger Wilson. Video and sound information are stored in compressed form. Compression is relatively slow but decompression is done in {real-time} with quality and {frame-rate} varying with the processing power available, the size of the picture and whether it appears in a {window} or uses the whole screen.
(1994-11-09)

replication
[database, networking] Creating and maintaining a duplicate copy of a database or file system on a different computer, typically a {server}. The term usually implies the intelligent copying of parts of the source database which have changed since the last replication with the destination.
Replication may be one-way or two-way. Two-way replication is much more complicated because of the possibility that a replicated object may have been updated differently in the two locations in which case some method is needed to reconcile the different versions.
For example, {Lotus Notes} can automatically distribute document databases across telecommunications networks. Notes supports a wide range of network {protocols} including {X25} and {Internet} {TCP/IP}.
Compare {mirror}. See also {rdist}.
(1997-12-12)

replicator
Any construct that acts to produce copies of itself; this could be a living organism, an idea (see {meme}), a program (see {quine}, {worm}, {wabbit}, {fork bomb}, and {virus}), a pattern in a {cellular automaton} (see {life}), or (speculatively) a robot or {nanobot}. It is even claimed by some that {Unix} and {C} are the symbiotic halves of an extremely successful replicator; see {Unix conspiracy}.
[{Jargon File}]

reply
See {followup}.

repondez sil vous plait
Repondez s'il vous plait
[chat] (RSVP) French for "please reply", commonly found (abbreviated) on invitations.
(1996-12-02)

repondez sil vous plait
Repondez s'il vous plait
{Repondez s'il vous plait}

report program generator
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)

representation language language
Representation Language Language
[language] (RLL) A {frame language}.
["A Representation Language Language", R. Greiner and D.B. Lenat, Proc AAAI-80, 1980].
(2003-06-02)

request for comments
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.
{rfc.net (http://www.rfc.net/)}. {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
Request For Technology
(RFT) The process established by the {OSF} to get proposals for new standards.
(1994-11-30)

requiredcobol
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
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
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
Research Systems, Inc.
(RSI) Distributors of {Interactive Data Language} (IDL).
{(ftp://gateway.rs.inc.com/pub/)}. E-mail: [info@rsinc.com].
(1994-10-07)

reseaux associes pour la recherche europeenne
Reseaux Associes pour la Recherche Europeenne
(RARE) An association of national and international European networks and users.
See also {CCIRN}.
(1994-11-30)

reseaux ip europeens
Reseaux IP Europeens
(RIPE) A collaboration between European networks which use the {TCP/IP} {protocol} suite to provide {Internet} services.
(1994-11-30)

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
Resource Access Control Facility
(RACF) {IBM}'s large system security product. It originally ran only under {MVS} but has since been ported to run under {VM}.
(1995-02-07)

resource description framework
Resource Description Framework
[World-Wide Web, specification, data] (RDF) A specification being developed in 2000 by the {W3C} as a foundation for processing {meta-data} regarding resources on the {Internet}, including the {World-Wide Web}.
Resource Description Framework data consists of resources ({nodes}), and property/value pairs describing the resource. A node is any object which can be pointed to by a {URI}, properties are attributes of the node, and values can be either atomic values for the attribute, or other nodes. For example, information about a particular {web page} (a node), might include the property "Author". The value for the Author property could be either a string giving the name of the author, or a {link} to a resource describing the author.
Resource Description Framework only specifies a mechanism for encoding and transferring meta-data. It does not specify what that meta-data should, or can be. RDF does not, for example, define an "Author" attribute. Sets of properties are defined within RDF Vocabularies (or Schemas). Anynone can create an RDF schema, describing a specialized set of properties, by creating a resource, referenced by the Schema URI, which provides a human- and machine-understandable definition of the schema's properties. The description of a node may include properties defined in different schemas. The properties within a resource description are associated with a certain schema definition using the {XML} {namespace} mechanism. Schemas currently being developed include a content screening system modeled after {PICS}, and a bibliographic vocabulary, such as the {Dublin Core Initiative}.
{Home (http://www.w3c.org/RDF/)}.
{W3C Resource Description Framework-RDF Model and Syntax Specification (http://www.w3.org/TR/REC-rdf-syntax/)}.
(2000-03-25)

resource fork
{Macintosh file system}

resource reservation protocol
Resource Reservation Protocol
[protocol] (RSVP) A {protocol} that supports {quality of service}.
{(http://www.zdnet.com/pcweek/stories/news/0,4153,389107,00.html)}.
(2001-03-18)

restricted epl
Restricted EPL
[language] (REPL) The efficient {subset} of {EPL} used to write the core of {Multics}.
(2003-06-23)

restriction
A {bug} or design error that limits a program's capabilities, and which is sufficiently egregious that nobody can quite work up enough nerve to describe it as a {feature}. Often used (especially by {marketroid} types) to make it sound as though some crippling bogosity had been intended by the designers all along, or was forced upon them by arcane technical constraints of a nature no mere user could possibly comprehend (these claims are almost invariably false).
Old-time hacker Joseph M. Newcomer advises that whenever choosing a quantifiable but arbitrary restriction, you should make it either a power of 2 or a power of 2 minus 1. If you impose a limit of 17 items in a list, everyone will know it is a random number - on the other hand, a limit of 15 or 16 suggests some deep reason (involving 0- or 1-based indexing in binary) and you will get less {flamage} for it. Limits which are round numbers in base 10 are always especially suspect.
[{Jargon File}]

restructured extended executor
Restructured EXtended eXecutor
[language] (REXX, or "System Product Interpreter", originally known as "REX") A {script}ing language for {IBM VM} and {MVS} systems, developed by M. Cowlishaw at {IBM} ca. 1979, replacing {EXEC2}.
Versions: PC-Rexx for {MS-DOS}, {AREXX} for the {Amiga}, the {OS/2} implementation from IBM, WINREXX (Rexx for Windows, from {Quercus systems}) and Personal Rexx (Rexx for MS-DOS, from Quercus systems).
See also {Regina}, {freerexx}, {imc}.
{REXXWARE} is an implementation of {REXX} for {Novell NetWare}.
{Usenet} newsgroup: {news:comp.lang.rexx}.
["The REXX Language: A Practical Approach to Programming", M.F. Cowlishaw, 1985].
(1992-05-13)

restructuring
The transformation from one representation form to another at the same relative abstraction level, while preserving the subject system's external behaviour (functionality and semantics).

retcon
/ret'kon/ retroactive continuity.
The common situation in fiction where a new story "reveals" things about events in previous stories, usually leaving the "facts" the same (thus preserving continuity) while completely changing their interpretation. For example, revealing that a whole season of "Dallas" was a dream was a retcon.
This term was once thought to have originated on the {Usenet} newsgroup {news:rec.arts.comics} but is now believed to have been used earlier in comic fandom.
[{Jargon File}]
(1994-12-08)

rete
[artificial intelligence] /Re'te/ (From Latin "net") A net or network; a plexus; particularly, a network of blood vessels or nerves, or a part resembling a network.
[How is it used in AI? What is a "rete procedure "?]
(2002-03-14)

reti
RETI
{RTI}

retrieve
Retrieve
[language] A {query language} inspired {JPLDIS} which led to {Vulcan} and then to {dBASE II}, developed by {Tymshare Corp} in the 1960s.
(1998-04-29)

retrocomputing
/ret'-roh-k*m-pyoo'ting/ Refers to emulations of way-behind-the-state-of-the-art hardware or software, or implementations of never-was-state-of-the-art; especially if such implementations are elaborate practical jokes and/or parodies, written mostly for {hack value}, of more "serious" designs. Perhaps the most widely distributed retrocomputing utility was the "pnch(6)" or "bcd(6)" program on V7 and other early Unix versions, which would accept up to 80 characters of text argument and display the corresponding pattern in {punched card} code. Other well-known retrocomputing hacks have included the programming language {INTERCAL}, a {JCL}-emulating shell for Unix, the card-punch-emulating editor named 029, and various elaborate {PDP-11} hardware emulators and RT-11 OS emulators written just to keep an old, sourceless {Zork} binary running.
[{Jargon File}]

retronym
[jargon] A term invented to distinguish a subclass of things from new members of the superclass, where the distinction was previously not necessary, since the old subclass had been all there was of the superclass.
For example, the retronyms "{snail mail}" and "{paper mail}" were coined by those for who "mail" was likely to mean {electronic mail}.
While the English language in general has a few retronyms ("whole milk", "snow skiing", "acoustic guitar"), hacker jargon is necessarily (at points capriciously) rich in retronyms, e.g. {plaintext}, {natural language}, {impact printer}, {eyeball search}, biological {virus}.
[More examples?]
(2001-02-25)

return from interrupt
[programming] (RTI) An instruction {mnemonic} on many computers including the {6502} and {6800}. The variant "RETI" is found among former {Zilog Z80} hackers (almost nobody programs these things in {assembly code} anymore). The {Intel 80x86} equivalent is "IRET".
(1994-10-31)

return from the dead
[jargon] To regain access to the net after a long absence.
Compare {person of no account}.
[{Jargon File}]
(1999-01-14)

return to zero
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
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 ARP
{Reverse Address Resolution Protocol}

reverse engineering
[system, product, design] The process of analysing an existing system to identify its components and their interrelationships and create representations of the system in another form or at a higher level of abstraction. Reverse engineering is usually undertaken in order to redesign the system for better maintainability or to produce a copy of a system without access to the design from which it was originally produced.
For example, one might take the {executable} code of a computer program, run it to study how it behaved with different input and then attempt to write a program oneself which behaved identically (or better). An {integrated circuit} might also be reverse engineered by an unscrupulous company wishing to make unlicensed copies of a popular chip.
(1995-10-06)

reverse polish notation
Reverse Polish Notation
{postfix notation}

reverse polish syntax
{postfix notation}

revised algol 60
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
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
Revolutionary Surrealist Vandal Party
[body] (RSVP) {(http://www.impropaganda.com/kultcha.html#bullet21)}.
(1996-12-01)

rex
REX
The original name for {Restructured EXtended eXecutor}.

rexx
REXX
{Restructured EXtended eXecutor}

rexxware
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
RFC
{Request For Comments}

rfc 1014
RFC 1014
[programming, networking, standard] The {RFC} defining {eXternal Data Representation}.
{(rfc:1014)}.
(1994-12-13)

rfc 1034
RFC 1034
[networking, standard] One of the {RFC}s defining the {Domain Name System}.
{(rfc:1034)}.
(1997-12-15)

rfc 1035
RFC 1035
[networking, standard] One of the {RFC}s defining the {Domain Name System}.
{(rfc:1035)}.
(1997-12-15)

rfc 1057
RFC 1057
[networking, standard] The {RFC} defining {Sun} {RPC}.
{(rfc:1057)}.
(2003-06-04)

rfc 1058
RFC 1058
[networking, standard] The {RFC} defining {Routing Information Protocol}. Updated by {RFC 1388}.
{(rfc:1058)}.
(1994-11-30)

rfc 1081
RFC 1081
[messaging, standard] The {RFC} defining {POP3}, {Post Office Protocol} version 3.
{(rfc:1081)}.
(1994-12-12)

rfc 1094
RFC 1094
[standard, networking, storage] The {RFC} defining {Sun Microsystems}'s {Network File System} (NFS).
{(rfc:1094)}.
(1994-12-12)

rfc 1112
RFC 1112
[networking, standard] The {RFC} describing {MBONE}.
{(rfc:1112)}.
(1994-11-11)

rfc 1119
RFC 1119
[networking, standard] The {RFC} defining {Network Time Protocol}.
{(rfc:1119)}.
(1994-11-30)

rfc 1123
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
RFC 1156
[standard] The {RFC} which established the MIB I {Management Information Base} standard.
{(rfc:1156)}.
(1994-11-14)

rfc 1157
RFC 1157
[networking, standard] The {RFC} defining {Simple Network Management Protocol}.
{(rfc:1157)}.
(1994-11-14)

rfc 1171
RFC 1171
[protocol, standard] The {RFC} defining the {Point-to-Point Protocol}.
{(rfc:1171)}.
(1994-12-13)

rfc 1208
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
RFC 1213
[networking, standard] The {RFC} which definied the MIB II {Management Information Base}.
{(rfc:1213)}.
(1994-11-14)

rfc 1267
RFC 1267
[networking, standard] One of the {RFC}s describing {Border Gateway Protocol}.
{(rfc:1267)}.

rfc 1268
RFC 1268
[networking, standard] One of the {RFC}s describing {Border Gateway Protocol}.
{(rfc:1268)}.

rfc 1304
RFC 1304
[networking, standard] One of the {RFC}s describing {SMDS Interface Protocol}.
{(rfc:1304)}.
(2000-09-02)

rfc 1321
RFC 1321
[messaging, standard] The {RFC} defining the {Message Digest 5} {algorithm}.
{(rfc:1321)}.
(1996-08-04)

rfc 1334
RFC 1334
[networking, security, standard, protocol] The {RFC} defining {Challenge-Handshake Authentication Protocol} and {Password Authentication Protocol}.
{(rfc:1334)}.
(1996-03-23)

rfc 1341
RFC 1341
[messaging, standard] The June 1992 {RFC} defining {Multipurpose Internet Mail Extensions} (MIME). This {RFC} has been obsoleted by {RFC 2045}, {RFC 2046}, {RFC 2047}, {RFC 2048}, {RFC 2049}, and {BCP0013}.
{(rfc:1341)}.
(1997-08-30)

rfc 1347
RFC 1347
[networking, protocol] One of the {RFC}s describing the {TUBA} {protocol}.
{(rfc:1347)}.
(1997-08-30)

rfc 1350
RFC 1350
[networking, protocol] The {RFC} defining {TFTP}.
{(rfc:1350)}.
(1997-08-30)

rfc 1388
RFC 1388
[networking, standard] An update to {RFC 1058}, the {RFC} defining {Routing Information Protocol}.
{(rfc:1388)}.
(1994-11-30)

rfc 1436
RFC 1436
[networking, standard] The {RFC} defining the {Internet} {Gopher} {protocol}.
{(rfc:1436)}.
(1995-11-16)

rfc 1441
RFC 1441
[networking, standard] The {RFC} introducing {SNMP v2}.
{(rfc:1441)}.
(1997-11-23)

rfc 1442
RFC 1442
[networking, standard] The {RFC} defining {SMI} for {SNMP v2}.
{(rfc:1442)}.
(1997-11-23)

rfc 1443
RFC 1443
[networking, standard] The {RFC} defining textual conventions for {SNMP v2}.
{(rfc:1443)}.
(1997-11-23)

rfc 1444
RFC 1444
[networking, standard] The {RFC} defining conformance statements for {SNMP v2}.
{(rfc:1444)}.
(1997-11-23)

rfc 1445
RFC 1445
[networking, standard] The {RFC} defining the administrative model for {SNMP v2}.
{(rfc:1445)}.
(1997-11-23)

rfc 1446
RFC 1446
[networking, standard] The {RFC} defining security protocols for {SNMP v2}.
{(rfc:1446)}.
(1997-11-23)

rfc 1447
RFC 1447
[networking, standard] The {RFC} defining {Party MIB} for {SNMP v2}.
{(rfc:1447)}.
(1997-11-23)

rfc 1448
RFC 1448
[networking, standard] The {RFC} defining protocol operations for {SNMP v2}.
{(rfc:1448)}.
(1997-11-23)

rfc 1449
RFC 1449
[networking, standard] The {RFC} defining {transport mappings} for {SNMP v2}.
{(rfc:1449)}.
(1997-11-23)

rfc 1450
RFC 1450
[networking, standard] The {RFC} defining {MIB} for {SNMP v2}.
{(rfc:1450)}.
(1997-11-23)

rfc 1451
RFC 1451
[networking, standard] The {RFC} defining {Manager to Manger MIB}.
{(rfc:1451)}.
(1997-11-23)

rfc 1452
RFC 1452
[networking, standard] The {RFC} describing coexistance between {SNMP} v1 and {SNMP v2}.
{(rfc:1452)}.
(1995-02-15)

rfc 1475
RFC 1475
[networking, protocol] The {RFC} describing the {TP/IX} {protocol}.
{(rfc:1475)}.
(1995-04-03)

rfc 1508
RFC 1508
[security, standard] One of the {RFC}s defining {GSS-API}.
{(rfc:1508)}.
(1996-05-19)

rfc 1509
RFC 1509
[security, standard] One of the {RFC}s defining {GSS-API}.
{(rfc:1509)}.
(1996-05-19)

rfc 1520
RFC 1520
[networking, standard] The {RFC} defining {Classless Inter-Domain Routing}.
{(rfc:1520)}.
(1996-10-01)

rfc 1521
RFC 1521
[messaging, standard] An {RFC} defining {Multipurpose Internet Mail Extensions} (MIME). This {RFC} has been obsoleted by {RFC 2045}, {RFC 2046}, {RFC 2047}, {RFC 2048}, {RFC 2049}, and {BCP0013}.
{(rfc:1521)}.
(1997-11-23)

rfc 1526
RFC 1526
[networking, protocol] One of the {RFC}s describing the {TUBA} {protocol}.
{(rfc:1526)}.
(1997-11-23)

rfc 1531
RFC 1531
[networking, protocol] The original {RFC} defining {DHCP}, obsoleted by {RFC 2131}.
{(rfc:1531)}.
(1998-11-20)

rfc 1550
RFC 1550
[networking, protocol] An {RFC} {white paper} on {IPng}.
{(rfc:1550)}.
(1995-04-03)

rfc 1561
RFC 1561
[networking, protocol] One of the {RFC}s describing the {TUBA} {protocol}.
{(rfc:1561)}.
(1997-11-23)

rfc 1568
RFC 1568
[messaging, standard] An {RFC} defining the {Simple Network Paging Protocol} (SNPP) which is designed to support {Internet} access to {paging} services such as those based on the {Telocator Alphanumeric Protocol}. See also {RFC 1861}.
{(rfc:1568)}.
(1996-06-24)

rfc 1591
RFC 1591
[networking, standard] The {RFC} defining the {Domain Name System}. Written by J. Postel in March 1994.
(2001-05-14)

rfc 1630
RFC 1630
[networking, standard] The {RFC} defining the {Universal Resource Identifier}.
{(rfc:1630)}.
(1995-01-13)

rfc 1661
RFC 1661
[networking, standard] The {RFC} defining {Point-to-Point Protocol}.
{(rfc:1661)}.
(1997-02-05)

rfc 1700
RFC 1700
[networking, standard] The {RFC} defining "Assigned Numbers" such as standard "well-known" {TCP} and {UDP} {port} numbers.
See also {IANA}, {STD 2}.
{(rfc:1700)}.
[What else?]
(2001-04-08)

rfc 1701
RFC 1701
[networking, standard] The {RFC} defining {Generic Routing Encapsulation}.
See also {RFC 1702}.
{(rfc:1701)}.
(1997-04-02)

rfc 1702
RFC 1702
[networking, standard] The {RFC} defining {Generic Routing Encapsulation} over {IP}.
{(rfc:1702)}.
(1997-04-02)

rfc 1707
RFC 1707
[networking, standard] The {RFC} defining {CATNIP}.
{(rfc:1707)}.
(1996-03-23)

rfc 1730
RFC 1730
[messaging, standard] An old {RFC} defining {IMAP}, obsoleted by {RFC 2060}, {RFC 2061} and others.
{(rfc:1730)}.
(1996-03-11)

rfc 1756
RFC 1756
[messaging] The {RFC} describing {Remote Write Protocol}.
{(rfc:1756)}.
(1996-09-08)

rfc 1760
RFC 1760
[security] The {RFC} describing the S/KEY {One-Time Password} system.
{(rfc:1760)}.
(2000-01-31)

rfc 1777
RFC 1777
[networking, standard] The {RFC} defining {Lightweight Directory Access Protocol}.
{(rfc:1777)}.
(1996-08-23)

rfc 1778
RFC 1778
[networking, standard] The {RFC} that defines the requirements that must be satisfied by encoding rules used to render {X.500} Directory attribute syntaxes into a form suitable for use in {LDAP}.
{(rfc:1778)}.
(2002-03-02)

rfc 1823
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
RFC 1825
[networking, standard] The {RFC} describing security mechanisms for {Internet Protocol} version 4 and {IP version 6} and the services that they provide.
{(rfc:1825)}.
(1997-07-09)

rfc 1831
RFC 1831
[networking, standard] The {RFC} describing {ONC} {RPC}.
(2003-06-04)

rfc 1861
RFC 1861
[networking, standard] The {RFC} defining {Simple Network Paging Protocol}. See also {RFC 1568}.
{(rfc:1861)}.
(1997-04-25)

rfc 1938
RFC 1938
[security, standard] The {RFC} describing a proposed {standard} for a {One-Time Password} system, obsoleted by {RFC 2289}.
["A One-Time Password System.", N. Haller & C. Metz].
{(rfc:1938)}.
(2000-03-05)

rfc 1951
RFC 1951
[standard] The {RFC} describing {deflate} {compression}.
{(rfc:1951)}.
(1997-06-21)

rfc 1959
RFC 1959
[networking, standard] The {RFC} defining a {URL} format for the {Lightweight Directory Access Protocol}.
{(rfc:1959)}.
(1996-11-28)

rfc 1960
RFC 1960
[networking, standard] The {RFC} defining the human-readable format of search filters used with the {Lightweight Directory Access Protocol}.
{(rfc:1960)}.
(2002-03-02)

rfc 2045
RFC 2045
[messaging, standard] One of the {RFC}s defining {MIME}.
{(rfc:2045)}.
(1999-10-29)

rfc 2046
RFC 2046
[messaging, standard] One of the {RFC}s defining {MIME}.
{(rfc:2046)}.
(1999-10-29)

rfc 2047
RFC 2047
[messaging, standard] One of the {RFC}s defining {MIME}.
{(rfc:2047)}.
(1999-10-29)

rfc 2048
RFC 2048
[messaging, file format, standard] The {RFC} explaining registration of {MIME types}.
{(rfc:2048)}.
(1998-02-11)

rfc 2049
RFC 2049
[messaging, standard] One of the {RFC}s defining {MIME}.
{(rfc:2049)}.
(1999-10-29)

rfc 2060
RFC 2060
[messaging] One of the {RFC}s describing {IMAP}.
{(rfc:2060)}.
(1999-03-14)

rfc 2061
RFC 2061
[messaging] One of the {RFC}s describing {IMAP}.
{(rfc:2061)}.
(1999-03-14)

rfc 2068
RFC 2068
[networking, standard] The {RFC} defining {HTTP} version 1.1.
{(rfc:2068)}.
(1997-05-03)

rfc 2093
RFC 2093
[networking, standard] The {RFC} specifying the {Inverse Address Resolution Protocol}.
{(rfc:2093)}.
(2000-01-15)

rfc 2131
RFC 2131
[networking, protocol] The {RFC} defining {DHCP}. Obsoletes {RFC 1531}.
{(rfc:2131)}.
(1998-11-22)

rfc 2234
RFC 2234
[standard] The {RFC} defining {Augmented Backus-Naur Form}.
{(rfc:2234)}.
(1997-11-23)

rfc 2236
RFC 2236
[networking, standard] The {RFC} describing {IGMP} version 2.
{(rfc:2236)}.
(1999-11-08)

rfc 2279
RFC 2279
[standard] The {RFC} defining {UTF-8}.
{(rfc:2279)}.
(1998-07-29)

rfc 2298
RFC 2298
[security, standard] The {RFC} describing a proposed {standard} for a {One-Time Password} system.
{(rfc:2298)}.
(2000-03-05)

rfc 2326
RFC 2326
[standard] The {RFC} defining {RTSP}.
{(rfc:2326)}.
(1999-10-12)

rfc 2408
RFC 2408
[standard, security] The {RFC} proposing {ISAKMP}.
{(rfc:2408)}.
(2000-02-08)

rfc 2543
RFC 2543
[networking, standard] One of the {RFC}s describing {Session Initiation Protocol}.
{(rfc:2543)}.
(2000-07-08)

rfc 2795
RFC 2795
[networking, standard] The {RFC} describing The {Infinite Monkey Protocol Suite }.
{(rfc:2795)}.

rfc 792
RFC 792
[networking, standard] The {RFC} defining {Internet Control Message Protocol}.
{(rfc:792)}.
(1996-08-23)

rfc 822
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
RFC 826
[networking, standard] The {RFC} defining the {Address Resolution Protocol}.
{(rfc:826)}.
(1997-11-21)

rfc 854
RFC 854
[networking, standard] The {RFC} defining the {telnet} protocol.
["Telnet Protocol specification", J. Postel, J.K. Reynolds, 1983-05-01].
{(rfc:854)}.
(2000-03-18)

rfc 903
RFC 903
[networking, standard] The {RFC} defining {Reverse Address Resolution Protocol}.
{(rfc:903)}.
(1994-12-08)

rfc 959
RFC 959
[networking, standard] The {RFC} containing the official specification of {File Transfer Protocol} (FTP).
{(rfc:959)}.
(1995-01-12)

rfcomm
RFCOMM
[protocol] (RS232 Serial Cable Emulation Profile) A {Bluetooth} transport {protocol} in the {Core Protocol Stack} based on the {ETSI} standard.
{RFCOMM Layer Tutorial (http://www.palowireless.com/infotooth/tutorial/rfcomm.asp)}.
(2002-06-28)

rfe
RFE
1. {Request For Enhancement} (compare {RFC}).
2. (From "Radio Free Europe", {Bellcore} and {Sun}) Radio Free Ethernet.
A system originated by Peter Langston for broadcasting audio among Sun {SPARCstations} over the {Ethernet}.
[{Jargon File}]
(1994-12-06)

rfi
RFI
{Radio Frequency Interference}

rfp
RFP
1. [business] {Request for Proposal}.
1. [Debian] {Request for Package}.
(2001-01-15)

rft
RFT
{Request For Technology}

rg58
RG58
[electronics] A common, low-impedance (52 ohm), quarter-inch diameter {coaxial cable} used for {10base2} {Ethernet} wiring, sometimes called "{cheapernet}" in comparison with "full spec" {RG8} cabling. A member of the "Radio Guide" series.
(2002-06-17)

rg8
RG8
[networking, hardware, cable] (Or "thicknet" - "thick {Ethernet}") The original "full spec" cable, used for {10base5} {Ethernet} networks. RG8 is stiff, large diameter {coaxial} cable with an {impedance} of 50 ohms, a member of the "Radio Guide" series. The outer sheath is usually yellow, to indicate double shielding, so it is often just called "yellow cable".
10base5 cable is designed to allow transceivers to be added while existing connections are live. This is achieved using a "vampire tap" - 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}.
{RG58} is a cheaper, more flexible alternative.
(2002-06-17)

rgb
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
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}.
[{Jargon File}]
(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.
[{Jargon File}]
(1994-11-30)

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
Rich Text Format
(RTF) An interchange format from {Microsoft} for exchange of documents between {Word} and other document preparation systems.
(1994-12-08)

richard gabriel
Richard Gabriel
[person] (Dick, RPG) Dr. Richard P. Gabriel. A noted {SAIL} {LISP} {hacker} and volleyball fanatic.
Consulting Professor of Computer Science at {Stanford University}. Richard Gabriel is a leader in the {Lisp} and {OOP} community, with years of contributions to {standardisation}. He founded the successful company, {Lucid Technologies, Inc.}.
In 1996 he was Distinguished Computer Scientist at ParcPlace-Digitalk, Inc. (later renamed {ObjectShare, Inc.}).
See also {gabriel}, {Qlambda}, {QLISP}, {saga}.
(1999-10-12)

richard hamming
Richard Hamming
[person] Professor Richard Wesley Hamming (1915-02-11 - 1998-01-07). An American mathematician known for his work in {information theory} (notably {error detection and correction}), having invented the concepts of {Hamming code}, {Hamming distance}, and {Hamming window}.
Richard Hamming received his B.S. from the University of Chicago in 1937, his M.A. from the University of Nebraska in 1939, and his Ph.D. in mathematics from the University of Illinois at Urbana-Champaign in 1942. In 1945 Hamming joined the Manhattan Project at Los Alamos.
In 1946, after World War II, Hamming joined the {Bell Telephone Laboratories} where he worked with both {Shannon} and {John Tukey}. He worked there until 1976 when he accepted a chair of computer science at the Naval Postgraduate School at Monterey, California.
Hamming's fundamental paper on error-detecting and error-correcting codes ("{Hamming codes}") appeared in 1950.
His work on the {IBM 650} leading to the development in 1956 of the {L2} programming language. This never displaced the workhorse language {L1} devised by Michael V Wolontis. By 1958 the 650 had been elbowed aside by the 704.
Although best known for error-correcting codes, Hamming was primarily a numerical analyst, working on integrating {differential equations} and the {Hamming spectral window} used for smoothing data before {Fourier analysis}. He wrote textbooks, propounded aphorisms ("the purpose of computing is insight, not numbers"), and was a founder of the {ACM} and a proponent of {open-shop} computing ("better to solve the right problem the wrong way than the wrong problem the right way.").
In 1968 he was made a fellow of the {Institute of Electrical and Electronics Engineers} and awarded the {Turing Prize} from the {Association for Computing Machinery}. The Institute of Electrical and Electronics Engineers awarded Hamming the Emanuel R Piore Award in 1979 and a medal in 1988.

{(http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Hamming.html)}.
{(http://zapata.seas.smu.edu/~gorsak/hamming.html)}.
{(http://www.webtechniques.com/archives/1998/03/homepage/)}.
[Richard Hamming. Coding and Information Theory. Prentice-Hall, 1980. ISBN 0-13-139139-9].
(2003-06-07)

richard p gabriel
Richard P. Gabriel
{Richard Gabriel}

richard stallman
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)

riff
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
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
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
Right Thing
That which is *compellingly* the correct or appropriate thing to use, do, say, etc. Always capitalised, always emphasised in speech as though capitalised. Use of this term often implies that in fact reasonable people may disagree. "What's the Right Thing for {Lisp} to do when it sees "(mod a 0)"? Should it return "a", or give a divide-by-0 error?"
Opposite: {Wrong Thing}.
[{Jargon File}]
(1994-10-28)

rightclick
right-click
[hardware] To {click} the right-most {mouse} button on a mouse with more than one button. This usually performs a different function from the left button, e.g. displaying a {context-sensitive menu} ({Microsoft Windows}), extending the {selection} ({X}).
(2000-02-14)

rijndael
Rijndael
{Advanced Encryption Standard}

ring network
[networking, topology] A network topology in which all {nodes} are connected to a single wire in a ring or {point-to-point}. There are no endpoints. This topology is used by {token ring} networks.
Compare: {bus network}, {star network}.
(2000-11-16)

ring topology
{ring network}

riordans internet privacy enhanced mail
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
RIP
1. [networking] {Routing Information Protocol}.
2. [application, printer] {Raster Image Processor}.
(2003-09-10)

ripe
RIPE
{Reseaux IP Europeens}

ripem
RIPEM
{Riordan's Internet Privacy Enhanced Mail}

risc
RISC
{Reduced Instruction Set Computer}

risc os
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
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 system6000
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)

riscix
RISCiX
[operating system] /risk-icks/ (Or "RISC iX") {BSD}-based {Unix} developed by {Acorn Computers Ltd.} (Cambridge, UK) to run on 32-bit {ARM} {RISC} processors.
RISCiX was launched circa 1989 for three production machines - the R140, R260, the discless R225; and other prototypes.
(2003-09-24)

risql
RISQL
{Red Brick Intelligent SQL}

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

rj45
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
RJE
{Remote Job Entry}

rkm
RKM
{Rom Kernel Manual}

rl
RL
(MUD community) Real Life.
"Firiss laughs in RL" means that Firiss's player is laughing.
Opposite: {VR}.
[{Jargon File}]
(1995-05-09)

rl
Kent Wittenburg [kentw@bellcore.com].
The RL files contain code for defining {relational 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
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
RLE
{run-length encoding}

rlf
RLF
{Reuse Library Framework} of the {DoD}.

rll
RLL
1. [language] {Representation Language Language}.
2. [storage] {Run Length Limited}.
(2003-07-24)

rlogin
[networking, tool] (Remote login) The {4.2BSD} {Unix} utility to allow a user to log in on another {host} via a network. Rlogin communicates with a {daemon} on the remote host.
{Unix manual page}: rlogin(1).
See also {telnet}.
(1997-01-12)

rmag
RMAG
{Recursive Macro Actuated Generator}

rmail
RMAIL
[messaging] A {MUA} written in {Emacs Lisp} to run within {Emacs}.
(1996-03-21)

rmi
RMI
{Remote Method Invocation}

rmodp
RM-ODP
[programming] The {ISO Reference Model} for {Open Distributed Environments}.
{(http://pepper.open.ac.uk/~armsarms/sa.html)}.
(1995-11-23)

rmon
RMON
1. [networking] {remote monitoring}.
2. {Remote Monitor}.
(2003-09-15)

rms
RMS
1. {Record Management Services}.
2. {Richard Stallman}.

rnf
RNF
{root normal form}

ro
[networking] The {country code} for Romania.
(1999-01-27)

roach
[jargon] A {Bell Labs} term meaning destroy, especially of a data structure. Hardware gets {toast}ed or {fried}, software gets roached.
[Why?]
[{Jargon File}]
(1999-02-08)

roads
ROADS
Subsystem of ICES. Sammet 1969, p.616.

robert t morris
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
ROBEX
ROBot EXapt. Aachen Tech College. Based on EXAPT. Version: ROBEX-M for micros.

robohelp
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}.
[{Jargon File}]
(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}.
[{Jargon File}]

rockwell protocol interface
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
Rocky Mountain Basic
[language] The {BASIC} language used by {Hewlett Packard} on their {680x0}-based computers. Rocky Mountain Basic is good for interfaces to {IEEE 488} controls and contains many mathematical and matrix functions. It has about 600 commands. Typical applications include automatic test stations.
(1996-04-28)

rococo
[jargon, abuse] {Baroque} in the extreme. Used to imply that a program has become so encrusted with the software equivalent of gold leaf and curlicues that they have completely swamped the underlying design. Called after the later and more extreme forms of Baroque architecture and decoration prevalent during the mid-1700s in Europe. Alan Perlis said: "Every program eventually becomes rococo, and then rubble."
Compare {critical mass}.
[{Jargon File}]
(1996-04-06)

roff
[text, tool] A text formatting language associated with {Unix}. See {groff}, {nroff}, {troff}.
[Was roff the original? Platform(s)?]
(1998-11-14)

roflmao
ROFLMAO
{ROTFLMAO}

rogue
[games] [Unix] A Dungeons-and-Dragons-like game using character graphics, written under BSD Unix and subsequently ported to other Unix systems. The original BSD "curses(3)" screen-handling package was hacked together by Ken Arnold to support "rogue(6)" and has since become one of Unix's most important and heavily used application libraries. Nethack, Omega, Larn, and an entire subgenre of computer dungeon games all took off from the inspiration provided by "rogue(6)". See also {nethack}.
[{Jargon File}]

rollback
[database] Reverting data in a {database} to an earlier state, usually in response to an error or aborted operation.
In a {transaction} based database system, transactions are considered {atomic}. If an error occurs while performing a transaction, the database is automatically rolled back to the state at the previous {commit}.
Rollback may also be performed by an explicit rollback transaction.
(2000-01-15)

rom
ROM
{Read-Only Memory}

rom bios
ROM BIOS
{Basic Input/Output System}

rom kernel manual
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)

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

room
{channel}

room methodology
ROOM Methodology
{Real-Time Object-Oriented Modeling}

roomtemperature iq
room-temperature IQ
[abuse] (IBM) 80 or below. Used in describing the expected intelligence range of the {luser}. "Well, but how's this interface going to play with the room-temperature IQ crowd?" This is a much more insulting phrase in countries that use Celsius thermometers.
See {drool-proof paper}.
[{Jargon File}]
(1996-04-06)

root
1. [operating system] The {Unix} {superuser} account (with user name "root" and user ID 0) that overrides file permissions. The term {avatar} is also used. By extension, the privileged system-maintenance login on any {operating system}.
See {root mode}, {go root}, {wheel}.
[{Jargon File}]
(1994-10-27)
2. [operating system] {root directory}.
(1996-11-21)
3. [data] {root node}.
(1998-11-14)

root bridge
[communications, hardware, networking] A {bridge} which continuously transmits {network} {topology} information to other bridges, using the {spanning tree protocol}, in order to notify all other bridges on the network when topology changes are required.
This means that a network is able to reconfigure itself whenever a network link (e.g. another bridge) fails, so an alternative path can be found. The presence of a root bridge also prevents {loops} from forming in the network.
The root bridge is where the paths that {frames} take through the network they are assigned. It should be located centrally on the network to provide the shortest path to other links on the network. Unlike other bridges, the root bridge always forwards frames out over all of its {ports}.
Every network should only have one root bridge. It should have the lowest bridge ID number.
(2000-11-26)

root directory
[file system] The topmost node of a {hierarchical file system}.
(1996-11-21)

root mode
Synonym with {wizard mode} or "wheel mode". Like these, it is often generalised to describe privileged states in systems other than {operating system}s.
[{Jargon File}]

root node
[mathematics, data] In a {tree}, a node with no {parents}, but which typically has {daughters}.
(1998-11-14)

root normal form
Root Normal Form
(RNF) {Head Normal Form} in {graph rewriting}.

root version
The initial value of an object in a {change management} system.

rose
ROSE
{Remote Operations Service Element}

rosette
Rosette
[language] A {concurrent} {object-oriented language} from {MCC}.
[Details?]
(1997-11-26)

roskind grammars
Roskind grammars
[tool] {Yacc}-based {parsers} for {C} and {C++} by Jim Roskind [jar_grammar at roskind.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.
Current version: cpp5 (cf2.0).
{(ftp://ftp.infoseek.com/pub/c++grammar/)}.
(2003-09-02)

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.
[{Jargon File}]

rotary debugger
(Commodore) Essential equipment for those late-night or early-morning debugging sessions. Mainly used as sustenance for the hacker. Comes in many decorator colours, such as Sausage, Pepperoni, and Garbage.
(1995-01-11)

rotation per minute
[unit] (rpm) A unit of {angular velocity}.
(1998-03-27)

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

rotfl
ROTFL
[chat] Rolling on the floor laughing (or rolls...).
Used in a {MUD}, {news}.
See also {ROTFLMAO}, {ROTFLOL}.
(1996-02-22)

rotflmao
ROTFLMAO
[chat] Rolling on the floor laughing my ass (arse) off. An extreme form of {ROTFL}.
(2000-11-12)

rotflol
ROTFLOL
[chat] Rolling on the floor laughing out loud. See {ROTFL}.
(1997-03-06)

round tape
[storage, jargon] Industry-standard 1/2-inch {magnetic tape} (7- or 9-track) on traditional circular reels.
See {macrotape}, opposite: {square tape}.
[{Jargon File}]
(1996-02-03)

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

roundtrip time
round-trip time
(RTT) A measure of the current delay on a network, found by timing a packet bounced off some remote host. This can be done with {ping} -s.
(1994-11-30)

route
[networking] /root/ The sequence of {hosts}, {routers}, {bridges}, {gateways}, and other devices that network traffic takes, or could take, from its source to its destination. As a verb, to determine the link down which to send a {packet}, that will minimise its total journey time according to some {routeing algorithm}.
You can find the route from your computer to another using the program {traceroute} on {Unix} or tracert on {Microsoft Windows}.
(2001-05-26)

route flapping
{flapping router}

routed
[networking] /root dee/ Route Daemon. A program which runs under {4.2BSD} {Unix} systems and derivatives to propagate routes among machines on a {local area network}, using the {Routing Information Protocol}. See also {gated}.
(2002-07-31)

routeing
[networking] (US "routing") /roo'ting/ The process, performed by a {router}, of selecting the correct interface and next {hop} for a {packet} being forwarded.
This is the British and international standard spelling.
See also {Exterior Gateway Protocol}, {Interior Gateway Protocol}.
(2001-05-28)

routeing domain
[networking] (US "routing") A set of {routers} that exchange routeing information within an {administrative domain}.
(1994-12-14)

router
[networking] /roo't*/ A device which forwards {packets} between {networks}. The forwarding decision is based on {network layer} information and routing tables, often constructed by routing {protocols}.
{Unix manual page}: route(8).
See also {bridge}, {gateway}, {Exterior Gateway Protocol}, {Interior Gateway Protocol}, {flapping router}.
(1999-08-24)

routine
{subroutine}

routing
[tool] /row'ting/ Using a kind of rotating cutting tool called a router, pronounced /row't*/. In the USA a {router}, pronounced /row't*/, is also a network device that performs "routing". In the UK, the network device is pronounced /roo't*/ and what it does is spelled "{routeing}".
(2002-07-31)

routing information protocol
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
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}

rowlevel locking
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
Royal Veterinary and Agricultural University
Address: Thorvaldsensvej 40, DK-1871 Frederiksberg C, Denmark.
(1994-12-12)

rpc
RPC
{Remote Procedure Call}

rpg
RPG
1. [games] {Role-Playing Game}.
2. [tool] {Report Program Generator}.
3. [person] {Richard Gabriel}.
(1999-10-12)

rpi
RPI
{Rockwell Protocol Interface}

rpl
RPL
Reverse Polish LISP. Language used by HP-28 and HP-48 calculators.

rpl1
RPL-1
Data reduction language. Proc SJCC 30:571-575, AFIPS (Spring 1967).

rpm
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
RPN
{postfix notation}

rpt
RPT
Unify. Report Writer Language.

rrl
RRL
{Remote Reference Layer}

rrs
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
RS
1. [character] {Record Separator}
2. [standard] Recommended Standard, a series of {EIA} {standards} including {EIA-232}.

rs flipflop
RS flip-flop
{SR flip-flop}

rs232
RS-232
{EIA-232}

rs232c
RS-232C
[communications, standard] The {EIA} equivalent of {ITU-T} {standard} {V.24}.
The {EIA} EIA-232C electrical signal is unbalanced +/- 5 to +/- 12V, {polar} {non return to zero} and handles data speeds up to 19.2 kilobits per second.
[Correct name? Difference from EIA-232?]
(2000-02-03)

rs232d
RS-232D
[communications, standard] The {EIA} equivalent of {ITU-T} {standard} {V.28}.
[Difference from EIA-232/EIA-232C?]
(1995-03-02)

rs422
RS-422
{EIA-422}

rs423
RS-423
{EIA-423}

rs449
RS-449
{EIA-449}

rs485
RS-485
{EIA-485}

rs6000
RS6000
{RISC System/6000}

rs6000
RS/6000
{RISC System/6000}

rs6k
RS6K
{RISC System/6000}

rsa
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
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
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 products of large prime numbers would break RSA.
{RSA FAQ (http://www.rsa.com/rsalabs/faq/faq_home.html)}.
(2002-03-29)

rscs
RSCS
[communications] {Remote Spooling Communication Subsystem}.
(1996-02-04)

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
RSI
1. [medical] {overuse strain injury}.
2. [company] {Research Systems, Inc.}.
(1999-01-08)

rsl
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
RSN
{Real Soon Now}

rstat
{netstat}

rstse
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
RSVP
1. [chat] {Repondez s'il vous plait}.
2. [protocol] {Resource Reservation Protocol}.
3. [body] {Revolutionary Surrealist Vandal Party}.
(2001-03-18)

rtbm
RTBM
({Unix}) Read The Bloody Manual.
{Commonwealth Hackish} variant of {RTFM}. RTBM is often the entire text of the first reply to a question from a {newbie}; the *second* would escalate to "RTFM".
[{Jargon File}]
(1994-12-08)

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

rtcdl
RT-CDL
{Real-Time Common Design Language}

rtee
RTEE
Real Time Engineering Environment: a set of CASE tools produced by Westmount Technology B.V.

rtf
RTF
{Rich Text Format}

rtfaq
RTFAQ
({Usenet}, primarily written, by analogy with {RTFM}) Read the FAQ!
An exhortation that the person addressed ought to read the newsgroup's {FAQ list} before posting questions.
[{Jargon File}]
(1994-12-08)

rtfb
RTFB
[jargon] (By analogy with {RTFM}) Read The Fucking Binary.
Used when neither {documentation} nor {source} for the problem at hand exists, and the only thing to do is use some {debugger} or {monitor} and directly analyse the {assembler} or even the {machine code}.
"RTFB" is the least pejorative of the RTF? forms, the anger is directed at the absence of both source *and* adequate documentation rather than at the person asking a question.
[{Jargon File}]
(1995-08-20)

rtfm
RTFM
[jargon] /R T F M/ Read The Fucking Manual (always abbreviated, sometimes bowdlerised to "Fine" or "Friendly") An (unhelpful) {guru}'s traditional response when someone asks a question in a {newsgroup} or {mailing list} which he could have easily answered for himself had he bothered to RTFM.
The term may also be used to indicate that you couldn't find the answer in the manual. E.g. "How do I interface Unix to my toaster? And yes, I did RTFM but the {FM} didn't help and I can't {RTFS}."
Other derived forms include {RTFAQ}, {RTFB}, {RTM}, and, more recently, {STFW}. Compare: {UTSL}.
[Earliest use?]
[{Jargon File}]
(2003-06-07)

rtfs
RTFS
[jargon] 1. Read The Fucking Source. Variant form of {RTFM}, used when the problem at hand is not necessarily obvious and not answerable from the manuals - or the manuals are not yet written and maybe never will be. For even trickier situations, see {RTFB}. Unlike RTFM, the anger inherent in RTFS is not usually directed at the person asking the question, but rather at the people who failed to provide adequate documentation.
2. Read The Fucking Standard; this oath can only be used when the problem area (e.g. a language or operating system interface) has actually been codified in a ratified standards document. The existence of these standards documents (and the technically inappropriate but politically mandated compromises that they inevitably contain, and the impenetrable {legalese} in which they are invariably written, and the unbelievably tedious bureaucratic process by which they are produced) can be unnerving to hackers, who are used to a certain amount of ambiguity in the specifications of the systems they use. (Hackers feel that such ambiguities are acceptable as long as the {Right Thing} to do is obvious to any thinking observer; sadly, this casual attitude toward specifications becomes unworkable when a system becomes popular in the {Real World}.) Since a hacker is likely to feel that a standards document is both unnecessary and technically deficient, the deprecation inherent in this term may be directed as much against the standard as against the person who ought to read it.
[{Jargon File}]

rti
RTI
{Return from interrupt}

rtl
RTL
1. [hardware] {Resistor-Transistor Logic}.
2. [language] {Register Transfer Language}.

rtl1
RTL/1
[language] Real Time Language.
A {real-time} language written by J.G.P. Barnes of {ICI} in 1971. It was the predecessor of {RTL/2}.
["Real Time Languages for Process Control", J.G.P. Barnes, Computer J 15(1):15-17, Feb 1972].
(1994-11-09)

rtl2
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
RTM
1. [{Usenet}] Read The Manual. Politer variant of {RTFM}.
2. Robert T. Morris Jr.
The perpetrator of the great Internet worm of 1988 (see {Great Worm}); villain to many, naive hacker gone wrong to a few. Morris claimed that the worm that brought the Internet to its knees was a benign experiment that got out of control as the result of a coding error. After the storm of negative publicity that followed this blunder, Morris's user name on ITS was hacked from RTM to {RTFM}.
[{Jargon File}]
(1995-03-31)

rtmp
RTMP
{Routing Table Maintenance Protocol}

rtos
RTOS
{Real-Time Operating System}

rtp
RTP
{Real-Time Transport Protocol}

rtpc
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
RTS
1. [operating system] {run-time system}.
2. [programming] {return from subroutine}.
(1999-07-26)

rtsa
RTSA
{real-time structured analysis}

rtsp
RTSP
{Real Time Streaming Protocol}

rtt
RTT
{Round-Trip Time}

rtti
RTTI
{Run Time Type Information}

ru
[networking] The {country code} for the Russian Federation.
(1999-01-27)

rubi
{furigana}

ruby
Ruby
[language]
1. A {relational language} designed by Jones and M. Sheeran in 1986 for describing and designing circuits (a {hardware description language}). Ruby programs denote {binary relations} and programs are built-up inductively from primitive relations using a pre-defined set of {relational operators}. Ruby programs also have a geometric interpretation as networks of primitive relations connected by wires, which is important when layout is considered in circuit design.
Ruby has been continually developed since 1986, and has been used to design many different kinds of circuits, including {systolic arrays}, {butterfly networks} and arithmetic circuits.
{(ftp://ftp.cs.chalmers.se/pub/misc/ruby/)}.
E-mail: [graham@cs.chalmers.se].
["Ruby - A Language of Relations and Higher-Order Functions", M. Sheeran, Proc 3rd Banff Workshop on Hardware Verification, Springer 1990].
(1994-10-27)
2. One of five pedagogical languages based on {Markov algorithms}, used in Higman's report (below). The other languages are {Brilliant}, {Diamond}, {Nonpareil}, and {Pearl}.
["Nonpareil, a Machine Level Machine Independent Language for the Study of Semantics", B. Higman, ULICS Intl Report No ICSI 170, U London (1968)].
(1994-10-27)
3. A fully {object oriented} {interpreted} {scripting language} by Yukihiro Matsumoto [matz@netlab.co.jp].
Similar in scope to {Perl} and {Python}, Ruby has high-level {data types}, automatic {memory management}, {dynamic typing}, a {module} system, {exceptions}, and a rich standard library. Other features are {CLU}-style {iterators} for {loop abstraction}, {singleton classes}/{methods} and {lexical closures}.
In Ruby, everything is an {object}, including the basic data types. For example, the number 1 is an instance of {class} Fixnum.
Current version (stable): 1.6.7, as of 2002-03-01.
{Ruby Home (http://www.ruby-lang.org/)}.
{Ruby Central (http://www.rubycentral.com/)}.
["Programming Ruby - The Pragmatic Programmer's Guide", David Thomas, Andrew Hunt, Yukihiro Matsumoto pub. Addison Wesley 2000].
(2002-06-19)

rude
[WPI] 1. Badly written or functionally poor, e.g. a program that is very difficult to use because of gratuitously poor design decisions. Opposite: {cuspy}.
2. Anything that manipulates a shared resource without regard for its other users in such a way as to cause a (non-fatal) problem. Examples: programs that change tty modes without resetting them on exit, or windowing programs that keep forcing themselves to the top of the window stack. Compare {all-elbows}.
[{Jargon File}]
(1994-10-27)

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

run length limited
Run Length Limited
[storage] (RLL) The most popular scheme for encoding data on {magnetic disks}. RLL packs up to 50% more data on a disk than {MFM}.
{IBM} invented RLL encoding and used it in {mainframe} disk drives. During the late 1980s, {PC} hard disks began using RLL. Today, virtually every drive on the market uses some form of RLL.
Groups of bits are mapped to specific patterns of flux. The density of flux transitions is limited by the spatial resolution of the disk and frequency response of the head and electronics. However, transitions must be close enough to allow reliable {clock recovery}. RLL implementations vary according to the minimum and maximum allowed numbers of {transition cells} between transitions. For example, the most common variant today, RLL 1,7, can have a transition in every other cell and must have at least one transition every seven cells. The exact mapping from bits to transitions is essentially arbitrary.
Other schemes include {GCR}, {FM}, {Modified Frequency Modulation} (MFM). See also: {PRML}.
{(http://cma.zdnet.com/book/upgraderepair/ch14/ch14.htm)}.
(2003-08-12)

run time
1. The elapsed time to perform a computation on a particular computer.
2. The amount of time a processor actually spent on a particular process and not on other processes or overhead (see {time-sharing}).
3. The period of time during which a program is being executed, as opposed to {compile-time} or load time. The term should be hyphenated when used as an adjective.
4. {run-time support}.
(2001-09-14)

runcible
RUNCIBLE
Early system for mathematics on {IBM 650}.
See also {FORTRUNCIBLE}, {IT}.
[Listed in CACM 2(5):16 (May 1959)].
(1994-10-27)

runes
1. Anything that requires {heavy wizardry} or {black art} to {parse}: core dumps, {JCL} commands, {APL} or code in a language you haven't a clue how to read. Not quite as bad as {line noise}, but close.
Compare {casting the runes}, {Great Runes}.
2. Special display characters (for example, the high-half graphics on an {IBM PC}).
[{Jargon File}]

runic
[jargon] Obscure, consisting of {runes}.
{VMS} fans sometimes refer to {Unix} as "RUnix". Unix fans return the compliment by expanding VMS to "Very Messy Syntax" or "Vachement Mauvais Systeme" (French; literally "Cowlike Bad System", idiomatically "Bitchy Bad System").
(1996-09-17)

runlength encoding
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)

runtime environment
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)

runtime error
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)

runtime library
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)

runtime support
run-time support
{run-time system}

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

runtime type information
Run-Time Type Information
[compiler] (RTTI) Facilities included in {C++} {compilers} to allow the {type} of an object to be determined at {run time}.
This facility, found in good C++ compilers and some other {high level languages}, adds type information to memory resident objects (i.e. type name or unique type-id). This allows the {run-time system} to determine if an object is of a specific type, for example, to ensure that a {cast} of an object is valid.
(1996-04-15)

ruptime
{Unix} {Berkeley networking} command to report the status of all hosts on the net. See also rwho. See ruptime(1N).

rush
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
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
Russell, Bertrand
{Bertrand Russell}

russells attic
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)

russells paradox
Russell's Paradox
[mathematics] A logical contradiction in {set theory} discovered by {Bertrand Russell}. If R is the set of all sets which don't contain themselves, does R contain itself? If it does then it doesn't and vice versa.
The paradox stems from the acceptance of the following {axiom}: If P(x) is a property then
{x : P}
is a set. This is the {Axiom of Comprehension} (actually an {axiom schema}). By applying it in the case where P is the property "x is not an element of x", we generate the paradox, i.e. something clearly false. Thus any theory built on this axiom must be inconsistent.
In {lambda-calculus} Russell's Paradox can be formulated by representing each set by its {characteristic function} - the property which is true for members and false for non-members. The set R becomes a function r which is the negation of its argument applied to itself:
r = \ x . not (x x)
If we now apply r to itself,
r r = (\ x . not (x x)) (\ x . not (x x)) = not ((\ x . not (x x))(\ x . not (x x))) = not (r r)
So if (r r) is true then it is false and vice versa.
An alternative formulation is: "if the barber of Seville is a man who shaves all men in Seville who don't shave themselves, and only those men, who shaves the barber?" This can be taken simply as a proof that no such barber can exist whereas seemingly obvious axioms of {set theory} suggest the existence of the paradoxical set R.
{Zermelo Frankel set theory} is one "solution" to this paradox. Another, {type theory}, restricts sets to contain only elements of a single type, (e.g. integers or sets of integers) and no type is allowed to refer to itself so no set can contain itself.
A message from Russell induced {Frege} to put a note in his life's work, just before it went to press, to the effect that he now knew it was inconsistent but he hoped it would be useful anyway.
(2000-11-01)

rusty iron
[jargon, hardware] Synonym {tired iron}. It has been claimed that this is the inevitable fate of {water MIPS}.
[{Jargon File}]
(1995-03-25)

rusty memory
[storage, humour] {Mass-storage} that uses iron-oxide-based magnetic media (especially {magnetic tape} and the pre-{Winchester} {removable disk packs} used in {washing machines}).
Compare {donuts}.
[{Jargon File}]
(1997-07-20)

ruth
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
RWP
{Remote Write Protocol}

rx
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
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
S3
1. [language] An {ALGOL 68}-like system language for the {ICL 2900} computer.
2. [graphics, hardware] A video chipset.
3. [graphics] An {X Window System} {screen server}.
(2003-02-28)

sa
SA
{Structured Analysis}

sa
[networking] The {country code} for Saudi Arabia.
(1999-01-27)

sa110
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
SAA
{Systems Application Architecture}

saberc
Saber-C
Renamed to {CodeCenter}.

saberc
Saber-C++
Renamed to {ObjectCenter}.

sac
SAC
1. An early system on the {Datatron 200} series.
[Listed in CACM 2(5):16 (May 1959)].
(1995-04-12)
2. {Service Access Controller}.
(2002-12-30)

sac1
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
SAC2
[mathematics, tool] A {symbolic mathematics} system which compiles to {Fortran} or {Common Lisp}.
E-mail: [jma@poly.polytechnique.fr].
(1995-04-12)

sacadm
[operating system] (Service Access Controller Administration) A {Unix} (Solaris?) command for administering both {ttymon} and {listen}. It can be used to add and remove, start and stop, and enable and disable {port monitors}.
(2002-12-30)

sacred
[jargon] Reserved for exclusive use by something. The term might mean only writable by whatever it is sacred to.
For example, "Register 7 is sacred to the interrupt handler" would mean that if any other code changed the contents of register 7, dire consequences would ensue.
[{Jargon File}]
(2002-12-30)

sad
SAD
{Systems Analysis Definition}

sad sam
SAD SAM
Query language by Lindsay. Sammet 1969, p.669.

sadt
SADT
Structured Analysis and Design Technique.

safari
SAFARI
ON-line text editing system by {MITRE Corporation}.
Sammet 1969, p.685.

safe
A safe program analysis is one which will not reach invalid conclusions about the behaviour of the program. This may involve making safe approximations to properties of parts of the program. A safe approximation is one which gives less information.
For example, strictness analysis aims to answer the question "will this function evaluate its argument"?. The two possible results are "definitely" and "don't know". A safe approximation for "definitely" is "don't know". The two possible results correspond to the two sets: "the set of all functions which evaluate their argument" and "all functions". A set can be safely approximated by another which contains it.

safety
See {safe}, {safety-critical system}.

safetycritical system
safety-critical system
A computer, electronic or electromechanical system whose failure may cause injury or death to human beings. E.g. an aircraft or nuclear power station control system. Common tools used in the design of safety-critical systems are {redundancy} and {formal methods}.
See also {aeroplane rule}.

saga
[jargon] (WPI) A {cuspy} but bogus raving story about N {random} broken people.
Here is a classic example of the saga form, as told by {Guy Steele} (GLS):
Jon L. White (login name JONL) and I (GLS) were office mates at {MIT} for many years. One April, we both flew from Boston to California for a week on research business, to consult face-to-face with some people at {Stanford}, particularly our mutual friend {Richard Gabriel} (RPG).
RPG picked us up at the San Francisco airport and drove us back to {Palo Alto} (going {logical} south on route 101, parallel to {El Camino Bignum}). Palo Alto is adjacent to Stanford University and about 40 miles south of San Francisco. We ate at The Good Earth, a "health food" restaurant, very popular, the sort whose milkshakes all contain honey and protein powder. JONL ordered such a shake - the waitress claimed the flavour of the day was "lalaberry". I still have no idea what that might be, but it became a running joke. It was the colour of raspberry, and JONL said it tasted rather bitter. I ate a better tostada there than I have ever had in a Mexican restaurant.
After this we went to the local Uncle Gaylord's Old Fashioned Ice Cream Parlor. They make ice cream fresh daily, in a variety of intriguing flavours. It's a chain, and they have a slogan: "If you don't live near an Uncle Gaylord's - MOVE!" Also, Uncle Gaylord (a real person) wages a constant battle to force big-name ice cream makers to print their ingredients on the package (like air and plastic and other non-natural garbage). JONL and I had first discovered Uncle Gaylord's the previous August, when we had flown to a computer-science conference in {Berkeley}, California, the first time either of us had been on the West Coast. When not in the conference sessions, we had spent our time wandering the length of Telegraph Avenue, which (like Harvard Square in Cambridge) was lined with picturesque street vendors and interesting little shops. On that street we discovered Uncle Gaylord's Berkeley store. The ice cream there was very good. During that August visit JONL went absolutely bananas (so to speak) over one particular flavour, ginger honey.
Therefore, after eating at The Good Earth - indeed, after every lunch and dinner and before bed during our April visit --- a trip to Uncle Gaylord's (the one in Palo Alto) was mandatory. We had arrived on a Wednesday, and by Thursday evening we had been there at least four times. Each time, JONL would get ginger honey ice cream, and proclaim to all bystanders that "Ginger was the spice that drove the Europeans mad! That's why they sought a route to the East! They used it to preserve their otherwise off-taste meat." After the third or fourth repetition RPG and I were getting a little tired of this spiel, and began to paraphrase him: "Wow! Ginger! The spice that makes rotten meat taste good!" "Say! Why don't we find some dog that's been run over and sat in the sun for a week and put some *ginger* on it for dinner?!" "Right! With a lalaberry shake!" And so on. This failed to faze JONL; he took it in good humour, as long as we kept returning to Uncle Gaylord's. He loves ginger honey ice cream.
Now RPG and his then-wife KBT (Kathy Tracy) were putting us up (putting up with us?) in their home for our visit, so to thank them JONL and I took them out to a nice French restaurant of their choosing. I unadventurously chose the filet mignon, and KBT had je ne sais quoi du jour, but RPG and JONL had lapin (rabbit). (Waitress: "Oui, we have fresh rabbit, fresh today." RPG: "Well, JONL, I guess we won't need any *ginger*!")
We finished the meal late, about 11 P.M., which is 2 A.M Boston time, so JONL and I were rather droopy. But it wasn't yet midnight. Off to Uncle Gaylord's!
Now the French restaurant was in Redwood City, north of Palo Alto. In leaving Redwood City, we somehow got onto route 101 going north instead of south. JONL and I wouldn't have known the difference had RPG not mentioned it. We still knew very little of the local geography. I did figure out, however, that we were headed in the direction of Berkeley, and half-jokingly suggested that we continue north and go to Uncle Gaylord's in Berkeley.
RPG said "Fine!" and we drove on for a while and talked. I was drowsy, and JONL actually dropped off to sleep for 5 minutes. When he awoke, RPG said, "Gee, JONL, you must have slept all the way over the bridge!", referring to the one spanning San Francisco Bay. Just then we came to a sign that said "University Avenue". I mumbled something about working our way over to Telegraph Avenue; RPG said "Right!" and maneuvered some more. Eventually we pulled up in front of an Uncle Gaylord's.
Now, I hadn't really been paying attention because I was so sleepy, and I didn't really understand what was happening until RPG let me in on it a few moments later, but I was just alert enough to notice that we had somehow come to the Palo Alto Uncle Gaylord's after all.
JONL noticed the resemblance to the Palo Alto store, but hadn't caught on. (The place is lit with red and yellow lights at night, and looks much different from the way it does in daylight.) He said, "This isn't the Uncle Gaylord's I went to in Berkeley! It looked like a barn! But this place looks *just like* the one back in Palo Alto!"
RPG deadpanned, "Well, this is the one *I* always come to when I'm in Berkeley. They've got two in San Francisco, too. Remember, they're a chain."
JONL accepted this bit of wisdom. And he was not totally ignorant - he knew perfectly well that University Avenue was in Berkeley, not far from Telegraph Avenue. What he didn't know was that there is a completely different University Avenue in Palo Alto.
JONL went up to the counter and asked for ginger honey. The guy at the counter asked whether JONL would like to taste it first, evidently their standard procedure with that flavour, as not too many people like it.
JONL said, "I'm sure I like it. Just give me a cone." The guy behind the counter insisted that JONL try just a taste first. "Some people think it tastes like soap." JONL insisted, "Look, I *love* ginger. I eat Chinese food. I eat raw ginger roots. I already went through this hassle with the guy back in Palo Alto. I *know* I like that flavour!"
At the words "back in Palo Alto" the guy behind the counter got a very strange look on his face, but said nothing. KBT caught his eye and winked. Through my stupor I still hadn't quite grasped what was going on, and thought RPG was rolling on the floor laughing and clutching his stomach just because JONL had launched into his spiel ("makes rotten meat a dish for princes") for the forty-third time. At this point, RPG clued me in fully.
RPG, KBT, and I retreated to a table, trying to stifle our chuckles. JONL remained at the counter, talking about ice cream with the guy b.t.c., comparing Uncle Gaylord's to other ice cream shops and generally having a good old time.
At length the g.b.t.c. said, "How's the ginger honey?" JONL said, "Fine! I wonder what exactly is in it?" Now Uncle Gaylord publishes all his recipes and even teaches classes on how to make his ice cream at home. So the g.b.t.c. got out the recipe, and he and JONL pored over it for a while. But the g.b.t.c. could contain his curiosity no longer, and asked again, "You really like that stuff, huh?" JONL said, "Yeah, I've been eating it constantly back in Palo Alto for the past two days. In fact, I think this batch is about as good as the cones I got back in Palo Alto!"
G.b.t.c. looked him straight in the eye and said, "You're *in* Palo Alto!"
JONL turned slowly around, and saw the three of us collapse in a fit of giggles. He clapped a hand to his forehead and exclaimed, "I've been hacked!"
[My spies on the West Coast inform me that there is a close relative of the raspberry found out there called an "ollalieberry" - ESR]
[Ironic footnote: it appears that the {meme} about ginger vs. rotting meat may be an urban legend. It's not borne out by an examination of mediaeval recipes or period purchase records for spices, and appears full-blown in the works of Samuel Pegge, a gourmand and notorious flake case who originated numerous food myths. - ESR]
[{Jargon File}]
(1994-12-08)

sagan
[jargon] /say'gn/ (From Carl Sagan's TV series "Cosmos") Billions and billions. A large quantity of anything.
"There's a sagan different ways to tweak Emacs." "The US Government spends sagans on bombs and welfare - hard to say which is more destructive."
[{Jargon File}]
(1999-10-12)

sage
SAGE
1. [body, job] {Systems Administrators Guild}.
2. [project] {Semi-Automatic Ground Environment}.
(2001-01-27)

saic
SAIC
{Home (http://www.saic.com)}.
(1996-03-21)

said
SAID
{Security Association ID}

sail
SAIL
1. [body, education] {Stanford Artificial Intelligence Laboratory}.
2. [language] {Stanford Artificial Intelligence Language}.
3. [language] An early system on the {Larc} computer.
[Listed in CACM 2(5):16, May 1959].
[{Jargon File}]
(2001-06-22)

saint
SAINT
1. [language] {Symbolic Automatic INTegrator}.
2. [networking, security, tool] {Security Administrator's Integrated Network Tool}.
(2000-07-11)

saint andrews static language
Saint Andrews Static Language
[language] [Is this the same as {Single ASsignment Language}?]
(2001-08-24)

sal
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
["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 Automation
{Sales Force Automation}

sales force automation
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)

salescritter
/sayls'kri"tr/ Pejorative hackerism for a computer salesperson. Hackers tell the following joke:
Q. What's the difference between a used-car dealer and a computer salesman?
A. The used-car dealer knows he's lying. [Some versions add: ...and probably knows how to drive.]
This reflects the widespread hacker belief that salescritters are self-selected for stupidity (after all, if they had brains and the inclination to use them, they'd be in programming). The terms "salesthing" and "salesdroid" are also common.
Compare {marketroid}, {suit}.
[{Jargon File}]
(1994-12-08)

salgol
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
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
SALT
1. Symbolic Assembly Language Trainer. Assembly-like language implemented in BASIC by Kevin Stock, now at Encore in France.
2. Sam And Lincoln Threaded language. A threaded extensible variant of BASIC. "SALT", S.D. Fenster et al, BYTE (Jun 1985) p.147.
[{Jargon File}]

salt mines
Dense quarters housing large numbers of programmers working long hours on grungy projects, with some hope of seeing the end of the tunnel in N years. Noted for their absence of sunshine. Compare {playpen}, {sandbox}.
[{Jargon File}]

salt substrate
[MIT] Collective noun used to refer to potato chips, pretzels, saltines, or any other form of snack food designed primarily as a carrier for sodium chloride. From the technical term "chip substrate", used to refer to the silicon on the top of which the active parts of integrated circuits are deposited.

sam
SAM
{System Account Manager}

sam
[tool] A multi-file {screen editor} with structural {regular expressions}. Sam runs under the {X Window System}.
(2000-07-16)

sam76
SAM76
A {macro} language by Claude Kagan descended from {TRAC}. There is a version for {CP/M}.
[Dr Dobbs J ca 1977].

samba
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
SAME
{Standard ANSI Module language with Extensions}

sameday service
same-day service
[humour, operating system] An ironic term used to describe long response time, particularly with respect to {MS-DOS} {system calls} (which ought to require only a tiny fraction of a second to execute). Such response time is a major incentive for programmers to write programs that are not {well-behaved}.
See also {PC-ism}.
[{Jargon File}]
(1996-12-17)

samedl
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
[publication] (Russian, literally "self publishing") The process of disseminating documentation via underground channels. Originally referred to photocopy duplication and distribution of banned books in the former Soviet Union; now refers by obvious extension to any less-than-official promulgation of textual material, especially rare, obsolete, or never-formally-published computer documentation. Samizdat is obviously much easier when one has access to high-{bandwidth} {networks} and high-quality {laser printers}.
Strictly, "samizdat" only applies to distribution of needed documents that are otherwise unavailable, and not to duplication of material that is available for sale under {copyright}.
See {Lions Book} for a historical example.
See also: {hacker ethic}.
[{Jargon File}]
(2000-03-23)

sammet jean e
Sammet, Jean E.
{Jean E. Sammet}

sample
[digital signal processing] The result of measuring the amplitude of an analog signal at a specified time. In {digital signal processing} a sample is a signed or unsigned number and the number of samples per second is called the {sample rate}.
(2001-06-06)

sample rate
[digital signal processing] The number of times an analog signal is measured (sampled) per second. The unit of sample rate is "samples per second". This is often expressed in {kiloHertz} (kHz). For example, "CD quality" sound has a sample rate of 44 kHz.
Compare {data rate}. See {Nyquist frequency}.
[Is it correct to use Hertz for things other than the frequency of a sine wave?]
(2001-06-06)

sampling
[DSP] The process of taking a {sample} of a signal at evenly spaced intervals of time. This is the first step in {Digital Signal Processing}.
(2001-06-06)

sampling frequency
{sample rate}

samurai
A hacker who hires out for legal cracking jobs, snooping for factions in corporate political fights, lawyers pursuing privacy-rights and First Amendment cases, and other parties with legitimate reasons to need an electronic locksmith. In 1991, mainstream media reported the existence of a loose-knit culture of samurai that meets electronically on BBS systems, mostly bright teenagers with personal micros; they have modelled themselves explicitly on the historical samurai of Japan and on the "net cowboys" of William Gibson's {cyberpunk} novels. Those interviewed claim to adhere to a rigid ethic of loyalty to their employers and to disdain the vandalism and theft practiced by criminal crackers as beneath them and contrary to the hacker ethic; some quote Miyamoto Musashi's "Book of Five Rings", a classic of historical samurai doctrine, in support of these principles.
See also {Stupids}, {social engineering}, {cracker}, {hacker ethic}, and {dark-side hacker}.
[{Jargon File}]

san
SAN
{Storage Area Network}

san francisco
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)

sandbender
[IBM] A person involved with silicon lithography and the physical design of {integrated circuit}s. Compare {ironmonger}, {polygon pusher}.

sandbox
(UK: "sandpit")
1. [operating system] A protected, limited environment where applications (e.g. {Java} programs downloaded from the {Internet}) are allowed to "play" without risking damage to the rest of the system.
2. [jargon] A term for the R&D department at many software and computer companies (where hackers in commercial environments are likely to be found). The term is half-derisive, but reflects the truth that research is a form of creative play.
Compare {playpen}.
3. [operating system] {link farm}.
[{Jargon File}]
(2001-02-08)

sandman
Sandman
The {DoD} requirements that led to {APSE}.

sanity check
[programming] 1. Checking {code} (or anything else, e.g. a {Usenet} posting) for completely stupid mistakes. Implies that the check is to make sure the author was sane when it was written; e.g. if a piece of scientific software relied on a particular formula and was giving unexpected results, one might first look at the nesting of parentheses or the coding of the formula, as a "sanity check", before looking at the more complex I/O or data structure manipulation routines, much less the {algorithm} itself.
Compare {reality check}.
2. A run-time test, either validating input or ensuring that the program hasn't screwed up internally (producing an inconsistent value or state).
[{Jargon File}]
(1998-08-29)

santa cruz operation
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
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
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
SAPI
1. [programming] {Speech Application Programming Interface}.
2. [programming] {Scheduling Application Programming Interface}.
3. [networking] {Service Access Point Identifier}.
(1996-10-03)

sar
SAR
{segmentation and reassembly}

sas
SAS
1. [language] {Statistical Analysis System}.
2. [tool] {SAS System}.
(1998-11-06)

sas system
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)

sasd
SASD
{Structured Analysis, Structured Design}

sase
SASE
{Specific Application Service Element}. Opposite: {CASE}.

sasi
SASI
{Small Computer System Interface}

sasl
SASL
1. [language] {Single ASsignment Language}.
2. {Simple Authentication and Security Layer}.
(2001-08-24)

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

saslyacc
SASL-YACC
A version of {Yacc} written in {SASL} by Simon Peyton-Jones.

satan
SATAN
{Security Administrator's Integrated Network Tool}

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

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

saturdaynight special
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.
[{Jargon File}]
(1994-11-11)

save
SAVE
An {assembler} for the {Burroughs 220} by Melvin Conway (see {Conway's Law}). The name "SAVE" didn't stand for anything, it was just that you lost fewer card decks and listings because they all had SAVE written on them.
(1995-01-16)

save
[editor, programming, storage] To copy {data} to a more permanent form of storage. The term is commonly used for when some kind of document editing {application program} writes the current document from {RAM} to a {file} on {hard disk} at the request of the user. The implication is that the user might later {load} the file back into the editor again to view it, print it, or continue editing it. Saving a document makes it safe from the effects of power failure.
The "document" might actually be anything, e.g. a {word processor} document, the current state of a game, a piece of music, a {web site}, or a memory image of some program being executed (though the term "dump" would probably be more common here).
Data can be saved to any kind of (writable) storage: hard disk, {floppy disk}, {CD-R}; either locally or via a {network}.
A program might save its data without any explicit user request, e.g. periodically as a precaution ("auto save"), or if it forms part of a {pipeline} of processes which pass data via intermediate files. In the latter case the term suggests all data is written in a single operation whereas "output" might be a continuous flow, in true pipeline fashion.
When copying several files from one storage medium to another, the terms "back-up", "dump", or "archive" would be used rather than "save". The term "store" is similar to "save" but typically applies to copying a single item of data, e.g. a number, from a {processor}'s {register} to {RAM}.
(2002-06-07)

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.
[{Jargon File}]

sb
[networking] The {country code} for the Solomon Islands.
(1999-01-27)

sb awe32
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
SBCS
[character] (IBM) single-byte character set.
A {character set} that uses 8 bits to represent a character.
(1995-03-21)

sbd
SBD
{Smart Battery Data}

sbm
SBM
{Solution Based Modelling}

sbprolog
SB-Prolog
Stony Brook Prolog. A {public domain} {Prolog} {interpreter} for {Unix}. Version 3.1. Distributed under the {GNU} {General Public License}.
{(ftp://sbcs.sunysb.edu/pub/sbprolog/)}.
{Amiga version 2.3.2 (ftp://ftp.cso.uiuc.edu/amiga/fish/f1/ff140)} and {(ftp://ftp.cso.uiuc.edu/amiga/fish/f1/ff141)}.
E-mail: [warren@sbcs.sunysb.edu].
(1995-01-16)

sbr
SBR
{Spectral Band Replication}

sbus
SBus
[hardware] The hardware interface for add-in boards in later {Sun-3} (and {Sun-4}?) {workstations}.
[Reference?]
(2001-09-07)

sc
SC
[body] Subcommittee (of {ISO}, {JTC}?).

sc
[networking] The {country code} for the Seychelles.
(1999-01-27)

sca
SCA
{Single Connection Attach}

scada
SCADA
{Supervisory Control and Data Acquisition}

scag
To destroy the data on a disk, either by corrupting the file system or by causing media damage.
Compare {scrog}, {roach}.
[{Jargon File}]
(1995-01-16)

scalability
How well a solution to some problem will work when the size of the problem increases.
For example, a central {server} of some kind with ten {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
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
Scalable Processor ARChitecture
[computer] (SPARC) An {instruction set architecture} designed by {Sun Microsystems} for their own use in 1985. Sun was a maker of {680x0}-based {Unix} {workstations}. Research versions of {RISC} processors had promised a major step forward in speed but existing manufacturers were slow to introduce a RISC type processor, so Sun went ahead and developed its own, based on the {University of California at Berkley}'s {RISC I} and {RISC II} 1980-2. In keeping with their open philosophy, they licenced it to other companies, rather than manufacture it themselves. The evolution and standardisation of SPARC is now directed by the non-profit consortium {SPARC International, Inc.}
SPARC was not the first {RISC} processor. The {AMD 29000} came before it, as did the {MIPS R2000} (based on {Stanford}'s design) and {Hewlett-Packard} {Precision Architecture} {CPU}, among others. The SPARC design was radical at the time, even omitting multiple cycle multiply and divide instructions (like a few others), while most RISC CPUs are more conventional.
SPARC implementations usually contain 128 or 144 {registers}, ({CISC} designs typically had 16 or less). At each time 32 registers are available - 8 are global, the rest are allocated in a "window" from a stack of registers. The window is moved 16 registers down the stack during a function call, so that the upper and lower 8 registers are shared between functions, to pass and return values, and 8 are local. The window is moved up on return, so registers are loaded or saved only at the top or bottom of the register stack. This allows functions to be called in as little as 1 cycle. Like some other RISC processors, reading global register zero always returns zero and writing it has no effect. SPARC is {pipelined} for performance, and like previous processors, a dedicated {condition code register} holds comparison results.
SPARC is "scalable" mainly because the register stack can be expanded (up to 512, or 32 windows), to reduce loads and saves between functions, or scaled down to reduce {interrupt} or {context switch} time, when the entire register set has to be saved. Function calls are usually much more frequent, so the large register set is usually a plus.
SPARC is not a chip, but a specification, and so there are various implementations of it. It has undergone revisions, and now has multiply and divide instructions. Most versions are 32 bits, but there are designs for 64-bit and {superscalar} versions. SPARC was submitted to the {IEEE} society to be considered for the {P1754} microprocessor standard.
SPARC(R) is a registered trademark of SPARC International, Inc. in the United States and other countries.
[The SPARC Architecture Manual, v8, ISBN 0-13-825001-4].
(1994-11-01)

scalable sampling rate
Scalable Sampling Rate
[compression, standard, algorithm] (SSR) See, e.g., {MPEG-4 AAC SSR}.
(2001-12-08)

scalable vector graphics
Scalable Vector Graphics
[graphics, World-Wide Web] A {W3C} standard for {vector graphics}, based on {XML}.
{Home (http://www.w3.org/Graphics/SVG/)}.
(2001-02-06)

scalar
1. [mathematics] A single number, as opposed to a {vector} or {matrix} of numbers. Thus, for example, "scalar multiplication" refers to the operation of multiplying one number (one scalar) by another and is used to contrast this with "matrix multiplication" etc.
2. [architecture] In a {parallel processor} or {vector processor}, the "scalar processor" handles all the sequential operations - those which cannot be parallelised or vectorised.
See also {superscalar}.
3. [programming] Any data type that stores a single value (e.g. a number or {Boolean}), as opposed to an {aggregate} data type that has many elements. A {string} is regarded as a scalar in some languages (e.g. {Perl}) and a vector of {characters} in others (e.g. {C}).
(2002-06-12)

scallop
SCALLOP
[language, history] A medium-level language for {CDC} computers, used to {bootstrap} the first {Pascal} {compiler}.
(1994-11-01)

scan
SCAN
1. ["A Parallel Implementation of the SCAN Language", N.G. Bourbakis, Comp Langs 14(4):239-254 (1989)].
2. A {real-time} language from {DEC}.
[Are these the same language?]
(1994-11-01)

scan
1. (computer peripheral) See {scanner}.
2. (circuit design) See {scan design}.
3. ({functional programming}) See {scanl}, {scanr}.
4. [storage, algorithm] An algorithm for scheduling multiple accesses to a disk. A number of requests are ordered according to the data's position on the storage device. This reduces the disk arm movement to one "scan" or sweep across the whole disk in the worst case. The serivce time can be estimated from the disk's track-to-track {seek} time, maximum seek time (one scan), and maximum {rotational latency}.
{Scan-EDF} is a variation on this.
(1995-11-15)

scan design
[electronics] (Or "Scan-In, Scan-Out") A electronic circuit design technique which aims to increase the controllability and observability of a digital {logic circuit} by incorporating special "{scan 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)

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)

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)

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

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

scanin scanout
Scan-In, Scan-Out
{scan design}

scanner
1. An input device that takes in an optical image and digitises it into an electronic image represented as binary data. This can be used to create a computerised version of a photo or illustration.
A scanner may be linked to {optical character recognition} software allowing printed documents to be converted to electronic text without having to type them in at a keyboard.
2. {lexical analyser}.
(1995-02-14)

scanno
/skan'oh/ An error in a document caused by a {scanner} glitch, analogous to a typo or {thinko}.
[{Jargon File}]
(1995-02-14)

scc
SCC
{strongly connected component}

sccs
SCCS
Source Code Control System: a popular {code management} system for Unix systems.

sceptre
SCEPTRE
Designing and analysing circuits.
["SCEPTRE: A Computer Program for Circuit and Systems Analysis", J.C. Bowers et al, P-H 1971].

schachters hypothesis
Schachter's Hypothesis
[World-Wide Web] The observation that "Given two unrelated technical terms, an {Internet} {search engine} will retrieve only resumes". This was first formulated by {Joshua Eli Schachter (http://www.burri.to/~joshua/)} in about 1998, while poring over the uniformly irrelevant pages that resulted from a search he'd run on "+{Perl} +{MAPI}" in {Altavista}.
(2002-02-04)

scheduler
{scheduling}

scheduling
[algorithm] The arrangement of a number of related operations in time.
There are several kinds of scheduling related to computers:
{instruction scheduling} - sequencing the instructions executed by the {CPU}
{multitasking} ("process scheduling") - sharing a CPU between several processes
{application} {software} to help organise your daily meetings etc.
{task scheduling} - {algorithms} to solve the general problem of satisfying time and resource {constraints} between a number of tasks.
Compare {planning}.
(1998-04-25)

scheduling api
Scheduling API
{Scheduling Application Programming Interface}

scheduling application programming interface
Scheduling Application Programming Interface
(SAPI, Scheduling API) An {API} aimed at {software} which aids humans in arranging their (business) activities.
{Microsoft} has defined a SAPI for its {Schedule+} application.
(1995-01-11)

schelog
Schelog
[language, Scheme, Prolog] (Previously "slog"?) A {Prolog} to {Chez Scheme} {macro} translator by [dorai@cs.rice.edu]. Schelog relies on continuations.
{Home (http://www.cs.rice.edu/CS/PLT/packages/schelog)}.
(2000-11-20)

schema definition set
Schema Definition Set
(SDS) Something in {Portable Common Tool Environment}.
[What?]
(2001-03-03)

schema representation language
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
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
Scheme
[programming] (Originally "Schemer", by analogy with {Planner} and {Conniver}). A small, uniform {Lisp} dialect with clean {semantics}, developed initially by {Guy Steele} and {Gerald Sussman} in 1975. Scheme uses {applicative order reduction} and {lexical scope}. It treats both {functions} and {continuations} as {first-class} objects.
One of the most used implementations is {DrScheme}, others include {Bigloo}, {Elk}, {Liar}, {Orbit}, {Scheme86} (Indiana U), {SCM}, {MacScheme} (Semantic Microsystems), {PC Scheme} (TI), {MIT Scheme}, and {T}.
See also {Kamin's interpreters}, {PSD}, {PseudoScheme}, {Schematik}, {Scheme Repository}, {STk}, {syntax-case}, {Tiny Clos}, {Paradigms of AI Programming}.
There have been a series of revisions of the report defining Scheme, known as {RRS} (Revised Report on Scheme), {R2RS} (Revised Revised Report ..), {R3RS}, {R3.899RS}, {R4RS}.
{Scheme resources (http://www.schemers.org/)}.
Mailing list: scheme@mc.lcs.mit.edu.
[IEEE P1178-1990, "IEEE Standard for the Scheme Programming Language", ISBN 1-55937-125-0].
(2003-09-14)

scheme library
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 object system
Scheme Object System
(SOS) Chris Hanson?
{(ftp://altdorf.ai.mit.edu/archive/cph/sos.tar.gz)}.
[Description?]

scheme repository
Scheme Repository
A collection of free {Scheme} programs.
{(ftp://nexus.yorku.ca/pub/scheme/)}.

scheme84
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
Scheme88
{(ftp://nexus.yorku.ca/pub/scheme/)}.
[Description?]

schemec
Scheme-]C
{Scheme-to-C}

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

schemetoc
Scheme-to-C
[language] A {Scheme} {compiler} written in {C} that emits C and is embeddable in C. Scheme-to-C was written by Joel Bartlett of {Digital Western Research Laboratory}. Version 15mar93 translates a superset of Revised**4 Scheme to C that is then compiled by the {native} {C} compiler for the {target machine}. This design results in a portable system that allows either stand-alone Scheme programs or programs written in both compiled and interpreted Scheme and other languages. It supports "{expansion passing style}" {macros}, {foreign function} calls, {records}, and interfaces to {Xlib} ({Ezd} and {Scix}).
Scheme-to-C runs on {VAX}, {ULTRIX}, {DECstation}, {Alpha AXP} {OSF}/1, {Windows 3.1}, {Apple Macintosh} 7.1, {HP 9000/300}, {HP 9000/700}, {Sony News}, {SGI} {Iris} and {Harris} {Nighthawk}, and other {Unix}-like {88000} systems. The earlier 01nov91 version runs on {Amiga}, {SunOS}, {NeXT}, and {Apollo} systems.
{(ftp://gatekeeper.dec.com/pub/DEC/Scheme-to-C/)}.
(2000-05-24)

schlaermellor
Schlaer-Mellor
An {object-oriented analysis} (OOA), design and modelling method that addresses the integration of structural and behavioural properties. It also allows an animation of the design.
{I-OOA} is a tool that supports the Schlaer Mellor Design Method.
(1995-01-31)

schoonschip
Schoonschip
[mathematics, tool] (From the Dutch for "beautiful ship" or "clean ship") A program for {symbolic mathematics}, especially High Energy Physics, written by M. Veltman of CERN in 1964. Schoonschip only does algebra, no derivatives. It was implemented originally in {CDC-6600} and {CDC-7600} {assembly language} and currently in {680x0} {assembly language}. Latest versions run on {Amiga}, {Atari ST}, {Sun-3} and {NeXT}.
It was once maintained by David Williams at the {University of Michigan} Physics Department.
{(ftp://archive.umich.edu/physics/schip)}.
(2000-11-14)

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}.
[{Jargon File}]
(1995-02-28)

sci
SCI
[hardware] 1. {Scalable Coherent Interface}.
2. {UART}.
(1998-02-14)

science and engineering research council
Science and Engineering Research Council
[body] (SERC) Formerly the largest of the five research councils funded by the British Government through the Office of Science and Technology. SERC funded higher education research in science and engineering, including computing and was responsible for the Rutherford Appleton Laboratory, near Oxford; the Daresbury Laboratory, near Warrington; the Royal Greenwich Observatory at Cambridge and the Royal Observatory, Edinburgh.
In April 1994 SERC was split into the Engineering and Physical Sciences Research Council and the Particle Physics and Astronomy Research Council. SERC's remote sensing efforts have been transferred to the Natural Environment RC and its biotechnology efforts merged with the Agriculture and Food RC to make the new Biotechnology and Biological Sciences RC. The two major SERC laboratories - {Rutherford Appleton Laboratory} and Daresbury Laboratory are now independent.
{(http://unixfe.rl.ac.uk/serc/serc.html)}.
(1994-12-15)

scientific data systems
Scientific Data Systems
[company] (SDS) The company that produced the SDS 940 (later renamed {XDS 940}). Around 1968 {Xerox} bought out SDS and renamed the SDS machines to XDS.
[What else?]
(2001-03-03)

scl
SCL
[language] 1. {System Control Language}.
2. Symbolic Communication Language. Designed primarily for the manipulation of symbolic formulas. Featured pattern matching (which was partly the inspiration for SNOBOL), string operations in buffers, and automatic storage management. "A Language for Symbolic Communication", C.Y. Lee et al, Tech Mem 62-3344-4, Bell Labs, Sept 1962.

scm
SCM
[language] A {Scheme} {interpreter} in {C} by Aubrey Jaffer and others. SCM conforms to {R4RS} and {IEEE} {P1178} and includes a {conformance test}. It is distributed under {GPL}. Version 5d0 runs under {Amiga}, {Atari-ST}, {MacOS}, {MS-DOS}, {OS/2}, {NOS/VE}, {Unicos}, {VMS}, {Unix}, and similar systems.
{x-scm} provides an {X Window System} interface for SCM programs.
{Home (http://swissnet.ai.mit.edu/~jaffer/SCM.html)}.
(1999-06-07)

scmp
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
SCO
{Santa Cruz Operation}

scode
Scode
The internal representation used by the {Liar} compiler for {MIT Scheme}.
(1994-11-01)

scoop
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
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
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
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 domain
Scott domain
An {algebraic}, {boundedly complete}, {complete partial order}. Often simply called a {domain}.
(1994-11-01)

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

scpi
SCPI
{Standard Commands for Programmable Instruments}

scpi consortium
SCPI Consortium
[body] A body established to promote {Standard Commands for Programmable Instruments}.
Address: 8380 Hercules Drive, Suite P3, La Mesa, CA 91942, USA.
{SCPI in Europe (http://ourworld.compuserve.com/homepages/acea/scpi_uk.htm)}. Address: ACEA, P.O. Box 134, 7640 AC Wierden The Netherlands. Telephone: +31 546 577 994. E-mail: [ACEA@compuserve.com].
(1999-01-05)

scram switch
[jargon] (From the nuclear power industry) An emergency power-off switch (see {Big Red Switch}), especially one positioned to be easily hit by evacuating personnel. In general, this is *not* something you {frob} lightly; these often initiate expensive events (such as Halon dumps) and are installed in a {dinosaur pen} for use in case of electrical fire or in case some luckless {field servoid} should put 120 volts across himself while {Easter egging}.
SCRAM stands for Safety Control Rod Ax Man. In the early days of nuclear power, boron moderator rods were raised and lowered on ropes. In the event of a runaway chain reaction, a man with an axe would chop the rope and drop the rods into the nuclear pile to stop the reaction.
See also {molly-guard}, {TMRC}.
[{Jargon File}]
(2003-05-17)

scrap
SCRAP
Something written at {CSIR}, Pretoria, South Africa in the late 1970s. It ran on {Interdata} and {Perkin-Elmer} computers and was in use until the late 1980s.
[But what was it?]
(1994-12-15)

scratch
1. (From "scratchpad") Describes a data structure or recording medium attached to a machine for testing or temporary-use purposes; one that can be {scribble}d on without loss. Usually in the combining forms "scratch memory", "scratch register", "scratch disk", "scratch tape", "scratch volume".
See also {scratch monkey}.
2. (primarily {IBM}) To delete (as in a file).
[{Jargon File}]
(1994-12-15)

scratch disk
1. [storage] See {scratch}.
2. [operating system] Unallocated space on {Windows 95}'s primary {hard disk} {partition}, used for {virtual memory}.
Shortage of space on this partition can result in the error "scratch disk full".
(2000-03-07)

scratch monkey
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]
[{Jargon File}]
(1994-12-15)

scratchpad i
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
Scratchpad II
See {Scratchpad I}, {AXIOM}.
["Scratchpad II Programming Language Manual", R.D. Jenks et al, IBM, 1985].
[Scratchpad II Newsletter: Computer Algebra Group, TJWRC, Box 218, Yorktown Hts, NY 10598].

scream and die
Synonym {cough and die}, but connotes that an error message was printed or displayed before the program crashed.
[{Jargon File}]

screamer
Screamer
An extension of {Common Lisp} providing {nondeterministic} {backtracking} and {constraint} programming.
{(ftp://ftp.ai.mit.edu/pub/screamer.tar.Z)}.
[Isn't all backtracking nondeterministic by definition?]

screaming tty
[Unix] A terminal line which spews an infinite number of random characters at the operating system. This can happen if the terminal is either disconnected or connected to a powered-off terminal but still enabled for login; misconfiguration, misimplementation, or simple bad luck can start such a terminal screaming. A screaming tty or two can seriously degrade the performance of a vanilla Unix system; the arriving "characters" are treated as userid/password pairs and tested as such. The Unix password encryption algorithm is designed to be computationally intensive in order to foil brute-force crack attacks, so although none of the logins succeeds; the overhead of rejecting them all can be substantial.
[{Jargon File}]

screen blanker
{screen saver}

screen peace
Screen Peace
[tool] A {screen saver} for {Microsoft Windows} by Anthony Andersen. Released as {charityware}. It can load extension modules with {filename extension} ".SPX".
{Some modules
(ftp://src.doc.ic.ac.uk/computing/systems/ibmpc/windows3/desktop/spx2.zip)}.
(1997-11-23)

screen 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
Screenwrite
[language] A columnar format {third generation programming language} similar in layout to {assembler} and used for {transaction processing}, solely on the {Honeywell} {Bull} {TPS6} {database}/transaction management system on their Level 6 {DPS6} {minicomputers} running under the {GCOS6} {operating system}. In the UK it was mainly used by local authorities and the Ministry of Defense. Being proprietary technology, its popularity waned with the introduction of {open systems} standards, {relational databases} and {fourth generation languages} but it is believed that some systems made it through {Y2K}.
[Dates?]
(2003-05-15)

screw
[jargon] (MIT) A {lose}, usually in software. Especially used for user-visible misbehaviour caused by a bug or {misfeature}. This use has become quite widespread outside {MIT}.
[{Jargon File}]
(1994-12-01)

screwage
/skroo'*j/ Like {lossage} but connotes that the failure is due to a designed-in misfeature rather than a simple inadequacy or a mere bug.
[{Jargon File}]
(1994-12-01)

scribble
To modify a data structure in a random and unintentionally destructive way. "Bletch! Somebody's disk-compactor program went berserk and scribbled on the i-node table." "It was working fine until one of the allocation routines scribbled on low core." Synonymous with {trash}; compare {mung}, which conveys a bit more intention, and {mangle}, which is more violent and final.
[{Jargon File}]

scribe
Scribe
A text-formatting language by Brian Reid.
(1994-12-01)

script
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
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 loose term for any language that is {weakly typed} or {untyped} and has little or no provision for complex {data structures}. A program in a scripting language (a "{script}") is often {interpreted} (but see {Ousterhout's dichotomy}).
Scripts typically interact either with other programs (often as {glue}) or with a set of functions provided by the interpreter, as with the {file system} functions provided in a {UNIX shell} and with {Tcl}'s {GUI} functions. Prototypical scripting languages are {AppleScript}, {C Shell}, MSDOS {batch files}, and {Tcl}.
(2001-03-06)

scrog
/skrog/ [Bell Labs] To damage, trash, or corrupt a data structure. "The list header got scrogged." Also reported as "skrog", and ascribed to the comic strip "The Wizard of Id". Compare {scag}; possibly the two are related. Equivalent to {scribble} or {mangle}.
[{Jargon File}]

scroll
[interface] (From a scroll of paper) To change the portion of a document displayed in a window or on a {VDU} screen. In a {graphical user interface}, scrolling is usually controlled by the user via {scroll bars}, whereas on a VDU the text scrolls up automatically as lines of data are output at the bottom of the screen.
(2001-04-27)

scroll
SCROLL
String and Character Recording Oriented Logogrammatic Language.
["SCROLL - A Pattern Recording Language", M. Sargent, Proc SJCC 36 (1970)].
(1994-12-01)

scroll bar
[graphics] A {widget} found in {graphical user interfaces} and used to show and control ("scroll") which portion of a document is currently visible in a window. A window may have a horizontal or, most often, vertical scroll bar or both.
A vertical scroll bar is a narrow strip drawn up the side of the window containing a "bubble" whose position in the scroll bar represents the position of the visible part within the whole document. By dragging the bubble with the mouse the user can scroll the view over the entire document. Arrow buttons are usually provided at the end(s) of the scroll bar to allow the window to be scrolled by a small amount, e.g. one line of text, in either direction by clicking them with the mouse. Some programs provide a second pair of buttons for scrolling a page at a time or some other unit. Clicking on the scroll bar outside the bubble will either, depending on the particular {WIMP}, move the bubble to that point or move it some amount (typically a screenful) in that direction.
Different {WIMP} systems define different standards for whether scroll bars appear on the left or right, top or bottom of the window, and for their behaviour.
To reduce mouse movement, the up and down scroll buttons should either be next to each other at one end of the scroll bar (as in {NEXTSTEP}) or should reverse their effect when clicked with the right-hand mouse button (as in the {X Window System} and {RISC OS}). The fraction of the scroll bar filled by the bubble should indicate the fraction of the document visible in the window.
(1998-06-26)

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)

scrolling
[chat, games] To flood a {chat room} or {Internet game} with text or {macros} in an attempt to annoy the occupants. This can often cause the chat room to be "uninhabitable" due to the "noise" created by the scroller. Compare {spam}.
(2001-03-27)

scrool
/skrool/ [The pioneering Roundtable chat system in Houston ca. 1984; probably originated as a typo for "scroll"] The log of old messages, available for later perusal or to help one get back in synch with the conversation. It was originally called the "scrool monster", because an early version of the roundtable software had a bug where it would dump all 8K of scrool on a user's terminal.
[{Jargon File}]

scrozzle
/skroz'l/ Used when a {self-modifying code} segment runs incorrectly and corrupts the running program or vital data.
(1994-11-24)

scruffies
{neats vs. scruffies}

scsi
SCSI
{Small Computer System Interface}

scsi adaptor
SCSI adaptor
[hardware] (Or "host adaptor") A device that communicates between a computer and its {SCSI} {peripherals}. The SCSI adaptor is usually assigned {SCSI ID} 7. It is often a separate card that is connected to the computer's {bus} (e.g. {PCI}, {ISA}, {PCMCIA}) though increasinly, SCSI adaptors are built in to the {motherboard}. Apart from being cheaper, busses like PCI are too slow to keep up with the newer SCSI standards like {Ultra SCSI} and {Ultra-Wide SCSI}.
There are several varieties of SCSI (and their connectors) and an adaptor will not support them all.
The performance of SCSI devices is limited by the speed of the SCSI adaptor and its connection to the computer. An adaptor that plugs into a parallel port is unlikely to be as fast as one incorporated into a motherboard. Fast adaptors use {DMA} or {bus mastering}.
Some SCSI adaptors include a {BIOS} to allow PCs to {boot} from a SCSI hard disk, if their own BIOS supports it.
{Adaptec} make the majority of SCSI {chipsets} and many of the best-selling adaptors.
Note that it is not a "SCSI controller" - it does not control the devices, and "SCSI interface" is redundant - the "I" of "SCSI" stands for "interface".
(1999-11-24)

scsi controller
SCSI controller
{SCSI adaptor}

scsi id
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
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 interface
{SCSI adaptor}

scsi reconnect
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
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)

scsi1
SCSI-1
[hardware] The original {SCSI}, as opposed to {SCSI-2} or {SCSI-3}.
(1995-04-20)

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

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

scumos
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}.
[{Jargon File}]
(1995-04-19)

scuzzy
The usual pronunciation of {SCSI}.

sd
SD
{Structured Design}

sd
[networking] The {country code} for the Sudan.
(1999-01-27)

sddi
SDDI
{Sony Digital Data Interface}

sde
SDE
Software Development Environment: equivalent to SEE.

sdf
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
SDH
{Synchronous Digital Hierarchy}

sdi
SDI
1. [library] {Selective Dissemination of Information}.
2. [programming] {Single Document Interface}.
(1999-03-30)

sdk
SDK
{Software Developers Kit} (or "Software Development Kit").

sdl
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 92
SDL[2] with object-orientation.

sdlc
SDLC
1. [communications] {Synchronous Data Link Control}.
2. [programming] {Systems Development Life Cycle}.
(2000-12-24)

sdm
SDM
{Schematic Data Model}

sdms
SDMS
A {query language}.

sdp
SDP
{Service Discovery Protocol}

sdram
SDRAM
{Synchronous Dynamic Random Access Memory}

sdrc
SDRC
[company] The company behind {VGX}.
{Home (http://www.sdrc.com/)}.
[More details?]
(1998-02-06)

sdrram
SDR-RAM
{Single Data Rate Random Access Memory}

sdrsdram
SDR-SDRAM
{Single Data Rate Random Access Memory}

sds
SDS
1. [company] {Scientific Data Systems}.
2. [tool] {Schema Definition Set}.
(2001-03-03)

sds 92
SDS 92
[computer] A 12-bit computer from {Scientific Data Systems} which preceded the {Xerox Data Systems Model 940}.
(2001-03-03)

sds 940
SDS 940
{Xerox Data Systems Model 940}

sdsl
SDSL
{Single-line Digital Subscriber Line}

se
SE
1. [software] {software engineering}.
2. {IBM Systems Engineer}.
(1998-07-08)

se
[networking] The {country code} for Sweden.
(1999-01-27)

sea
SEA
{Self Extracting Archive}

seagate technology
Seagate Technology
[company] A major manufacturer of {hard disk drives}, founded in 1979 as "Shugart Technology" by {Alan F. Shugart} and {Finis Conner}. That name is on the original patents for the 5.25" hard disk drive. They changed the name to Seagate Technology soon after to avoid confusion, and also to avoid friction with {Xerox}, which had since purchased Alan's earlier company, {Shugart Associates}.
{Home (http://www.seagate.com/)}.
{Technical information at Impediment (http://www.impediment.com/seagate/)}.
Address: 920 Disc Drive, Scotts Valley, CA 95066, USA.
Fax: +1 (408) 438 3320.
(2000-02-09)

seal
SEAL
Semantics-directed Environment Adaptation Language.
{(ftp://ftp.cwi.nl/pub/gipe/0092b.ps.Z)}.

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)

search the fucking web
Search The Fucking Web
[World-Wide Web, jargon] (always abbreviated STFW) A response implying that an inquirer could have easily found an answer to his question using a {World-Wide Web} {search engine} such as {Google}. It is now often quicker and more productive to search the {World-Wide Web} than to {RTFM}.
(2003-09-11)

searchanddestroy mode
search-and-destroy mode
Hackerism for a noninteractive search-and-replace facility in an editor, so called because an incautiously chosen match pattern can cause {infinite} damage.
[{Jargon File}]

sec
SEC
{Single Edge Contact Cartridge}

secc
SECC
{Single Edge Contact Cartridge}

secd machine
SECD machine
{Stack Environment Control Dump machine}

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}

secondary cache
[memory management] (Or "second level cache", "level two cache", "L2 cache") A larger, slower {cache} between the {primary cache} and main memory. Whereas the primary cache is often on the same {integrated circuit} as the {central processing unit} (CPU), a secondary cache is usually external.
(1997-06-25)

secondary damage
When a fatal error occurs (especially a {segfault}) the immediate cause may be that a pointer has been trashed due to a previous {fandango on core}. However, this fandango may have been due to an *earlier* fandango, so no amount of analysis will reveal (directly) how the damage occurred. "The data structure was clobbered, but it was secondary damage."
By extension, the corruption resulting from N cascaded fandangoes on core is "Nth-level damage". There is at least one case on record in which 17 hours of {grovel}ling with "adb" actually dug up the underlying bug behind an instance of seventh-level damage! The hacker who accomplished this near-superhuman feat was presented with an award by his fellows.
[{Jargon File}]

secondary key
[database] A {candidate key} which is not selected as a {primary key}.
(1997-04-26)

secondary storage
[storage] Any {non-volatile} storage medium that is not directly accessible to the {processor}. Memory directly accessible to the processor includes {main memory}, {cache} and the {CPU} {registers}. Secondary storage includes {hard drives}, {magnetic tape}, {CD-ROM}, {DVD drives}, {floppy disks}, {punch cards} and {paper tape}.
Secondary storage devices are usually accessed via some kind of controller. This contains registers that can be directly accessed by the CPU like main memory ("{memory mapped}"). Reading and writing these registers can cause the device to perform actions like reading a block of data off a disk or rewinding a tape. See also {DMA}.
Programs and data stored in secondary storage must first be loaded into main memory before the processor can use them.
(1997-11-05)

secondorder lambdacalculus
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)

secondsystem effect
second-system effect
(Sometimes, more euphoniously, "second-system syndrome") When one is designing the successor to a relatively small, elegant, and successful system, there is a tendency to become grandiose in one's success and design an {elephantine} feature-laden monstrosity. The term was first used by Fred Brooks in his classic "{The Mythical Man-Month}. It described the jump from a set of nice, simple operating systems on the {IBM 70xx} series to {OS/360} on the 360 series. A similar effect can also happen in an evolving system; see {Brooks's Law}, {creeping elegance}, {creeping featurism}. See also {Multics}, {OS/2}, {X}, {software bloat}.
[{Jargon File}]

sector interleave
(Or sector map) The mapping from logical to physical sector numbers on a {magnetic disk} designed to optimise sequential reads and writes. Data is usually transferred to and from the disk in {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 hash algorithm
Secure Hash Algorithm
[algorithm, cryptography} (SHA) A {one-way hash function} developped by {NIST} and defined in standard {FIPS} 180. SHA-1 is a revision published in 1994; it is also described in {ANSI} standard X9.30 (part 2).
(2003-04-12)

secure multipurpose internet mail extensions
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
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
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 administrators integrated network tool
Security Administrator's Integrated Network Tool
[networking, security, tool] (SAINT, originally "Security Administrator Tool for Analyzing Networks", SATAN) A tool written by Dan Farmer and Wietse Venema which remotely probes systems via the {network} and stores its findings in a {database}. The results can be viewed with an {web browser}. SAINT requires {Perl} 5.000 or better.
In its simplest mode, SAINT gathers as much information about remote hosts and networks as possible by examining such network services as {finger}, {NFS}, {NIS}, {FTP}, {TFTP}, {rexd}, and other services. The information gathered includes the presence of various network information services as well as potential security flaws - usually in the form of incorrectly setup or configured network services, well-known {bugs} in system or network utilities, or poor or ignorant policy decisions. It can then either report on this data or use a simple rule-based system to investigate any potential security problems. Users can then examine, query, and analyze the output with a {web browser}. While the program is primarily geared toward analysing the security implications of the results, a great deal of general network information can be gained when using the tool - network topology, network services running, and types of hardware and software being used on the network.
SAINT can also be used in exploratory mode. Based on the initial data collection and a user configurable ruleset, it will examine the avenues of trust and dependency and iterate further data collection runs over secondary hosts. This not only allows the user to analyse his own network, but also to examine the real implications inherent in network trust and services and help them make reasonably educated decisions about the security level of the systems involved.
{Home (http://www.wwdsi.com/saint/)}.
{Old SATAN page (http://www.fish.com/satan/)}.
{Mailing list (http://www.wwdsi.com/saint/list_server.html)}.
(2000-08-12)

security association
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
Security Association ID
[networking] (SAID) A 32-bit field added to {packet} headers for {encryption} and {authentication} in the proposed {Internet Protocol Version 6}.
(1997-07-09)

security through obscurity
[security] Or "security by obscurity". A term applied by hackers to most {operating system} vendors' favourite way of coping with security holes - namely, ignoring them, documenting neither any known holes nor the underlying security {algorithms}, trusting that nobody will find out about them and that people who do find out about them won't exploit them. This never works for long and occasionally sets the world up for debacles like the {RTM} worm of 1988 (see {Great Worm}), but once the brief moments of panic created by such events subside most vendors are all too willing to turn over and go back to sleep. After all, actually fixing the bugs would siphon off the resources needed to implement the next user-interface frill on marketing's wish list - and besides, if they started fixing security bugs customers might begin to *expect* it and imagine that their warranties of merchantability gave them some sort of rights.
Historical note: There are conflicting stories about the origin of this term. It has been claimed that it was first used in the {Usenet} newsgroup in {news:comp.sys.apollo} during a campaign to get {HP}/{Apollo} to fix security problems in its {Unix}-{clone} {Aegis}/{DomainOS} (they didn't change a thing). {ITS} fans, on the other hand, say it was coined years earlier in opposition to the incredibly paranoid {Multics} people down the hall, for whom security was everything. In the ITS culture it referred to (1) the fact that by the time a {tourist} figured out how to make trouble he'd generally got over the urge to make it, because he felt part of the community; and (2) (self-mockingly) the poor coverage of the documentation and obscurity of many commands. One instance of *deliberate* security through obscurity is recorded; the command to allow patching the running ITS system ({altmode} altmode control-R) echoed as $$^D. If you actually typed alt alt ^D, that set a flag that would prevent patching the system even if you later got it right.
[{Jargon File}]
(1994-12-15)

sed
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}.
[{Jargon File}]
(1994-11-03)

sed
SED
{smoke-emitting diode}

see
SEE
1. {Simultaneous Engineering Environment}.
2. {Software Engineering Environment}.
(1999-04-26)

see u see me
{CU-SeeMe}

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)

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)

seeking
{seek}

seesaw
SEESAW
[language] An early system on the {IBM 701}.
[Listed in CACM 2(5):16 (May 1959)].
(1994-12-15)

sega
SEGA
[company, games] manufacturer of video game hardware and software.
{Usenet} newsgroup: {news:rec.games.video.sega}.
(1995-03-01)

sega genesismegadrive
Sega Genesis/MegaDrive
[games] A {games console} made by {SEGA}.
The Genesis used a {Z80} [or a clone?] for its sound generator. This made the Genesis compatible with {Sega Master System} games through a device called a "Power Base Converter" which basically shut down the Genesis/MegaDrive's {68000} {CPU} and made the Z80 the CPU.
(2003-07-29)

segfault
{segmentation fault}

seggie
/seg'ee/ British shorthand for a {Unix} {segmentation fault}.
[{Jargon File}]
(1994-12-15)

segment
/seg'ment/ 1. [architecture] A collection of {pages} in a {memory management} system.
2. [programming] A separately relocatable section of an executable program. {Unix} executables have a {text segment} (executable machine instructions), a {data segment} (initialised data) and a {bss segment} (uninitialised data).
3. [networking] {network segment}.
4. To experience a {segmentation fault}. Confusingly, the stress is often put on the first syllable, like the noun "segment", rather than the second like mainstream verb "segment". This is because it is actually a noun shorthand that has been verbed.
[{Jargon File}]
(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 receiver ("reassembly"). Segmentation may be performed by a {router} when routing a packet to a network with a smaller maximum packet size.
The term "segmentation" is used in {ATM}, in {TCP/IP}, it is called "fragmentation" an is performed at the {IP} layer before the "fragments" are passed to the {transport layer}.
See for example {ATM forum} {UNI} 4.0 specification.
[Better reasons?]
(1999-06-14)

segmentation and reassembly
{segmentation}

segmentation fault
An error in which a running {Unix} program attempts to access memory not allocated to it and terminates with a segmentation violation error and usually a {core dump}.
[{Jargon File}]
(1994-12-15)

segmented address space
[architecture] 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
SEI
Software Engineering Institute.
(Carnegie Mellon University).

seiko rc4000
Seiko RC-4000
A wristwatch with an {EIA-232} interface. A clip fitted round the watch and made electrical contact. This clip had a socket for a stereo style jack lead the other end of which was a 25-way {D-type} connector. The lead allowed you to enter phone numbers etc. into the watch without having to play with tiny buttons. It also meant if the battery on your watch ran out you could restore the data without having to type it all in again.
It was around the era of the 8-bit home computers like the {Spectrum}, {BBC Microcomputer}, {Apple II}, {C64} - the 1980s.
(1995-01-30)

sel
SEL
1. {Self-Extensible Language}.
2. {Subset-Equational Language}.

selective dissemination of information
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
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 extracting archive
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)

selfextensible language
Self-Extensible Language
["SEL - A Self-Extensible Programming Language", G. Molnar, Computer J 14(3):238-242 (Aug 1971)].
(1994-12-15)

selfreference
self-reference
See {self-reference}.
[{Jargon File}]

selvage
{chad}

sem
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.
[{Jargon File}]
(1995-01-31)

semiautomatic ground environment
Semi-Automatic Ground Environment
[project] (SAGE) The computer system of the old US Norad air defence system. SAGE was ground-breaking in many ways, such as being one of the first very large software projects and the first {real-time} system.
{MIT Lincoln Laboratory} developed SAGE and {MITRE Corporation} was responsible for system engineering and implementation oversight.
{(http://www.togger.com/)}, {(http://www.jps.net/ethelen/sage.html)}, {(http://www.eskimo.com/%7Ewow-ray/sage28.html)}.
[Confirm? Dates? Connection with MIT Research Laboratory for Electronics?]
(1999-12-16)

semicolon
;
Common: {ITU-T}: semicolon; {semi}. Rare: weenie; {INTERCAL}: hybrid, pit-thwong.

semiconductor
[electronics] A material, typically crystaline, which allows {current} to flow under certain circumstances. Common semiconductors are silicon, germanium, gallium arsenide. Semiconductors are used to make {diodes}, {transistors} and other basic "solid state" electronic components.
As crystals of these materials are grown, they are "doped" with traces of other elements called {donors} or {acceptors} to make regions which are n- or p-type respectively for the {electron model} or p- or n-type under the {hole model}. Where n and p type regions adjoin, a junction is formed which will pass {current} in one direction (from p to n) but not the other, giving a {diode}.
One {model} of semiconductor behaviour describes the doping elements as having either {free electrons} or {holes} dangling at the points in the crystal lattice where the doping elements replace one of the atoms of the foundation material. When external electrons are applied to n-type material (which already has free electrons present) the repulsive force of like charges causes the free electrons to migrate toward the junction, where they are attracted to the holes in the p-type material. Thus the junction conducts current.
In contrast, when external electrons are applied to p-type material, the attraction of unlike charges causes the holes to migrate away from the junction and toward the source of external electrons. The junction thus becomes "depleted" of its charge carriers and is non-conducting.
(1995-10-04)

semidetached mode
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
SENDIT
Systems Engineering for Network Debugging, Integration and Test. A two-year European Commission funded project to produce software tools for distributed applications running on networks of microcontrollers.
(1994-07-21)

sendmail
[messaging] The {BSD} Unix {Message Transfer Agent} supporting mail transport via {TCP/IP} using {SMTP}. Sendmail is normally invoked in the {background} via a {Mail User Agent} such as the {mail} command.
Sendmail was written by {Eric Allman} at the {University of California at Berkeley} during the late 1970s. He now has his own company, {Sendmail Inc.}
Sendmail was one of the first programs to route messages between {networks} and today is still the dominant e-mail transfer software. It thrived despite the awkward {ARPAnet} transition between {NCP} to TCP protocols in the early 1980s and the adoption of the new SMTP Simple Mail Transport Protocol, all of which made the business of mail routing a complex challenge of backward and forward compatibility for several years. There are now over one million copies of Sendmail installed, representing over 75% of all Internet mail servers.
Simultaneously with the announcement of the company in November 1997, Sendmail 8.9 was launched, featuring new tools designed to limit {junk e-mail}. SendMail 8.9 is still distributed as {source code} with the rights to modify and distribute.
Latest version: 8.9.1, as of 1998-08-25.
The command
sendmail -bv ADDRESS
can be used to learn what the local mail system thinks of ADDRESS. You can also talk to the Sendmail {daemon} on a remote host FOO with the command
telnet FOO 25
(1998-08-25)

sendmail inc
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)

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

seneca
Seneca
{Oberon-V}

senior bit
[IBM] Synonym {meta bit}.
[{Jargon File}]

sensor
[hardware] An electronic device used to measure a physical quantity such as temperature, pressure or loudness and convert it into an electronic signal of some kind (e.g a voltage). Sensors are normally components of some larger electronic system such as a computer control and/or measurement system.
Analog sensors most often produce a voltage proportional to the measured quantity. The signal must be converted to digital form with a {ADC} before the CPU can process it.
Digital sensors most often use serial communication such as {EIA-232} to return information directly to the controller or computer through a {serial port}.
(1997-04-15)

sentence
[logic] A collection of {clauses}.
(1996-12-08)

seodp
SE-ODP
Support Environment for Open Distributed Processing. An {ECMA} {standard}.

sep
SEP
1. Someone Else's Problem.
2. [tool] A {SASD} tool from {IDE}.
(1995-10-12)

sepia
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
SEPP
{Single Edge Processor Package}

seque
Seque
"Seque: A Programming Language for Manipulating Sequences", R.E. Griswold et al, Comp Langs 13(1):13-22 (1988).

sequel
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
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
Sequent
[company] A computer manufacturer.
Quarterly sales $109M, profits $7M (Aug 1994).
[Details? Address?]
(1994-09-26)

sequential coding
[graphics, file format, algorithm] The usual {bitmap} {image} data storage format or transmission {algorithm} where the resoluton is constant and later data adds only more area. This contrasts with {progressive coding}.
(2000-09-12)

sequential file matching
A programming technique that matches records in one sequential file with records in another sequential file. The records are accessed in the physical order in which they are stored.
(1994-11-02)

sequential parlog machine
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
SERC
{Science and Engineering Research Council}

sercos
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
Serial Communications Interface
{UART}

serial interface adaptor
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
Serial Line Internet Protocol
[communications, protocol] (SLIP) Software allowing the {Internet Protocol} (IP), normally used on {Ethernet}, to be used over a {serial line}, e.g. an {EIA-232} {serial port} connected to a {modem}. It is defined in {RFC} 1055.
SLIP modifies a standard {Internet} {datagram} by appending a special SLIP END character to it, which allows datagrams to be distinguished as separate. SLIP requires a port configuration of 8 data bits, no {parity}, and {EIA} or {hardware flow control}. SLIP does not provide {error detection}, being reliant on other high-layer protocols for this. Over a particularly error-prone {dial-up} link therefore, SLIP on its own would not be satisfactory.
A SLIP connection needs to have its {IP address} configuration set each time before it is established whereas {Point-to-Point Protocol} (PPP) can determine it automatically once it has started.
See also {SLiRP}.
(1995-04-30)

serial line ip
Serial Line IP
(SLIP) {Serial Line Internet Protocol}.

serial peripheral interface
Serial Peripheral Interface
[communications, hardware] (SPI) A {serial interface} in which a master device supplies {clock} pulses to exchanges data serially with a slave over two data wires (Master-Slave and Slave-Master). This term probably originated with Motorola in about 1979 with their first all-in-one {microcontroller}.
(2003-07-13)

serial port
[hardware, communications] (Or "com port") A connector on a computer to which you can attach a {serial line} connected to peripherals which communicate using a serial (bit-stream) {protocol}. The most common type of serial port is a 25-pin D-type connector carrying {EIA-232} signals. Smaller connectors (e.g. 9-pin {D-type}) carrying a subset of EIA-232 are often used on {personal 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 ({teletypewriters} or {VDU}s), printers, {modems} and other serial peripherals. Two computers connected together via their serial ports, possibly via {modems}, can communicate using a {protocol} such as {UUCP} or {CU} or {SLIP}.
(1995-01-12)

serial presence detect
Serial Presence Detect
{presence detect}

serial processing
{sequential processing}

serial storage architecture
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.

serialise
[programming] To represent an arbitrarily complex {data structure} in a location-independent way so that it can be communicated or stored elsewhere.
For example, an {object} representing a time, with {attributes} for year, month, timezone, etc., could be serialised as the {string} "2002-02-24T14:33:52-0800", or an {XML} element "[dateobj year='2002' month='02' day='24' hour='14' minute='33' second='52' timezone='-0800' /]", or as a {binary} string.
As well as providing an external data representation (e.g. representing an {integer} as a string of {ASCII} digits) and {marshalling} components into a single block of data, a serialisation {algorithm} needs to follow {pointers} to include objects referred to by the initial object. This is further complicated by the possible presence of cycles in the {object graph}.
It should be possible to store the serialised representation on disk, or transmit it across a network, and then restore it as an object (graph) that is the same as the original.
(2001-09-28)

serialize
{serialise}

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.
[{Jargon File}]
(1996-09-08)

server message block
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 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)

serverlet
{Java Servlet}

serverparsed html
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)

servers
{server}

serverside include
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
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
Service Advertising Protocol
[networking] (SAP) A {Novell NetWare} {protocol}. SAP follows the spirit of the {Xerox} {Clearinghouse} protocol, it permits file, print, and gateway servers to advertise their services and addresses.
(1996-01-13)

service discovery protocol
Service Discovery Protocol
[protocol] (SDP) A {Bluetooth} {protocol} in the {Core Protocol Stack} that allows {devices} to connect to other {services}.
{Bluetooth SDP (http://www.bluetooth.org/assigned-numbers/sdp.htm)}.
(2002-06-28)

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)

serviceability
[system] The ease with which {corrective maintenance} or {preventative maintenance} can be performed on a system (e.g. by a {hardware} service technician). Higher serviceability improves availability and reduces service cost.
Serviceability is one component of {RAS}.
(2000-08-13)

servlet
{Java servlet}

session
[networking] 1. A lasting connection between a user (or user agent) and a {peer}, typically a {server}, usually involving the exchange of many packets between the user's computer and the server. A session is typically implemented as a layer in a network {protocol} (e.g. {telnet}, {FTP}).
In the case of protocols where there is no concept of a session layer (e.g. {UDP}) or where sessions at the {session layer} are generally very short-lived (e.g. {HTTP}), {virtual} sessions are implemented by having each exchange between the user and the remote host include some form of {cookie} which stores state (e.g. a unique session ID, information about the user's preferences or authorisation level, etc.).
See also {login}.
2. A lasting connection using the {session layer} of a networking protocol.
(1997-08-03)

session initiation protocol
Session Initiation Protocol
[protocol] (SIP) A very simple text-based application-layer control {protocol}. It creates, modifies, and terminates {sessions} with one or more participants. Such sessions include {Internet telephony} and {multimedia} conferences.
It is described in {RFC 2543}.
(2000-05-31)

session layer
[networking] The third highest {protocol layer} (layer 5) in the {OSI} seven layer model. The session layer uses the {transport layer} to establish a {connection} between processes on different {hosts}. It handles {security} and creation of the session. It is used by the {presentation layer}.
Documents: {ITU} Rec. X.225 ({ISO} 8327), ITU Rec. X.215 (ISO 8326).
[Examples?]
(1997-12-07)

sesworkbench
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
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
{list comprehension}

set associative cache
[architecture] A compromise between a {direct mapped cache} and a {fully associative cache} where each address is mapped to a certain set of cache locations. The address space is divided into blocks of 2^m bytes (the {cache line} size), discarding the bottom m address bits. An "n-way set associative" cache with S sets has n cache locations in each set. Block b is mapped to set "b mod S" and may be stored in any of the n locations in that set with its upper address bits as a tag. To determine whether block b is in the cache, set "b mod S" is searched associatively for the tag.
A direct mapped cache could be described as "one-way set associative", i.e. one location in each set whereas a fully associative cache is N-way associative (where N is the total number of blocks in the cache). Performance studies have shown that it is generally more effective to increase the number of entries rathethe r 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.
(2002-02-09)

set complement
[theory] The complement of set A in set U is all elements of U which are not elements of A.
(1995-01-24)

set comprehension
{list comprehension}

set priority level
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)

set theory
[mathematics] A mathematical formalisation of the theory of "sets" (aggregates or collections) of objects ("elements" or "members"). Many mathematicians use set theory as the basis for all other mathematics.
Mathematicians began to realise toward the end of the 19th century that just doing "the obvious thing" with sets led to embarrassing {paradox}es, the most famous being {Russell's Paradox}. As a result, they acknowledged the need for a suitable {axiomatisation} for talking about sets. Numerous such axiomatisations exist; the most popular among ordinary mathematicians is {Zermelo Frankel set theory}.
{The beginnings of set theory (http://www-groups.dcs.st-and.ac.uk/~history/HistoryTopics.html)}.
(1995-05-10)

setext
Setext
A markup scheme intended for documents that are both human- and computer-readable.

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

setle
SETL/E
See {ProSet}.

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

settop box
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
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
SEX
/seks/ [Sun Users' Group & elsewhere] 1. Software EXchange. A technique invented by the blue-green algae hundreds of millions of years ago to speed up their evolution, which had been terribly slow up until then. Today, SEX parties are popular among hackers and others (of course, these are no longer limited to exchanges of genetic software). In general, SEX parties are a {Good Thing}, but unprotected SEX can propagate a {virus}. See also {pubic directory}.
2. The {mnemonic} often used for Sign EXtend, a machine instruction found in the {PDP-11} and many other architectures. The {RCA 1802} chip used in the early {Elf} and SuperElf {personal computers} had a "SEt X register" SEX instruction, but this seems to have had little folkloric impact.
DEC's engineers nearly got a {PDP-11} {assembler} that used the "SEX" mnemonic out the door at one time, but (for once) marketing wasn't asleep and forced a change. That wasn't the last time this happened, either. The author of "The Intel 8086 Primer", who was one of the original designers of the {Intel 8086}, noted that there was originally a "SEX" instruction on that processor, too. He says that Intel management got cold feet and decreed that it be changed, and thus the instruction was renamed "CBW" and "CWD" (depending on what was being extended). The {Intel 8048} (the {microcontroller} used in {IBM PC} keyboards) is also missing straight "SEX" but has logical-or and logical-and instructions "ORL" and "ANL".
The {Motorola 6809}, used in the UK's "{Dragon 32}" {personal computer}, actually had an official "SEX" instruction; the {6502} in the {Apple II} with which it competed did not. British hackers thought this made perfect mythic sense; after all, it was commonly observed, you could (on some theoretical level) have sex with a dragon, but you can't have sex with an apple.
[{Jargon File}]
(1998-03-03)

sex changer
{gender mender}

sexadecimal
{hexadecimal}

sexi
SEXI
{SNOBOL}

seymour cray
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
SFA
{Sales Force Automation}

sfbi
SFBI
Shared Frame Buffer Interconnect (Intel)

sfdalgol
SFD-ALGOL
System Function Description-ALGOL. Extension of ALGOL for synchronous systems. Sammet 1969, p.625.

sffa
SFFA
{Sales Force Automation}

sfl
SFL
System Function Language. Assembly language for the ICL2900. "SFL Language Definition Manual", TR 6413, Intl Computers Ltd.

sflv
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
SGCP
{Simple Gateway Control Protocol}

sgi
SGI
{Silicon Graphics, Inc.}

sgml
SGML
{Standard Generalized Markup Language}

sgml tagger
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)

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)

sgram
SGRAM
{Synchronous Graphics Random Access Memory}

sh
1. [operating system] {Bourne shell}.
2. [networking] The {country code} for St. Helena.
(1999-01-27)

sha
SHA
{Secure Hash Algorithm}

shaco
SHACO
An early system on the {IBM 701}.
[Listed in CACM 2(5):1959-05-16].
(1995-10-25)

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

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)

shadowing
{aliasing}

shallow binding
A method of storing variable bindings where the current value of a variable can be found at a known location rather than by searching an environment or association list. When a new binding is made, the old value is copied into the environment.

shambolic link
/sham-bol'ik link/ A Unix symbolic link, particularly when it confuses you, points to nothing at all, or results in your ending up in some completely unexpected part of the file system.
[{Jargon File}]

shapetools
ShapeTools
[tool, programming] A {code management} system for {Unix} from The {Technical University of Berlin}.
(1995-05-11)

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

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)

shar file
{shar}

sharchive
{shar}

share and enjoy
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.
[{Jargon File}]

shared memory
1. Memory in a {parallel computer}, usually {RAM}, which can be accessed by more than one processor, usually via a shared {bus} or network.
It usually takes longer for a processor to access shared memory than to access its own private memory because of contention for the processor-to-memory connections and because of other overheads associated with ensuring synchronised access. Computers using shared memory usually have some kind of local {cache} on each processor to reduce the number of accesses to shared memory. This requires a {cache consistency} {protocol} to ensure that one processor's cached copy of a shared memory location is invalidated when another processor writes to that location.
The alternative to shared memory is {message passing} where all memory is private to some particular processor and processors communicate by sending messages down special links. This is usually slower than shared memory but it avoids the problems of contention for memory and can be implemented more cheaply.
2. Memory which can be access by more than one process in a {multitasking} {operating system} with memory protection. Some {Unix} variants, e.g. {SunOS} provide this kind of shared memory.
{Unix manual pages}: shmop(2), shmctl(2), shmget(2).
(1994-10-20)

shared time repair of big electronic systems
Shared Time Repair of Big Electronic Systems
[language] (STROBES) A language for computer testing.
[Sammet 1969, p. 699].
(1995-02-06)

shareware
[software] /sheir'weir/ {Software} that, like {freeware}, can be usually obtained ({download}ed) and redistributed for free, but most often is under {copyright} and does legally require a payment in the {EULA}, at least beyond the {evaluation} period or for commercial applications. This payment, as well as fulfilling the {user}'s legal obligations, may buy additional support, documentation, or functionality. Generally, {source code} for shareware programs is not available. Shareware is sometimes also {nagware} and/or {crippleware}, which muddles the term and is frowned upon in the community.
See also {careware}, {charityware}, {guiltware}, {postcardware}, and {-ware}; compare {payware}.
{The History of Shareware (http://www.pslweb.com/history.htm)}.
[{Jargon File}]
(2002-01-30)

sharp
[character] {hash}.

sharp apl
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)

shdsl
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
SHEEP
[mathematics, tool] A package for {symbolic mathematics}, especially {tensor analysis} and General Relativity, developed by Inge Frick in Stockholm in the late 1970s to early 1980s. SHEEP was implemented in {DEC-10} {assembly language}, then in several {LISPs}. The current version runs on {Sun}-3 and is based on {Portable Standard LISP}.
["Sheep, a Computer Algebra System for General Relativity", J.E.F. Skea et al in Proc First Brazilian School on Comp Alg, W. Roque et al eds, Oxford U Press 1993, v2].

{(http://www.riaca.win.tue.nl/archive/can/SystemsOverview/Special/Tensoranalysis/SHEEP/index.html)}.
(2002-12-28)

shelf
A public library of {class}es for the {Eiffel} language.

shelfware
[jargon] /shelfweir/ {Software} which is never used and so ends up on the shelf. Shelfware may be purchased on a whim by an individual, or in accordance with corporate policy, but not actually required for any particular use. Alternatively, it may be software that has been developed (unlike {vaporware}), but is never released as a product -- a common occurrence at {DEC}.
[{Jargon File}]
(1997-07-20)

shell
SHELL
[language] An early system on the {Datatron 200} series.
[Listed in CACM 2(5):16 (May 1959)].
[{Jargon File}]
(1995-05-11)

shell
1. [operating system] (Originally from {Multics}, widely propagated via {Unix}) The {command interpreter} used to pass commands to an {operating system}; so called because it is the part of the operating system that interfaces with the outside world.
The commonest Unix shells are the c shell ({csh}) and the Bourne shell ({sh}).
2. (Or "wrapper") Any interface program that mediates access to a special resource or {server} for convenience, efficiency, or security reasons; for this meaning, the usage is usually "a shell around" whatever.
[{Jargon File}]
(1995-05-11)

shell out
[Unix] To spawn an interactive subshell from within a program (e.g. a mailer or editor). "Bang foo runs foo in a subshell, while bang alone shells out."
[{Jargon File}]
(1995-05-11)

shell script
[programming, operating system] A {program} written to be interpreted by the {shell} of an {operating system}, especially {Unix}.
Compare: {script}, {glue language}.
(1999-02-22)

shell variable
[programming, operating system] One of the {variables} accessible to a {Unix} {shell} process, including {environment variables} (e.g. $HOME), {command line arguments} (e.g. $1) and local variables (e.g. $input_file). Other {operating systems} have similar variables.
(1999-01-26)

shielded twisted pair
[hardware] (STP) A kind of cable {used} for most {Ethernet} cabling, especially fast ethernet connections such as 100 {Mbps}.
Compare: {unshielded twisted pair}.
(1999-11-15)

shift
SHIFT
Scalable Heterogeneous Integrated Facility Testbed. A parallel processing project at CERN.

shift in
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
Shift Out
[character] (SO, Control-N, {ASCII} 14) The character which was used to "shift out" of an alternate character set on some ancient {teletypes}, reversing the effect of the {Shift In} (SI, ASCII 15) character.
(1996-06-24)

shift right logical
{logical shift}

shim
[jargon, memory] A small piece of data inserted in order to achieve a desired {memory alignment} or other addressing property. For example, the {PDP-11} {Unix} {linker}, in split I&D (instructions and data) mode, inserts a two-{byte} shim at location 0 in data space so that no data object will have an address of 0 (and be confused with the {C} null pointer).
See also {loose bytes}.
[{Jargon File}]
(1994-12-21)

shit hit the fan
[chat] (SHTF) A slang expression for a chaotic or otherwise unfavourable outcome.
(2000-11-07)

shitogram
/shit'oh-gram/ A *really* nasty piece of e-mail.
Compare {nastygram}, {flame}.
[{Jargon File}]
(1994-12-21)

shockwave
[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
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 flash
Shockwave Flash
{Flash}

shopbot
[World-Wide Web] A kind of {bot} that searches the {World-Wide Web} to find the best price for a product you're looking for.
[Examples?]
(1999-06-19)

short card
[hardware] A half-length {IBM PC expansion card} or adaptor that will fit in one of the two short slots located toward the right rear of a standard chassis (tucked behind the {floppy disk} drives).
See also: {tall card}.
[What bus?]
[{Jargon File}]
(1998-07-08)

short code
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)

short message service
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)

shortcut
[file system] {Microsoft Corporation}'s term for a {symbolic link}, stored as a file with extension ".lnk". Shortcuts first appeared in 1996 in the {Windows 95} {operating system}. Windows shortcuts can link to any file or directory ("folder"), including those on remote computers, using {UNC} paths. Each shortcut can also have its own {icon}. A shortcut that links to an executable file can pass {arguments} and specify the directory in which the command should run. Unlike a {Unix} {symbolic link}, a shortcut does not always behave exactly like the target file or directory.
Compare {pif}.
(2001-12-18)

shorten
Shorten
[audio, compression] A form of {lossless} {audio} {compression}.
[Details?]
(2001-12-17)

shortest job first
[algorithm] A scheduling {algorithm} used in {multitasking} {operating systems} that favours processes with the shortest estimated running time.
(1998-04-25)

shotgun debugging
The software equivalent of {Easter egging}; the making of relatively undirected changes to software in the hope that a bug will be perturbed out of existence. This almost never works, and usually introduces more bugs.
[{Jargon File}]

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.

showandtell
Show-And-Tell
A visual {dataflow} language designed for use by elementary school children.
["A Visual Language for Keyboardless Programming", T. Kimura et al, TR WUCS-86-6, CS Dept Washington U, Mar 1986].
["Show and Tell: A Visual Language", T.D. Kimura et al in Visual Programming Environments: Paradigms and Systems, E.P. Glinert ed, IEEE Comp Sci Press, 1990, pp. 397-404].
(1995-01-31)

showstopper
A hardware or (especially) software {bug} that makes an implementation effectively unusable; one that absolutely has to be fixed before development can go on. Opposite in connotation from its original theatrical use, which refers to something stunningly *good*.
[{Jargon File}]
(1995-01-31)

shriek
{exclamation mark}

sht
{server-parsed HTML}

shtf
SHTF
{shit hit the fan}

shtml
{server-parsed HTML}

shubinternet
Shub-Internet
/shuhb in't*r-net/ (MUD, from H. P. Lovecraft's evil fictional deity "Shub-Niggurath", the Black Goat with a Thousand Young) The harsh personification of the {Internet}, Beast of a Thousand Processes, Eater of Characters, Avatar of Line Noise, and Imp of Call Waiting; the hideous multi-tendriled entity formed of all the manifold connections of the net. A sect of {MUD}ders worships Shub-Internet, sacrificing objects and praying for good connections. To no avail - its purpose is malign and evil, and is the cause of all network slowdown. Often heard as in "Freela casts a tac nuke at Shub-Internet for slowing her down." (A forged response often follows along the lines of: "Shub-Internet gulps down the tac nuke and burps happily.") Also cursed by users of {FTP} and {telnet} when the system slows down. The dread name of Shub-Internet is seldom spoken aloud, as it is said that repeating it three times will cause the being to wake, deep within its lair beneath the Pentagon.
[{Jargon File}]
(1994-11-04)

shug
SHUG
{Scottish Hypermedia Users' Group}

shugart alan f
Shugart, Alan F.
{Alan F. Shugart}

shugart associates
Shugart Associates
[company] The {disk drive} company, founded by Alan F. Shugart, which developed {SCSI}. Alan left Shugart Associates in 1974 [did he quit or was he fired?]. Shugart Associates was bought, and eventually shut down by {Xerox}.
(2000-02-09)

shugart technology
Shugart Technology
{Seagate Technology}

si
SI
1. [unit] {Syst�me International}.
2. [character] {Shift In}.

si
[networking] The {country code} for Slovenia.
(1999-01-27)

sia
SIA
{Serial Interface Adaptor}

sicl
SICL
{Standard Instrument Control Library}

sics
SICS
{Swedish Institute for Computer Science}

sicstus prolog
SICStus Prolog
A {Prolog} from the SICS (Swedish Inst of Comp Sci).
E-mail: [sicstus-request@sics.se]. Mailing list: sicstus-users@sics.se.
(1995-01-05)

sidecar
1. Synonym {slap on the side}. Especially used of add-ons for the late and unlamented {IBM PCjr}.
2. The {IBM PC} compatibility box that could be bolted onto the side of an {Amiga}. Designed and produced by {Commodore}, it broke all of the company's own design rules. If it worked with any other peripherals, it was by {magic}.
[{Jargon File}]

sideeffect
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
Siemens
A German semiconductor and electronics manufacturer.
{Home (http://www.siemens.de/)}.
[Summary?]
(1995-07-26)

siemens nixdorf informationssteme ag
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
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
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
SIG
{Special Interest Group}

sig
Sig
Signal Processing, Analysis, and Display program. An environment with an associated programming language by Jan Carter of {Argonne National Lab}. Telephone +1 (312) 972 7250.
[{Jargon File}]

sig
{signature}

sig block
/sig blok/ [Unix; often written ".sig" there]. See {signature}.
[{Jargon File}]

sig quote
[messaging] /sig kwoht/ A maxim, quote, proverb, joke, or slogan embedded in one's {sig block} (as used in {Usenet} news) and intended to convey something of one's philosophical stance, pet peeves, or sense of humour. "Calm down, it's only ones and zeroes."
[{Jargon File}]
(1994-11-04)

sig virus
A parasitic {meme} embedded in a {sig block}. There was a {meme plague} or fad for these on {Usenet} in late 1991. Most were equivalents of "I am a .sig virus. Please reproduce me in your .sig block.". Of course, the .sig virus's memetic hook is the giggle value of going along with the gag; this, however, was a self-limiting phenomenon as more and more people picked up on the idea. There were creative variants on it; some people stuck "sig virus antibody" texts in their sigs, and there was at least one instance of a sig virus eater.
[{Jargon File}]

sigbus
SIGBUS
{bus error}

sighyper
SIGhyper
Special Interest Group on Hypertext and Multimedia of the {SGML} Users' Group.

sigla
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
SIGMA
A scientific {visual programming} environment from NASA.
{(http://fi-www.arc.nasa.gov/fia/projects/sigma/)}.

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

signaltonoise ratio
signal-to-noise ratio
1. [communications] (SNR, "s/n ratio", "s:n ratio") "Signal" refers to useful information conveyed by some communications medium, and "noise" to anything else on that medium. The ratio of these is usually expressed logarithmically, in {decibels}.
2. [networking] The term is often applied to {Usenet} newsgroups though figures are never given. Here it is quite common to have more noise (inappropriate postings which contribute nothing) than signal (relevant, useful or interesting postings). The signal gets {lost in the noise} when it becomes too much effort to try to find interesting articles among all the crud. Posting "noise" is probably the worst breach of {netiquette} and is a waste of {bandwidth}.
[{Jargon File}]
(1996-01-29)

signature
1. A set of function symbols with {arities}.
2. [messaging] (Or sig) A few lines of information about the sender of an {electronic mail} message or {news} {posting}. Most {Unix} mail and news software will {automagically} append a signature from a file called .signature in the user's {home directory} to outgoing mail and news.
A signature should give your real name and your {e-mail address} since, though these appear in the {headers} of your messages, they may be {munged} by intervening software. It is currently (1994) hip to include the {URL} of your {home page} on the {World-Wide Web} in your sig.
The composition of one's sig can be quite an art form, including an {ASCII} logo or one's choice of witty sayings (see {sig quote}, {fool file}). However, large sigs are a waste of {bandwidth}, and it has been observed that the size of one's sig block is usually inversely proportional to one's prestige on the net.
See also {doubled sig}, {sig virus}.
2. [programming] A concept very similar to {abstract base classes} except that they have their own {hierarchy} and can be applied to compiled {classes}. Signatures provide a means of separating {subtyping} and {inheritance}. They are implemented in {C++} as patches to {GCC} 2.5.2 by Gerald Baumgartner [gb@cs.purdue.edu].
{(ftp://ftp.cs.purdue.edu/pub/gb/)}.
(2001-01-05)

sil
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
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}.
[{Jargon File}]
(1996-05-28)

silicon chip
{integrated circuit}

silicon graphics inc
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
Siliwood
[jargon] (Or "Hollywired") The coming convergence of film, {interactive TV} and computers.
(1999-01-15)

silly walk
[Monty Python's Flying Circus] 1. A ridiculous procedure required to accomplish a task. Like {grovel}, but more {random} and humorous. "I had to silly-walk through half the /usr directories to find the maps file."
2. Synonym {fandango on core}.
[{Jargon File}]

silo
The {FIFO} input-character buffer in an {EIA-232} serial line card. So called from {DEC} terminology used on DH and DZ line cards for the {VAX} and {PDP-11}, presumably because it was a storage space for fungible stuff that went in at the top and came out at the bottom.

silver book
Silver Book
[publication] Jensen and Wirth's infamous "Pascal User Manual and Report", so called because of the silver cover of the widely distributed Springer-Verlag second edition of 1978 (ISBN 0-387-90144-2).
See also {book titles}, {Pascal}.
[{Jargon File}]
(1996-12-03)

silver bullet
{magic bullet}

siman
SIMAN
{SIMulation ANalysis}

simcity
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
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
SIMD
{Single Instruction/Multiple Data}

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

simli
SIML/I
Simulation language, descendant of ASPOL.
["The Simulation Language SIML/I", M.H. MacDougall, Proc NCC 1979, pp. 39-44].

simm
SIMM
{Single in-line memory module}

simone
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
Simonyi, Charles
{Charles Simonyi}

simpac
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
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
SIMPL
Simulation language, descendant of OPS-4, compiled into PL/I on Multics.
"The SIMPL Primer", M.W. Jones et al, Oct 1971.

simple
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 authentication and security layer
Simple Authentication and Security Layer
(SASL)
{(http://asg2.web.cmu.edu/sasl/)}.
[Summary?]
(2001-08-24)

simple gateway control protocol
Simple Gateway Control Protocol
[communications, protocol] (SGCP) An {IETF} work in progress, superseded by {MGCP}.
(1999-04-26)

simple mail transfer protocol
Simple Mail Transfer Protocol
[messaging] (SMTP) A {protocol} defined in {STD} 10, {RFC} 821, used to transfer {electronic mail} between computers, usually over {Ethernet}. It is a server to server protocol, so other protocols are used to access the messages. The SMTP dialog usually happens in the background under the control of the {message transfer agent}, e.g. {sendmail} but it is possible to interact with an SMTP server using {telnet} to connect to the normal SMTP {port}, 25. E.g.
telnet mhs-relay.ac.uk 25
You should normally start by identifying the local {host}:
HELO wombat.doc.ic.ac.uk
You can then issue commands to verify an address or expand an alias:
VRFY fred@doc.ic.ac.uk VRFY postmaster
or expand a {mailing list}:
EXPN c-help
You can even send a message:
MAIL From:[fred@doc.ic.ac.uk] RCPT To:[fred@mailway.doc.ic.ac.uk] DATA What is the point? . QUIT
This is useful if you want to find out exactly what is happening to your message at a certain point.
See also {Post Office Protocol}, {RFC 822}, {sendmail}.
(1995-10-17)

simple multicast protocol
[communications, protocol] A proposed {mulitcast} {protocol} that would ease the requirements for {IP} Multicast, such as no longer mandating that routers be able to calculate the source of a multicast stream. This has not been adopted by the {IETF}.
{(http://www.infoworld.com/cgi-bin/displayStory.pl?981125.whmulti.htm)}.
[Reference?]
(2001-07-02)

simple network management protocol
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
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
Simple Network Paging Protocol
[protocol] (SNPP) A standard for sending one- and two-way wireless messages to {pagers}. In its simplest form, SNPP provides a simple way to make a link between the {Internet} and a {Telocator Alphanumeric input Protocol} (TAP) paging terminal. SNPP is defined in {RFC 1861}.
(1997-04-25)

simple object access protocol
Simple Object Access Protocol
[protocol] (SOAP) A minimal set of conventions for invoking {code} using {XML} over {HTTP}.
{DevelopMentor}, {Microsoft Corporation}, and {UserLand Software} submitted SOAP to the {IETF} as an internal draft in December 1999.
Current version: SOAP 1.1 defined by {World Wide Web Consortium}.
{(http://www.w3.org/TR/SOAP/)}.
(2000-01-08)

simplex
1. [communications] Used to describe a communications channel that can only ever carry a signal in one direction, like a one-way street. Television is an example of ({broadcast}) simplex communication.
Opposite: {duplex}.
2. [algorithm] The {simplex method}.
(2001-07-21)

simplex method
[algorithm] An {algorithm} for solving the classical {linear programming} problem; developed by George B. Dantzig in 1947.
The simplex method is an {iterative} procedure, solving a system of {linear equations} in each of its steps, and stopping when either the optimum is reached, or the solution proves infeasible. The basic method remained pretty much the same over the years, though there were many refinements targeted at improving performance (eg. using {sparse matrix} techniques), numerical {accuracy} and stability, as well as solving special classes of problems, such as {mixed-integer} programming.
(2003-07-09)

simplex printer
[communications] A term applied by Western Union Telegraph Company to {teletypewriters} that are not part of a {multiplex} system. They usually provided for alternate transmission in both directions. If working {simplex} or {half-duplex}, what was keyed in at the keyboard would be typed out at the printing portion. If working {full-duplex}, sending would be blind as the printing portion was being used only for reception.
(2000-04-02)

simpli
SIMPL/I
A {simulation} language implemented as a {PL/I} {preprocessor}.
["SIMPL/I (Simulation Language Based on PL/I). Program Reference Manual", IBM SH19- 5060-0 (June 1972)].
(1994-12-07)

simplified multicast routing protocol
Simplified Multicast Routing Protocol
[communications, protocol] (SMRP) A {transport-layer} {protocol} to route {multimedia} data streams over {AppleTalk} networks. SMRP supports {Apple}'s {QuickTime Conferencing} (QTC).
{Documentation (http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/smrp.htm)}.
(2001-07-02)

simplt
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
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 i5
SIMSCRIPT I.5
A version of {SIMSCRIPT} developed at {CACI} in 1965. It produced {assembly language}.

simscript ii5
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
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
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
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
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
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
Simulation Language for Alternative Modeling
[language] (SLAM) A {simulation} language descended from {GASP}. Implemented as a {Fortran} {preprocessor}.

simulation oriented language
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
Simultaneous Engineering Environment
(SEE) A {CAE} framework from {DAZIX}.
(1994-11-03)

simultaneous peripheral operation online
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
Simware, Inc.
[company] The producers of {REXXWARE}.
E-mail: [rexxware@simware.com].
Address: Ottawa, Canada.
(1995-01-11)

sina
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
since time T equals minus infinity
A long time ago; for as long as anyone can remember; at the time that some particular frob was first designed. Usually the word "time" is omitted. See also {time T}; contrast {epoch}.
[{Jargon File}]

sinclair clive
Sinclair, Clive
{Clive Sinclair}

sinclair pc200
Sinclair PC200
[computer]
{(http://www.nonowt.demon.co.uk/magfold/articfol/the_miss.htm)}.
[Summary?]
1998-07-28

sinclair radionics
Sinclair Radionics
{Sinclair Research}

sinclair research
Sinclair Research
[company] A British microelectronics developer and manufacturer. Evolving from Sinclair Radionics in 1979, Sinclair Research was owned by Sir {Clive Sinclair}. Sinclair Radionics produced electronic components and devices (such as calculators and pocket radios and televisions), but Sinclair Research began by producing some of the first {8-bit} home {microcomputers}.
Sinclair produced five microcomputers from 1980 to 1987, all based on the {Zilog Z80} {microprocessor} (except for the {QL}, which used the {Motorola 68008} - a variant on the {68000}). The 1K kit-build {ZX80}, introduced in 1980, was followed by the 1K {ZX81} (expandable to 16K) in 1981, the 16K (expandable to 48K) {ZX Spectrum} in 1982 (then superseded by two distinct 48K models and a 128K model in 1986) and the {QL} (Quantum Leap) in 1984. A portable {laptop computer}, the {Z88}, was released in 1987 under the {Cambridge Computers} banner.
Of them all, the ZX Spectrum was the best known, and it went on to become the most popular microcomputer of its time in the United Kingdom and in many other territories. This was partly due to its ease of use, and also due to its enormous {software} catalogue, covering games, {word processing}, music, {programming} and {graphics}. Glorious "mine's-better-than-yours" battles were fought (and still are today) between owners of Spectrums and {Commodore 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 assignment language
Single ASsignment Language
[language] (SASL) A {functional programming} language designed by Professor {David Turner} in 1976 whilst at St. Andrews University. SASL is a derivative of {ISWIM} with infinite data structures. It is fully {lazy} but {weakly typed}. It was designed for teaching functional programming, with very simple {syntax}.
Example syntax:
def fac n = n = 0 -] 1 ; n x fac(n-1)
A version of the {expert system} {EMYCIN} has been written in SASL.
SASL was originally known as "Saint Andrews Static Language". Not to be confused with {SISAL}.
{(ftp://a.cs.uiuc.edu/uiuc/kamin.distr/distr/sasl.p)}. See also {Kamin's interpreters}.
["A New Implementation Technique for Applicative Languages", D.A. Turner, Soft Prac & Exp 8:31-49 (1979)].
(2003-08-08)

single connection attach
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/show/harddrive/152/)}.
(2003-06-21)

single connector attachment
Single Connector Attachment
{Single Connection Attach}

single data rate random access memory
Single Data Rate Random Access Memory
[storage] (SDR-RAM, SDR-SDRAM, Single Data Rate Synchronous Dynamic Random Access Memory) {RAM} or {SDRAM} that transfers data on only one {clock} transition (0-1 or 1-0), in contrast to {DDR-RAM}.
(2001-05-24)

single data rate synchronous dynamic random access memory
Single Data Rate Synchronous Dynamic Random Access Memory
{Single Data Rate Random Access Memory}

single document interface
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
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
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
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
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
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
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 inline memory module
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
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}

single instructionmultiple data
Single Instruction/Multiple Data
(SIMD) (Or "data parallel") The classification under {Flynn's taxonomy} for a {parallel processor} where many processing elements ({functional units}) perform the same operations on different data. There is often a central controller which broadcasts the instruction stream to all the processing elements.
Contrast {Multiple Instruction/Multiple Data}.
(1994-11-04)

single programmultiple data
single program/multiple data
[parallel, architecture] (SPMD) A kind of {parallel processing} where the same program is run on multiple processors. Every instance of the program knows which part of the computation it should perform and the results of the computation are combined somehow.
(2002-04-21)

single quote
[character] "'" {ASCII} character 39.
Common names include single quote; quote; {ITU-T}: apostrophe. Rare: prime; glitch; tick; irk; pop; {INTERCAL}: spark; {ITU-T}: closing single quotation mark; {ITU-T}: acute accent.
Single quote is used in {C} and derived languages to introduce a single character {literal value} which is represented internally by its ASCII code. In the {Unix} {shells} and {Perl} single quote is used to delimit strings in which variable substitution is not performed (in contrast to {double-quote}-delimited strings).
Single quote is often used in text for both open and close single quotation mark and apostrophe. Typesetters use two different symbols - open has a tail going up, close and apostrophe have tails hanging down (like a raised {comma}). Some people use {back quote} (`) for open single quotation mark.
(1998-04-04)

single sourcing
[publication] Using a single original document set to generate {dead tree} and on-line {documentation}, and usually also on-line help. In practice, it most often refers to a {FrameMaker} file set with {conditional text} which, when the conditions are set appropriately, allows you to create variants of the original document (e.g., for a product that runs on different {Unix} {platforms}) as well as for different media -- typically task-oriented on-line help to be accessed under {Microsoft Windows} or from a {web browser}, linear printed document, and {HTML} delivered via the {WWW} and/or {CD-ROM}.

single static assignment
[compiler] (Also known as SSA form) A special form of code where each variable has only one single definition in the program code. "Static" comes from the fact that the definition site may be in a loop, thus dynamically executed several times.
SSA form is used for program optimization or {static analysis} and {optimisation}.
(2003-04-12)

single virtual storage
Single Virtual Storage
{OS/VS2}

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

singleduplex
single-duplex
[communications] (From {telegraphy}) A {full-duplex} link with one telegrapher at each end, transmitting alternately in each direction.
(2000-03-30)

singleelectron transistor
single-electron transistor
{quantum dot}

singleline digital subscriber line
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)

singlepair high speed digital subscriber line
Single-pair High Speed Digital Subscriber Line
{Single-line Digital Subscriber Line}

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)

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}, {Sun-3}, {Sun-4}, {Amiga}, {Macintosh}, {MIPS}, {Cray}, {ALPHA}/{VMS}, {Windows NT} and {OS/2}. It can be compiled by most {ANSI C} compilers and {C++} compilers, e.g. {gcc} -Wall.
{(ftp://world.std.com/pub/gjc/)}, {(ftp://world.std.com/src/lisp/)}.
{Usenet} newsgroup: {news:comp.lang.scheme}.
(1994-02-18)

sip
SIP
{Session Initiation Protocol}

sipb
SIPB
Student Information Processing Board, {MIT}.

{(http://www.mit.edu:8001/afs/athena.mit.edu/user/r/e/rei/WWW/GAME/sipbroom.html)}.

siplan
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
SIPP
{Single Inline Pin Package}

siprol
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
SIR
1. [language] An early system on the {IBM 650}.
[Listed in CACM 2(5):16, May 1959].
2. [standard] Serial Infrared. An {infrared} {standard} from {IrDA}, part of {IrDA Data}. SIR supports {asynchronous} communications at 9600 bps - 115.2 Kbps, at a distance of up to 1 metre.
[Reference?]
(1999-10-14)

sirds
SIRDS
{Single Image Random Dot Stereogram}

siri
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
SIRTS
{Single Image Random Text Stereogram}. (Or {ASCII} {stereogram}).

sisal
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@llnl.gov], Rod Oldehoeft [rro@cs.colostate.edu].
David C. Cann has written an {Optimising SISAL Compiler (ftp://sisal.llnl.gov/pub/sisal)} (OSC) which attempts to make efficient use of {parallel processors} such as {Crays}.
Latest version: 12.0, SISAL 1.2.
["A Report on the SISAL Language Project", J.T. Feo et al, J Parallel and Distrib Computing 10(4):349-366 (Dec 1990)].
(2000-07-07)

sit
{Stuffit}

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

sk reduction machine
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.

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

skey
S/Key
{One-Time Password}

skill
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
Skim
[language] A {Scheme} implementation with {packages} and other enhancements, by Alain Deutsch et al, France.
(2000-11-02)

skipjack
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
SKOL
{Fortran} pre-processor for {COS} (Cray Operating System).

skolemisation
A means of removing {quantifier}s from {first order logic} formulas.
[Details?]

skrog
{scrog}

sksh
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
SKU
{stock-keeping unit}

skulker
{prowler}

sl
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
SL5
String and list processing language with expression-oriented syntax. Coroutines.
["An Overview of SL5", Ralph E. Griswold, SIGPLAN Notices 12(4):40-50 (Apr 1977)].

slack
1. [operating system] Internal fragmentation. Space allocated to a disk file but not actually used to store useful information.
2. [jargon] In the theology of the {Church of the SubGenius}, a mystical substance or quality that is the prerequisite of all human happiness.
Since {Unix} files are stored compactly, except for the unavoidable wastage in the last block or fragment, it might be said that "Unix has no slack".
See {ha ha only serious}.
[{Jargon File}]
(1995-03-01)

slackware
[operating system] A distribution of the {Linux} {operating system} by Patrick Volkerding [volkerdi@mhd1.moorhead.msus.edu], [volkerdi@ftp.cdrom.com].
{cdrom.com (ftp://ftp.cdrom.com/pub/linux/)}.
{FAQ (ftp://sunsite.unc.edu/pub/Linux/distributions/slackware/SLAKWARE.FAQ)}.
{Sunsite Linux archives (http://sunsite.unc.edu/pub/Linux/distributions/slackware/)}.
{Sunsite mirrors (http://sunsite.unc.edu/pub/Linux/MIRRORS.html)}.
(1995-03-01)

slam
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
S-Lang
[language] A small but highly functional {embedded} {interpreter}. S-Lang was a stack-based {postfix} language resembling {Forth} and {BC}/{DC} with limited support for {infix notation}. Now it has a {C}-like infix syntax. {Arrays}, stings, integers, {floating-point} and {autoloading} are all suported. The editor {JED} embeds S-lang.
S-Lang is available under the {GNU Library General Public License}. It runs on {MS-DOS}, {Unix}, and {VMS}.
Latest version: 0.94, as of 1993-06-12.
{(ftp://amy.tch.harvard.edu/)}.
E-mail: John E. Davis [davis@tch.harvard.edu].
(2000-10-30)

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

slap on the side
(Also called a {sidecar}, or abbreviated "SOTS"). A type of external expansion hardware marketed by computer manufacturers (e.g. {Commodore} for the {Amiga} 500/1000 series and {IBM} for the hideous failure called {IBM PCjr}). Various SOTS boxes provided necessities such as memory, hard drive controllers, and conventional expansion slots.
[{Jargon File}]

slash
{oblique stroke}

slashdot effect
[jargon] An effect where a document on a {WWW} {server} is linked to from another, popular, site, with the resultant traffic overloading the server so that a connection cannot be made to it. This is especially likely if the server is running {Microsoft IIS}.
The term was coined by readers of the {Unix} advocacy {web site} {slashdot.org (http://slashdot.org/)}.
(1998-10-24)

slave tty
(/dev/ttyp*) The half of a {pseudo-tty} which programs (e.g. getty) read from and write to as though it was an ordinary {serial line}.

sld resolution
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, multitasking] (Or "{block}") When a {process} on a {multitasking} system asks the {scheduler} to deactivate it until some given external event (e.g. an {interrupt} or a specified time delay) occurs.
The alternative is to {poll} or "{busy wait}" for the event but this uses processing power.
Also used in the phrase "sleep on" (or "block on") some external event, meaning to wait for it.
E.g. the {Unix} command of the same name which pauses the current process for a given number of seconds.
2. [hardware] To go into partial deactivation to save power.
[{Jargon File}]
(2000-09-25)

slib
SLIB
{Scheme Library}

slidingwindow
sliding-window
[networking] A method of {flow control} in which a {receiver} gives a {transmitter} permission to transmit {data} until a {window} is full. When the window is full, the transmitter must stop transmitting until the receiver advertises a larger window.
{TCP}, other transport {protocols}, and several {link-layer protocols} use this method of flow control.
(2002-12-02)

slim
SLIM
A VLSI language for translating DFA's into circuits. J.L. Hennessy, "SLIM: A Simulation and Implementation Language for VLSI Microcode", Lambda, Apr 1981, pp.20-28.
[{Jargon File}]

slim
[jargon] A small, derivative change (e.g. to code).
(2003-05-13)

slingshot
Slingshot
[networking, business, tool, product, protocol] {CSK Software}'s {real time} financial server for the {Internet}.
Slingshot allows the delivery of real time market data across the {Internet} and private {intranets} quickly, cheaply and securely. The first beta-test version was released free to the Internet on 6 August 1996. Slingshot allows any financial institution, regardless of size, to publish their rates and associated information to a global audience using standard Internet protocols and software. The {real-time} data can be seamlessly integrated into any standard {World-Wide Web} application and thus combined with static text, database queries and even audio and video objects, to create services.
The Slingshot protocol enables the delivery of other forms of real time data over the Internet, thus making Slingshot useful in industries as varied as manufacturing, betting, telemetry, weather, transport and medicine.
Version 2's improved protocol minimises the required {bandwidth} and can go through {firewalls}, {proxies}, and {virus scanners}, making Slingshot real-time data accessible everywhere where normal web access is possible.
(2003-05-13)

slip
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
SlipKnot
[web] A graphical {World-Wide Web} {browser} specifically designed for {Microsoft Windows} users who have {Unix} {shell accounts} with their service providers. Its primary feature is that it does not require {SLIP} or {PPP} or {TCP/IP} services. SlipKnot is distributed as restricted shareware.
Version: 1.0.
{SlipKnot home (http://www.micromind.com/slipknot.htm)}.
E-mail: [slipknot@micromind.com].
(2003-03-25)

slips
SLIPS
"An Interpreter for SLIPS - An Applicative Language Based on Lambda-Calculus", V. Gehot et al, Comp Langs 11(1):1-14 (1986).

slirp
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
SLLIC
[language] An intermediate language developed at {HP}. An infinite-register version of the {Precision Architecture} {instruction set}?
(1995-05-28)

slog
{Schelog}

sloop
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.
[{Jargon File}]
(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}.
[{Jargon File}]

slot 1
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
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
Slot A
[hardware] The physical and electrical specification for the edge-connector used by {AMD}'s {Athlon} processor.
The connector allows for a higher {bus rate} than {Socket 7} or {Super 7}. Slot A motherboards use {Compaq}'s {EV6} {bus protocol}. Slot A is mechanically compatible but electrically incompatible with {Intel}'s {Slot 1}.
(1999-08-05)

slurp
To read a large data file entirely into {core} before working on it. This may be contrasted with the strategy of reading a small piece at a time, processing it, and then reading the next piece. "This program slurps in a 1K-by-1K matrix and does an FFT." See also {sponge}.
[{Jargon File}]

sm
[networking] The {country code} for San Marino.
(1999-01-27)

smail
{snail-mail}

smalgol
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
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 computer system interface
Small Computer System Interface
[hardware, standard] (SCSI) /skuh'zee/, /sek'si/ The most popular processor-independent standard, via a parallel bus, for system-level interfacing between a computer and intelligent devices including {hard disks}, {floppy disks}, {CD-ROM}, {printers}, {scanners}, and many more.
SCSI can connect multiple devices to a single {SCSI adaptor} (or "host adaptor") on the computer's bus. SCSI transfers bits in parallel and can operate in either {asynchronous} or {synchronous} modes. The synchronous transfer rate is up to 5MB/s. There must be at least one {target} and one {initiator} on the SCSI {bus}.
SCSI connections normally use "{single ended}" drivers as opposed to {differential drivers}. Single ended SCSI can suport up to six metres of cable. Differential ended SCSI can support up to 25 metres of cable.
SCSI was developed by {Shugart Associates}, which later became {Seagate}. SCSI was originally called SASI for "Shugart Associates System Interface" before it became a standard.
Due to SCSI's inherent protocol flexibility, large support infrastructure, continued speed increases and the acceptance of SCSI Expanders in applications it is expected to hold its market.
The original standard is now called "SCSI-1" to distinguish it from {SCSI-2} and {SCSI-3} which include specifications of {Wide SCSI} (a 16-bit bus) and {Fast SCSI} (10 MB/s transfer).
SCSI-1 has been standardised as {ANSI} X3.131-1986 and {ISO}/{IEC} 9316.
A problem with SCSI is the large number of different connectors allowed. Nowadays the trend is toward a 68-pin {miniature D-type} or "high density" connector (HD68) for {Wide SCSI} and a 50-pin version of the same connector (HD50) for 8-bit SCSI (Type 1-4, pin pitch 1.27 mm x 2.45 mm). 50-pin {ribbon cable} connectors are also popular for internal wiring (Type 5, pin pitch 2.54 mm x 2.54 mm). {Apple Computer} used a 25-pin connector on the {Macintosh} computer but this connector causes problems with high-speed equipment. Original SCSI implementations were highly incompatible with each other.
{ASPI} is a standard {Microsoft Windows} interface to SCSI devices.
{Usenet} newsgroup: {news:comp.periphs.scsi}.
{(news:comp.periphs.scsi)}. SCSI Trade Association & FAQ {(http://www.scsita.org/)}.
["System" or "Systems"?]
(1999-03-30)

small outline dimm
Small Outline DIMM
[storage] (SO-DIMM) A smaller kind of {DIMM} with 72 pins (supporting 32-bit transfers) or 144 pins (64-bit transfers). Regular DIMMs have 168 pins and support 64-bit transfers. Being roughly half the size of the regular DIMM, SO-DIMMs are often used in {notebook computers}.
{Kingston Memory Guide (http://www.kingston.com/tools/umg/newumg05a.asp)}.
(2001-02-16)

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

smallofficehomeoffice
small-office/home-office
(SoHo) A term describing the market for certain computer goods.
(1995-01-11)

smalltalk
Smalltalk
[language] The pioneering {object-oriented programming} system developed in 1972 by the Software Concepts Group, led by {Alan Kay}, at {Xerox PARC} between 1971 and 1983. It includes a language, a programming environment, and an extensive object library.
Smalltalk took the concepts of {class} and {message} from {Simula-67} and made them all-pervasive. Innovations included the {bitmap display}, windowing system, and use of a {mouse}.
The {syntax} is very simple. The fundamental construction is to send a message to an {object}:
object message
or with extra parameters
object message: param1 secondArg: param2 .. nthArg: paramN
where "secondArg:" etc. are considered to be part of the message name.
Five pseudo-variables are defined: "self", "super", "nil", "true", "false". "self" is the receiver of the current message. "super" is used to delegate processing of a message to the {superclass} of the receiver. "nil" is a reference to "nothing" (an instance of UndefinedObject). All variables initially contain a reference to nil. "true" and "false" are {Booleans}.
In Smalltalk, any message can be sent to any object. The recipient object itself decides (based on the message name, also called the "message selector") how to respond to the message. Because of that, the {multiple inheritance} system included in the early versions of Smalltalk-80 appeared to be unused in practice. All modern implementations have single inheritance, so each class can have at most one superclass.
Early implementations were {interpreted} but all modern ones use {dynamic translation} (JIT).
Early versions were Smalltalk-72, Smalltalk-74, Smalltalk-76 (inheritance taken from Simula, and concurrency), and Smalltalk-78, {Smalltalk-80}. Other versions include {Little Smalltalk}, {Smalltalk/V}, {Kamin's interpreters}. Current versions are {VisualWorks}, {Squeak}, {VisualAge}, {Dolphin Smalltalk}, {Object Studio}, {GNU Smalltalk}.
See also: {International Smalltalk Association}.
{UIUC Smalltalk archive (http://st-www.cs.uiuc.edu/)}. {FAQ (http://XCF.Berkeley.EDU/pub/misc/smalltalk/FAQ/)}.
{Usenet} newsgroup: {news:comp.lang.smalltalk}.
["The Smalltalk-76 Programming System Design and Implementation", D.H. Ingalls, 5th POPL, ACM 1978, pp. 9-16].
(2001-09-11)

smalltalk80
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://gnu.org/pub/gnu)}.
Mail server: goodies-lib@r5.cs.man.ac.uk.

smalltalkv
Smalltalk/V
The first widely available version of {Smalltalk}, developed by {Digitalk} in 1986 for {IBM PC} and {Macintosh}.
(1995-02-14)

smallvdm
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
SMALLWORLD
[legal] A trademark of {Smallworldwide Plc. (http://www.smallworld.co.uk/)}.
(1999-08-26)

smallworld
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
Smarandache logic
{neutrosophic logic}

smart
SMART
For {MS-DOS}?
[{Jargon File}]

smart
1. [programming] Said of a program that does the {Right Thing} in a wide variety of complicated circumstances. There is a difference between calling a program smart and calling it intelligent; in particular, there do not exist any intelligent programs (yet - see {AI-complete}).
Compare {robust} (smart programs can be {brittle}).
2. [hardware] Incorporating some kind of digital electronics.
(1995-03-28)

smart battery data
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)

smart terminal
{intelligent terminal}

smartdrive
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
SMARTdrv
{Smartdrive}

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}.
[{Jargon File}]
(1995-03-16)

smb
SMB
1. [protocol] {Server Message Block}.
2. [hardware, protocol] {System Management Bus}.
(1999-08-08)

smbclient
{Samba}

smblib
{Samba}

smbus
SMBus
{System Management Bus}

smcc
SMCC
{Sun Microsystems} Computer Corporation.

smds
SMDS
{Switched Multimegabit Data Service}

smg
SMG
Screen Management Guidelines. A {VMS} package of run-time library routines providing windows on {DEC} {VT100} terminals.

smi
SMI
{Structure of Management Information}

smil
SMIL
1. [language] The {machine language} for a Swedish computer.
{(ftp://ftp.wustl.edu/mirrors/info-mac/lang/smil-emulator.hqx)}.
2. [hypertext, language, multimedia, text, World-Wide Web] {Synchronized Multimedia Integration Language}.
(2000-04-21)

smiley
{emoticon}

smime
S-MIME
{Secure Multipurpose Internet Mail Extensions}

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

smlnj
SML/NJ
{Standard ML of New Jersey}

smm
SMM
{System Management Mode}

smnp
SMNP
Do you mean "{SNMP}"? If not, please tell me.

smoke
1. To {crash} or blow up, usually spectacularly. "The new version smoked, just like the last one." Used for both hardware (where it often describes an actual physical event), and software (where it's merely colourful).
2. [Automotive slang] To be conspicuously fast. "That processor really smokes." Compare {magic smoke}.
[{Jargon File}]

smoke and mirrors
Marketing deceptions. The term is mainstream in this general sense. Among hackers it's strongly associated with bogus demos and crocked {benchmarks} (see also {MIPS}, {machoflops}). "They claim their new box cranks 50 MIPS for under $5000, but didn't specify the instruction mix - sounds like smoke and mirrors to me." The phrase has been said to derive from carnie slang for magic acts and "freak show" displays that depend on "trompe l"oeil' effects, but also calls to mind the fierce Aztec god Tezcatlipoca (lit. "Smoking Mirror") for whom the hearts of huge numbers of human sacrificial victims were regularly cut out. Upon hearing about a rigged demo or yet another round of fantasy-based marketing promises, hackers often feel analogously disheartened.

smoke test
1. A rudimentary form of testing applied to electronic equipment following repair or reconfiguration, in which power is applied and the tester checks for sparks, smoke, or other dramatic signs of fundamental failure. See {magic smoke}.
2. By extension, the first run of a piece of software after construction or a critical change. See and compare {reality check}.
There is an interesting semi-parallel to this term among typographers and printers: When new typefaces are being punch-cut by hand, a "smoke test" (hold the letter in candle smoke, then press it onto paper) is used to check out new dies.
[{Jargon File}]

smokeemitting diode
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)

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
SMoLCS
Specification metalanguage used for a formal definition of Ada. "An Introduction to the SMoLCS Methodology", E. Astesiano, U Genova 1986.

smop
SMOP
/S-M-O-P/ [Simple (or Small) Matter of Programming] 1. A piece of code, not yet written, whose anticipated length is significantly greater than its complexity. Used to refer to a program that could obviously be written, but is not worth the trouble. Also used ironically to imply that a difficult problem can be easily solved because a program can be written to do it; the irony is that it is very clear that writing such a program will be a great deal of work. "It's easy to enhance a Fortran compiler to compile COBOL as well; it's just an SMOP." 2. Often used ironically by the intended victim when a suggestion for a program is made which seems easy to the suggester, but is obviously (to the victim) a lot of work.
[{Jargon File}]

smp
SMP
1. {Symbol Manipulation Program}.
2. [computer, parallel] {symmetric multiprocessing}.
(1995-03-19)

smpt
SMPT
Do you mean {SMTP}?

smrp
SMRP
{Simplified Multicast Routing Protocol}

sms
SMS
1. [messaging] {Short Message Service}.
2. [storage] {Storage Management Services}.
3. [operating system] {System Management Server}.
(1999-05-02)

smt
SMT
{Station Management}

smtp
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}.
[{Jargon File}]
(1995-10-25)

sn
[networking] The {country code} for Senegal.
(1999-01-27)

sn ratio
S/N ratio
{signal-to-noise ratio}

sna
SNA
{Systems Network Architecture}

snacc
[tool] (Sample Neufeld {ASN.1} to {C/C++} Compiler) A program by Mike Sample [msample@opentext.com] which compiles 1990 {ASN.1} data structures (including some {macros}) into {C}, {C++} or type tables. The generated {C/C++} includes a .h file with the equivalent data struct and a .c/.C file for the {BER} encode and decode, print and free routines.
snacc includes the compiler, run-time BER libraries, and utility programs. snacc is compiled under {GNU} {General Public License}. It requires {yacc} or {bison}, {lex} or {flex}, and {cc} (ANSI or non-ANSI).
ITU TS X.208/ISO 8824.
Latest version: 1.1, as of 1993-07-12.
{Home (http://www.fokus.gmd.de/ovma/freeware/snacc/entry.html)}.
E-mail: [snacc-bugs@cs.ubc.ca].
[Michael Sample and Gerald Neufeld, "Implementing Efficient Encoders and Decoders for Network Data Representations", IEEE INFOCOM '93 Proceedings, Vol 3, pp. 1143-1153, Mar 1993].
[Michael Sample, "How Fast Can ASN.1 Encoding Rules Go?", M.Sc. Thesis, University of British Columbia, Apr 1993].
(1998-08-09)

snaf
{chad}

snafu principle
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.
[{Jargon File}]

snag
{bug}

snail mail
[messaging] (Or "snailmail", "smail" from "US Mail" via "USnail"; "paper mail"). Bits of {dead tree} sent via the postal service as opposed to {electronic mail}. One's postal address is, correspondingly, a "snail (mail) address". There have even been parody USnail posters and stamps made.
The variant "paper-net" is a hackish way of referring to the postal service, comparing it to a very slow, low-reliability {network}. {Sig blocks} sometimes include a "Paper-Net:" header just before the sender's postal address; common variants of this are "Papernet" and "P-Net". Note that the standard {netiquette} guidelines discourage this practice as a waste of bandwidth, since netters are quite unlikely to casually use postal addresses and if they really wanted your {snail mail} address they could always ask for it by e-mail.
Compare {voice-net}, {sneakernet}, {P-mail}.
(1995-01-31)

snap
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.
[{Jargon File}]

snappy
Snappy
{Snappy Video Snapshot}

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.
[{Jargon File}]
(1995-02-21)

snarf barf
snarf & barf
/snarf'n-barf`/ Under a {WIMP} environment, the act of grabbing a region of text and then stuffing the contents of that region into another region (or the same one) to avoid retyping a command line. In the late 1960s, this was a mainstream expression for an "eat now, regret it later" cheap restaurant expedition.
[{Jargon File}]
(1994-11-04)

snarf down
To {snarf}, with the connotation of absorbing, processing, or understanding. "I'll snarf down the latest version of the {nethack} user's guide - it's been a while since I last played."
[{Jargon File}]
(1994-11-04)

snark
[Lewis Carroll, via the Michigan Terminal System] 1. A system failure. When a user's process bombed, the operator would get the message "Help, Help, Snark in MTS!"
2. More generally, any kind of unexplained or threatening event on a computer (especially if it might be a boojum). Often used to refer to an event or a log file entry that might indicate an attempted security violation. See {snivitz}.
3. UUCP name of snark.thyrsus.com, home site of the Hacker {Jargon File} versions 2.*.*.
[{Jargon File}]

sneakernet
/snee'ker-net/ Term used (generally with ironic intent) for transfer of electronic information by physically carrying tape, disks, or other media from one machine to another.
"Never underestimate the bandwidth of a station wagon filled with magtape, or a 747 filled with CD-ROMs."
Also called tennis-net, armpit-net, floppy-net, shoe-net, walk-net, foot-net.
(2003-07-02)

sneck
[jargon] The sound made by {deboursification}, according to Sam Spade anti-{spam} software.
(1999-09-15)

snert
[abuse] A derogatory term commonly used on the {Internet} {ECHO} {BBS}, echonyc.com, meaning to "make overtures of a sexual nature". It implies terminal cluelessness.
(1995-03-01)

sni
SNI
{Siemens Nixdorf Informationssteme, AG}

sniff
Sniff
A {C++}/{C} programming environment providing browsing, cross-referencing, design visualisation, documentation and editing support. Developed by UBS Switzerland and marketed by takeFive Salzburg.
[{Jargon File}]

sniff
{poll}

sniffer
{packet sniffer}

snivitz
[jargon] /sniv'itz/ A hiccup in hardware or software; a small, transient problem of unknown origin (less serious than a {snark}).
Compare {glitch}.
[{Jargon File}]
(1995-03-28)

snmp
SNMP
{Simple Network Management Protocol}

snmp agent
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
SNMPv2
{Simple Network Management Protocol version 2}

snobol
SNOBOL
{String Oriented Symbolic Language}

snobol2
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
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
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
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
'Snooze
/snooz/ [FidoNet] Fidonews, the weekly official on-line newsletter of FidoNet. As the editorial policy of Fidonews is "anything that arrives, we print", there are often large articles completely unrelated to FidoNet, which in turn tend to elicit {flamage} in subsequent issues.
[{Jargon File}]

snpp
SNPP
{Simple Network Paging Protocol}

snr
SNR
{signal-to-noise ratio}

snr bandwidth product
SNR bandwidth product
[communications] The {integral} of the {SNR} over {frequency}. The SNR bandwidth product is an important limit in the capacity of a communication channel.
(2003-07-20)

so
SO
1. [character] {Shift Out}
2. Significant Other, almost invariably written abbreviated and pronounced /S-O/ by hackers. Used to refer to one's primary relationship, especially a live-in to whom one is not married.
[{Jargon File}]

so
[networking] The {country code} for Somalia.
(1999-01-27)

so 2
SO 2
An early system on {IBM 701}.
[Listed in CACM 2(5):16 (May 1959)].
(1994-11-04)

soap
SOAP
1. [protocol] {Simple Object Access Protocol}.
2. [language] {Symbolic Optimal Assembly Program}.
(2001-03-23)

soar
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.
[{Jargon File}]

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
Socket 1
{x86 processor socket}

socket 2
Socket 2
{x86 processor socket}

socket 3
Socket 3
{x86 processor socket}

socket 370
Socket 370
[hardware, standard, processor] (PGA370) A physical and electrical specification for a {motherboard} {processor} socket. Socket 370 uses a square {SPGA} {ZIF} socket with 370 pins, arranged 37x37 (sometimes described as 19x19).
{Intel} originally designed Socket 370 for {PPGA} Celeron processors. Newer Socket 370 motherboards additionally support {FC-PGA} Celeron and {Pentium III} processors.
The difference between the two versions is electrical; some pins are used differently and voltage requirements have been changed from Intel's {VRM 8.2} to {VRM 8.4}. In addition, Celeron processors require a 66 MHz front side bus ({FSB}), and Pentium III processors require a 100/133 MHz FSB.
Some older Socket 370 motherboards support VRM 8.4 and variable bus speeds, so adapters are available that convert the socket pinout to allow FC-PGA processors to work.
{VIA}'s {Cyrix III} processor was designed to work with Socket 370 motherboards.
{Intel Celeron Processor in PPGA form factor - Integration (http://www.pentium.com/design/quality/celeron/ppga/integration.htm)}.
{Pentium III Processors - Design Guidelines (http://www.intel.com/design/PentiumIII/designgd/)}.
(2000-08-26)

socket 4
Socket 4
{x86 processor socket}

socket 5
Socket 5
{x86 processor socket}

socket 6
Socket 6
{x86 processor socket}

socket 7
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
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
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
SOCRATIC
An early interactive learning system (not a language(?)) developed at {Bolt, Beranek & Newman}.
[Sammet 1969, p. 702].
(1994-11-04)

soda
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
SODAS
[D.L. Parnas & J.A. Darringer. Proc FJCC 31:449-474, AFIPS (Fall 1967)].
(1994-11-04)

sodimm
SO-DIMM
{Small Outline DIMM}

sods law
Sod's Law
[humour] {Murphy's Law}.
[Or is it "Sodd"?]
(1995-12-29)

soft boot
[operating system] A {boot} which resets only part of the {system}.
For example, "If you're running the {mess-dos} {emulator}, control-alt-insert will cause a soft boot of the emulator, while leaving the rest of the system running".
Contrast {hard boot}.
[{Jargon File}]
(1995-11-27)

soft link
{symbolic link}

softbench
SoftBench
An {IPSE} from {Hewlett-Packard}.

softcopy
/soft'kop-ee/ (by analogy with "hardcopy") A machine-readable ("{machinable}") form of corresponding {hardcopy}.
[{Jargon File}]
(1994-11-04)

softlab
Softlab
[company] A {software engineering} company strong in the UK and Germany.
[Details?]

softmodem
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}").
The term was coined by the eminent statistician, {John Tukey}.
Programs stored on {non-volatile storage} built from {integrated circuits} (e.g. {ROM} or {PROM}) are usually called {firmware}.
Software can be split into two main types - {system software} and application software or {application programs}. System software is any software required to support the production or execution of application programs but which is not specific to any particular application. Examples of system software would include the {operating system}, {compilers}, editors and sorting programs.
Examples of application programs would include an accounts package or a {CAD} program. Other broad classes of application software include {real-time} software, {business software}, scientific and engineering software, {embedded software}, personal computer software and {artificial intelligence} software.
Software includes both {source code} written by humans and executable {machine code} produced by {assemblers} or {compilers}. It does not usually include the data processed by programs unless this is in a format such as {multimedia} which depends on the use of computers for its presentation. This distinction becomes unclear in cases such as {spread sheets} which can contain both instructions (formulae and {macros}) and data. There are also various intermediate compiled or {semi-compiled}, forms of software such as {library} files and {byte-code}.
Some claim that {documentation} (both paper and electronic) is also software. Others go further and define software to be programs plus documentation though this does not correspond with common usage.
The noun "program" describes a single, complete and more-or-less self-contained list of instructions, often stored in a single {file}, whereas "code" and "software" are uncountable nouns describing some number of instructions which may constitute one or more programs or part thereof. Most programs, however, rely heavily on various kinds of {operating system} software for their execution. The nounds "code" and "software" both refer to the same thing but "code" tends to suggest an interest in the implementation details whereas "software" is more of a user's term.
(2002-07-21)

software ag
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
Software BackPlane
[programming, tool] A {CASE} framework from {Atherton}.
(1996-05-19)

software bloat
[jargon, abuse] The result of adding new features to a program or system to the point where the benefit of the new features is outweighed by the extra resources consumed ({RAM}, disk space or performance) and complexity of use. Software bloat is an instance of Parkinson's Law: resource requirements expand to consume the resources available. Causes of software bloat include {second-system effect} and {creeping featuritis}. Commonly cited examples include Unix's "{ls}(1)" command, the {X Window System}, {BSD}, {Missed'em-five}, {OS/2} and any {Microsoft} product.
[{Jargon File}]
(1995-10-16)

software bus
Software bus
A support environment for heterogeneous distributed processing, such as the ANSA Testbench.

software description database
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
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
Software Engineering Environment
(SEE) A set of management and technical tools to support software development, usually integrated in a coherent framework; equivalent to an {IPSE}.
(1994-11-03)

software handshaking
[communications] The transmission of extra data on a channel in order to control the device sending data in the other direction on that channel. For an {EIA-232} connection, this means sending {Control-S} and {Control-Q} characters to stop and start transmission.
Since software handshaking requires the transmission and processing of extra data it can be less efficient than {hardware handshaking}.
(1996-10-16)

software in the public interest inc
Software in the Public Interest, Inc.
[company] (SPI) A non-profit corporation which helps organisations develop and distribute {open hardware} and {open software}. SPI's goals are:
* to create, form and establish an organization to formulate and provide software systems for use by the general public without charge;
* to teach and train individuals regarding the use and application of such systems;
* to hold classes, seminars and workshops concerning the proper use and application of computers and computer systems;
* to endeavor to monitor and improve the quality of currently existing publicly available software;
* to support, encourage and promote the creation and development of software available to the general public;
* to provide information and education regarding the proper use of the Internet;
* to organize, hold and conduct meetings, discussions and forums on contemporary issues concerning the use of computers and computer software;
* to foster, promote and increase access to software systems available to the general public;
* to solicit, collect and otherwise raise money and to expend such funds in furtherance of the goals and activities of the corporation;
* to aid, assist, cooperate, co-sponsor and otherwise engage in concerted action with private, educational and governmental organisations and associations on all issues and matters concerning the use of computers and computer software and;
* generally to endeavor to promote, foster and advance interest in computers and computer software by all available means and methods.
SPI currently supports {Berlin}, {Debian}, {GNOME}, {LSB}, {Open Source}.
{SPI Home (http://www.spi-inc.org/)}.
(2002-04-14)

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.
[{Jargon File}]

software law
[legal] Software may, under various circumstances and in various countries, be restricted by patent or {copyright} or both. Most commercial software is sold under some kind of {software license}.
A patent normally covers the design of something with a function such as a machine or process. Copyright restricts the right to make and distribute copies of something written or recorded, such as a song or a book of recipies. Software has both these aspects - it embodies functional design in the {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 lifecycle
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 Method
{Software Methodology}

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
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
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
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] The tendency of software that has not been used in a while to fail; such failure may be semi-humorously ascribed to {bit rot}. More commonly, "software rot" strikes when a program's assumptions become out of date. If the design was insufficiently {robust}, this may cause it to fail in mysterious ways.
For example, owing to shortsightedness in the design of some COBOL programs, many would have succumbed to software rot when their 2-digit year counters wrapped around at the beginning of the year 2000. A related incident made the news in 1990, when a gentleman born in 1889 applied for a driver's licence renewal in Raleigh, North Carolina. The system refused to issue the card, probably because with 2-digit years the ages 101 and 1 cannot be distinguished.
Historical note: Software rot in an even funnier sense than the mythical one was a real problem on early research computers (e.g. the {R1}; see {grind crank}). If a program that depended on a peculiar instruction hadn't been run in quite a while, the user might discover that the {opcodes} no longer did the same things they once did. ("Hey, so-and-so needs an instruction to do such-and-such. We can {snarf} this opcode, right? No one uses it.")
Another classic example of this sprang from the time an {MIT} hacker found a simple way to double the speed of the unconditional jump instruction on a {PDP-6}, so he patched the hardware. Unfortunately, this broke some fragile timing software in a music-playing program, throwing its output out of tune. This was fixed by adding a defensive initialisation routine to compare the speed of a timing loop with the real-time clock; in other words, it figured out how fast the PDP-6 was that day, and corrected appropriately.
[{Jargon File}]
(2002-02-22)

software theft
[legal] 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 estimated that European software houses alone lose $6 billion per year through the unlawful copying and distribution of software, with much of this loss being through business users rather than "basement hackers". One Italian pirating operation employed over 100 staff and had a turnover of $10m.
It is illegal to: 1. Copy or distribute software or its documentation without the permission or licence of the copyright owner. 2. Run purchased software on two or more computers simultaneously unless the licence specifically allows it. 3. Knowingly or unknowingly allow, encourage or pressure employees to make or use illegal copies sources within the organisation. 4. Infringe laws against unauthorised software copying because a superior, colleague or friend compels or requests it. 5. Loan software in order that a copy be made of it.
When software is upgraded it is generally the case that the licence accompanying the new version revokes the old version. This means that it is illegal to run both the old and new versions as only the new version is licensed.
Both individuals and companies may be convicted of piracy offences. Officers of a company are also liable to conviction if the offences were carried out by the company with their consent. On conviction, the guilty party can face imprisonment for up to two years (five in USA), an unlimited fine or both as well as being sued for copyright infringement (with no limit) by the copyright owner.
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}.
(2003-06-17)

software through pictures
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
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}.
[{Jargon File}]

softy
(IBM) {Hardware} hackers' term for a {software} expert who is largely ignorant of the mysteries of hardware.
(1995-01-11)

soh
SOH
{Start Of Header}

sohio
SOHIO
An early system on the {IBM 705}.
[Listed in CACM 2(5):16 (May 1959)].
(1995-01-11)

soho
SoHo
{small-office/home-office.}

soif
SOIF
{Summary Object Interchange Format}

soj
SOJ
{Small Outline J}

sol
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
Solaris
[operating system] {Sun Microsystems, Inc.}'s version of the {Unix} {operating system}. As well as the core operating system, Solaris inludes networking software, the {Java Virtual Machine}, the {CDE}/Desktop that includes an {X11}-based {windowing environment} and {graphical user interface}.
Sun claim that Solaris is not just an operating system but an "operating environment".
Solaris 1.x was a retroactive (marketing?) name for {SunOS} 4.1.x (where x]=1).
Solaris 2.x (which is the first version most people call "Solaris") includes SunOS5.x, which is an SVR4-derived Unix, {OpenWindows} 3.x, and {tooltalk}.
Version 2.7 ("Solaris 7") was around in 1999-03-02. Version 2.8 was released in June 2000. Current version: 9, as of 2002-07-15.
{Home (http://www.sun.com/solaris/)}.
(2002-07-15)

solidstate storage device
solid-state storage device
[storage] Any memory component with no moving parts, typically built around some kind of semiconductor {integrated circuit}. An example is {bubble memory}.
See also: {RAM disk}.
(2001-12-31)

solo
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
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
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
SOM
System Object Model. An implementation of CORBA by IBM.

somar dumpacl
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
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
some random X
[jargon] Used to indicate a member of class X, with the implication that Xs are interchangeable. "I think some random cracker tripped over the guest timeout last night."
See also {J. Random}.
[{Jargon File}]
(1995-03-03)

sonata
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
SONET
{Synchronous Optical NETwork}

sony playstation
Sony Playstation
{Playstation}

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

sorcerers apprentice mode
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)}.
[{Jargon File}]
(1999-10-08)

sort
1. [application, algorithm] To arrange a collection of items in some specified order. The items - {records} in a file or data structures in memory - consist of one or more {fields} or members. One of these fields is designated as the "sort key" which means the records will be ordered according to the value of that field. Sometimes a sequence of key fields is specified such that if all earlier keys are equal then the later keys will be compared. Within each field some ordering is imposed, e.g. ascending or descending numerical, {lexical ordering}, or date.
Sorting is the subject of a great deal of study since it is a common operation which can consume a lot of computer time. There are many well-known sorting {algorithms} with different time and space behaviour and programming {complexity}.
Examples are {quicksort}, {insertion sort}, {bubble sort}, {heap sort}, and {tree sort}. These employ many different data structures to store sorted data, such as {arrays}, {linked lists}, and {binary trees}.
2. [tool] The {Unix} utility program for sorting lines of files.
{Unix manual page}: sort(1).
(1997-02-12)

sorting
See {sort}.

sos
SOS
1. {Scheme Object System}.
2. An infamously {losing} text editor. Once, back in the 1960s, when a text editor was needed for the {PDP-6}, a hacker crufted together a {quick-and-dirty} "stopgap editor" to be used until a better one was written. Unfortunately, the old one was never really discarded when new ones (in particular, {TECO}) came along. SOS is a descendant ("Son of Stopgap") of that editor, and many {PDP-10} users gained the dubious pleasure of its acquaintance. Since then other programs similar in style to SOS have been written, notably the early font editor BILOS /bye'lohs/, the Brother-In-Law Of Stopgap (the alternate expansion "Bastard Issue, Loins of Stopgap" has been proposed).
3. The {PDP-10} instruction to decrease a value. Oppose {AOS}.
[{Jargon File}]

sound
1. {audio}.
2. [logic] An {inference system} A is sound with respect to another system B if A can only reach conclusions which are true in B. A {type inference} system is considered sound with respect to a {semantics} if the type inferred for an expression is the same as the type inferred for the meaning of that expression under the semantics.
The dual to soundness is {complete}ness.
(1995-03-01)

sound blaster
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" cgjkqsxzc -] "2" dt -] "3" l -] "4" mn� -] "5" r -] "6"
Other characters are ignored and repeated characters are encoded as though they were a single character. Encoding stops when the resulting string is four characters long, adding trailing "0"s if it is shorter. For example, "SMITH" or "SMYTHE" would both be encoded as "S530".
(1995-01-05)

soundness
The quality of being {sound} (2).

source
{source code}

source code
[language, programming] (Or "source", or rarely "source language") The form in which a computer program 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 code escrow
[software] An arrangement where some {source code} is held in {escrow} by a third party as long as it is supported by the vendors, but should they cease to support it, it becomes the property of the purchasers so that they can arrange for its continued maintenance.
(1999-12-14)

source language
{source code}

source of all good bits
[jargon, job] A person from whom (or a place from which) useful information may be obtained. If you need to know about a program, a {guru} might be the source of all good bits. The title is often applied to a particularly competent secretary.
[{Jargon File}]
(2001-01-27)

source package
[software] A collection (usually an {archive} file) containing all the files necessary to build and modify a piece of software.
A {Debian} source package includes the original source archive (.orig.tar.gz), Debianisation diffs (-[debian-version].diff.gz) and a Debian source control file (-[debian-version].dsc).
(2000-05-31)

source route
[messaging] An {electronic mail address} which specifies the route the message should take as a sequence of {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}

southbridge
[architecture] The {integrated circuit} in a {core logic} {chip set} that controls the {IDE} bus, {USB}, {plug-n-play} support, the {PCI}-{ISA} bridge, keyboard/mouse controller, {power management}, and various other features. One brand provides {sound card} functions.
Other functions are provided by the {northbridge} chip.
{(http://www.maximumpc.com/terminator/terminator_s.html)}.
(2000-01-15)

sp
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
SP2
{SP/2}
[Which is correct?]

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

spacecadet keyboard
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.
[{Jargon File}]
(1994-12-05)

spacewar
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"?]
[{Jargon File}]
(1994-11-07)

spade
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.
[{Jargon File}]
(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}.
[{Jargon File}]

spam
1. [messaging] (From Hormel's Spiced Ham, via the Monty Python "Spam" song) To post irrelevant or inappropriate messages to one or more {Usenet} {newsgroups}, {mailing lists}, or other messaging system in deliberate or accidental violation of {netiquette}.
It is possible to spam a newsgroup with one well- (or ill-) planned message, e.g. asking "What do you think of abortion?" on soc.women. This can be done by {cross-post}ing, e.g. any message which is crossposted to alt.rush-limbaugh and alt.politics.homosexuality will almost inevitably spam both groups. (Compare {troll} and {flame bait}).
Posting a message to a significant proportion of all newsgroups is a sure way to spam Usenet and become an object of almost universal hatred. Canter and Siegel spammed the net with their Green card post.
If you see an article which you think is a deliberate spam, DO NOT post a {follow-up} - doing so will only contribute to the general annoyance. Send a polite message to the poster by private e-mail and CC it to "postmaster" at the same address. Bear in mind that the posting's origin might have been forged or the apparent sender's account might have been used by someone else without his permission.
The word was coined as the winning entry in a 1937 competition to choose a name for Hormel Foods Corporation's "spiced meat" (now officially known as "SPAM luncheon meat"). Correspondant Bob White claims the modern use of the term predates Monty Python by at least ten years. He cites an editor for the Dallas Times Herald describing Public Relations as "throwing a can of spam into an electric fan just to see if any of it would stick to the unwary passersby."
{Usenet} newsgroup: {news:news.admin.net-abuse}.
See also {netiquette}.
2. (A narrowing of sense 1, above) To indiscriminately send large amounts of unsolicited {e-mail} meant to promote a product or service. Spam in this sense is sort of like the electronic equivalent of junk mail sent to "Occupant".
In the 1990s, with the rise in commercial awareness of the net, there are actually scumbags who offer spamming as a "service" to companies wishing to advertise on the net. They do this by mailing to collections of {e-mail} addresses, Usenet news, or mailing lists. Such practises have caused outrage and aggressive reaction by many net users against the individuals concerned.
3. (Apparently a generalisation of sense 2, above) To abuse any network service or tool by for promotional purposes.
"AltaVista is an {index}, not a promotional tool. Attempts to fill it with promotional material lower the value of the index for everyone. [...] We will disallow {URL} submissions from those who spam the index. In extreme cases, we will exclude all their pages from the index." -- {Altavista}.
4. [jargon, programming] To crash a program by overrunning a fixed-size {buffer} with excessively large input data.
See also {buffer overflow}, {overrun screw}, {smash the stack}.
5. [chat, games] (A narrowing of sense 1, above) To flood any {chat} forum or {Internet game} with purposefully annoying text or macros. Compare {Scrolling}.
(2003-09-21)

spamdex
[World-Wide Web] (Presumably from "{spam}", "index") {word spamming}.
"Spamdexing has come a long way from the halcyon days of the summer of 1995. Back then, all one needed to do was add the word 'sex' a thousand times at the end of a Web page to attract attention from the likes of Lycos. The search-engine operators caught on fast" -- {Andrew Leonard, Hotwired 1996 (http://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
SPAR
Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959).

sparc
SPARC
1. [processor] {Scalable Processor ARChitecture}.
2. [database] {ANSI/SPARC Architecture}.
(1999-02-27)

sparc international inc
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)

sparc xterminal 1
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)

sparcstation
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
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
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 (pounds)15,450 - �20,500 for 71 and �21,700 - (pounds)25,000 for the 712. UK availability was planned for April 1995.
(1994-12-02)

sparcsystem 4
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)

spark
SPARK
[language] An annotated subset of {Ada} supported by tools supplied by {Praxis Critical Systems} (originally by PVL).
{Home (http://www.sparkada.com)}.
(2001-07-12)

sparks
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
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
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
SPD
{Serial Presence Detect}

spdl
SPDL
Standard Page Description Language
A draft within the ODA standard.
(1995-03-28)

spe
SPE
{Software Practice and Experience}

speakeasy
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
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
{specification}

spec
Spec
A specification language. It expresses {black box} interface specifications for large distributed systems with {real-time} constraints. It incorporates conceptual models, {inheritance} and the event model. It is a descendant of {MSG.84}.
["An Introduction to the Specification Language Spec", V. Berzins et al, IEEE Software 7(2):74-84 (Mar 1990)].

spec cfp92
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
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)

spec rate
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)

spec ratio
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)

specbasefp92
SPECbase_fp92
A variant of {SPECfp92} that reports "baseline" results, using stricter run rules.
(1994-11-14)

specbaseint92
SPECbase_int92
A variant of {SPECint92} that reports "baseline" results, using stricter run rules.
(1994-11-14)

specbaserate
SPECbaserate
A variant of {SPECrate} that reports "baseline" results, using stricter run rules.
See {SPECrate_base_fp92}, {SPECrate_base_int92}.
(1994-11-14)

specfp92
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
SPECIAL
A SRI specification language. [HDM?]
["SPECIAL - A Specification and Assertion Language", L. Robinson et al, TR CSL-46, SRI, Jan 1987].

special interest group
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)

specialcase
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}.
[{Jargon File}]

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

specification
[jargon] (spec) A document describing how some system should work.
(2001-02-06)

specint92
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
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 toward floating-point. Customers' workloads are different, some integer-only, some floating-point intensive, some mixed. Current processors have developed their strengths in a more diverse way (some more emphasizing integer performance, some more floating-point performance) than in 1989.
Some SPECmark results are available {here (ftp://ftp.cdf.toronto.edu/pub/spectable)}.
See also {SPECint92}, {SPECfp92}, {SPECrate_int92}, {SPECrate_fp92}.
(1994-11-15)

specmark89
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 superseded by {CINT92} and {CFP92}.
(1994-11-29)

specol
SPECOL
["SPECOL - A Computer Enquiry Language for the Non-Programmer", B.T. Smith, Computer J 11:121 (1968)].

specratebasefp92
SPECrate_base_fp92
[benchmark] A variant of {SPECrate_fp92} that reports "baseline" results, using stricter run rules.
(1994-11-15)

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

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

spectral band replication
Spectral Band Replication
[audio, compression] (SBR) Guessing the nontransmitted higher frequency range of a compressed audio file by some helper bits (transmiited with the stream) and the transmitted base band. SBR allows a restoration (not reconstruction) of the upper frequency range without lots of bits. It was developed by {Coding Technology (http://www.codingtechnolgy.com/)}, and is useful for medium and high quality coding at low and medium data rates. It is used by {Digital Radio Mondiale} and {MP3 Pro}.
(2001-12-22)

spectrum
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
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
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
SPEED
Early system on LGP-30. Listed in CACM 2(5):16 (May 1959).

speedcoding
Speedcoding
[language] A {pseudocode} {interpreter} for mathematics on {IBM 701} and {IBM 650} written by John Backus in 1953.
[Sammet 1969, p. 130].
(2000-03-27)

speedcoding 3
Speedcoding 3
[language] [Listed in CACM 2(5):16, May 1959].
(2000-03-27)

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

speedometer
A pattern of lights displayed on a linear set of LEDs (today) or nixie tubes (yesterday, on ancient mainframes). The pattern is shifted left every N times the operating system goes through its {main loop}. A swiftly moving pattern indicates that the system is mostly idle; the speedometer slows down as the system becomes overloaded. The speedometer on Sun Microsystems hardware bounces back and forth like the eyes on one of the Cylons from the wretched "Battlestar Galactica" TV series.
Historical note: One computer, the GE 600 (later Honeywell 6000) actually had an *analog* speedometer on the front panel, calibrated in instructions executed per second.
[{Jargon File}]

spell
{incantation}

spelling flame
[messaging] A {Usenet} posting ostentatiously correcting a previous article's spelling, possibly as a way of casting scorn on the point the article was trying to make, instead of actually responding to that point (compare {dictionary flame}). Of course, people who are more than usually slovenly spellers are prone to think *any* correction is a spelling flame. It's an amusing comment on human nature that spelling flames themselves often contain spelling errors.
[{Jargon File}]
(1994-11-22)

sperry corporation
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
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
SPG
System Program Generator. A compiler-writing language.
["A System Program Generator", D. Morris et al, Computer J 13(3) (1970)].

spga
SPGA
{Staggered Pin Grid Array}

spi
SPI
1. [company] {Software in the Public Interest, Inc.}.
2. [hardware] {Serial Peripheral Interface}.
(2003-07-13)

spice lisp
Spice Lisp
[language] A flavour of {Lisp}, the sources of which (in Lisp) are available from {CMU}.
(1998-03-14)

spid
SPID
Service Provider ID

spider
[World-Wide Web] (Or "robot", "crawler") A program that automatically explores the {World-Wide Web} by retrieving a document and recursively retrieving some or all the documents that are referenced in it. This is in contrast with a normal {web browser} operated by a human that doesn't automatically follow links other than {inline images} and {URL redirection}.
The {algorithm} used to pick which references to follow strongly depends on the program's purpose. {Index}-building spiders usually retrieve a significant proportion of the references. The other extreme is spiders that try to validate the references in a set of documents; these usually do not retrieve any of the links apart from redirections.
The {standard for robot exclusion} is designed to avoid some problems with spiders.
Early examples were {Lycos} and {WebCrawler}.
{Home (http://info.webcrawler.com/mak/projects/robots/robots.html)}.
(2001-04-30)

spiderweb
Spiderweb
[tool] A program for creating versions of {Knuth}'s {WEB} self-documenting programs ("{literate programming}").
{(ftp://princeton.edu/)}.
(1999-08-26)

spiffy
/spi'fee/ 1. Said of programs having a pretty, clever, or exceptionally well-designed interface. "Have you seen the spiffy {X} version of {empire} yet?" This was common mainstream slang during the 1940s.
2. Said sarcastically of a program that is perceived to have little more than a flashy interface going for it. Which meaning should be drawn depends delicately on tone of voice and context.
[{Jargon File}]

spike
[jargon] To defeat a selection mechanism by introducing a (sometimes temporary) device that forces a specific result. The word is used in several industries; telephone engineers refer to spiking a relay by inserting a pin to hold the relay in either the closed or open state, and railroaders refer to spiking a track switch so that it cannot be moved. In programming environments it normally refers to a temporary change, usually for testing purposes (as opposed to a permanent change, which would be called {hard-coded}).
(1999-10-18)

spill
{register spilling}

spin
Equivalent to {buzz}. More common among {C} and {Unix} programmers.
[{Jargon File}]

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
SPIT
Language for IBM 650. (See IT).

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

spk
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
SPL
1. Synchronous Programming Language. A DSP language. "Introduction to the SPL Compiler", Computalker Consultants, 1986.
2. Space Programming Language. Realtime language used by the US Air Force for aerospace software. Aka SPL/J6. Similar to JOVIAL. "Space Programming Language Development", SAMSO TP 70-325, System Development Corp (Sep 1970). (See CLASP).
3. System Programming Language. HP, 1977. An ALGOL-like language for the HP3000 computer allowing inline assembly code. MPE, the OS for the HP3000 was written in SPL. Pub.No.30000-90024, HP. See also {SPLash!}.
4. Systems Programming Language.
PRIME Computer, 80's. A variant of PL/I used on PRIME computers. PL/I subset G, less I/O plus a few extensions. SPL User's Reference Guide, Prime. (See PL/P.)
5. Systems Programming Language.
A PL/I subset/extension for the P1000.
D.B. Wortman, U Toronto.
Philips Data Sys, Netherlands, 1971.
Symbolic constants, pointer arithmetic, inline assembly code. Used to implement compilers, operating systems, and database.
["Experiences With SPL", J. Klunder in Machine Oriented Higher Level Languages, W. van der Poel, N-H 1974, pp. 385-393].
[Can 4 and 5 be the same?]
6. Student Programming Language.
A translator-interpreter for a dialect of {PL/I}.
7. {Set Priority Level}
[{Jargon File}]
(1995-02-07)

spl1
SPL/1
{SPL/I}

splash
SPLash!
1. Software Research Northwest, 1987. Compiler for SPL[3].
2. Systems Programming LAnguage for Software Hackers. Mentioned in TeX for the Impatient, Paul W. Abrahams, A-W 1990.

splash screen
[programming] An initial screen displayed by interactive software, usually containing a logo, version information, author credits and/or a {copyright} notice.
The term originated among {Macintosh} users and spread, the synonym {banner} was once also used.
[{Jargon File}]
(1998-04-28)

splat
1. Name used in many places (DEC, IBM, and others) for the asterisk ("*") character (ASCII 0101010). This may derive from the "squashed-bug" appearance of the asterisk on many early line printers.
2. Name used by some {MIT} people for the "#" character (ASCII 35).
3. (Rochester Institute of Technology) The {feature key} on a Mac (same as {alt}).
4. An obsolete name used by some people for the {Stanford}/{ITS} {extended ASCII} circle-x character. This character is also called "blobby" and "frob", among other names; it is sometimes used by mathematicians as a notation for "tensor product".
5. An obsolete name for the semi-mythical {Stanford} {extended ASCII} circle-plus character.
See also {ASCII}.
[{Jargon File}]
(1995-01-19)

spli
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
SPLINTER
A {PL/I} {interpreter} with debugging features.
[Sammet 1969, p.600].
(1995-01-19)

split
{chunker}

splitc
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
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
SPM
{Sequential Parlog Machine}

spmd
SPMD
{single processor/multiple data}

spml
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}.
[{Jargon File}]
(1998-01-18)

spoiler
1. A remark which reveals important plot elements from books or movies, thus denying the reader (of the article) the proper suspense when reading the book or watching the movie.
2. Any remark which telegraphs the solution of a problem or puzzle, thus denying the reader the pleasure of working out the correct answer (see also {interesting}). Either sense readily forms compounds like "total spoiler", "quasi-spoiler" and even "pseudo-spoiler".
By convention, {Usenet} news articles which are spoilers in either sense should contain the word "spoiler" in the Subject: line, or guarantee via various tricks that the answer appears only after several screens-full of warning, or conceal the sensitive information via {rot13}, or some combination of these techniques.
[{Jargon File}]
(1995-01-18)

sponge
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}.
[{Jargon File}]
(1995-01-18)

spoo
Variant of {spooge}, sense 1.
[{Jargon File}]

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.
[{Jargon File}]
(1995-01-12)

spool
Spool
[language] An {object-oriented} {logic programming} language.
["An Experience with a Prolog Based Language", K. Fukunaga et al, SIGPLAN Notices 21(11):224-231 (Nov 1986) (OOPSLA '86)].
[{Jargon File}]
(1995-03-25)

spool
[operating system] To send files to some device or program (a "{spooler}" or {demon}) that puts them in a {queue} for later processing of some kind. Without qualification, the spooler is the "print spooler" controlling output of jobs to a {printer}; but the term has been used in connection with other {peripherals} (especially {plotters} and graphics devices) and occasionally even for input devices.
The term "SPOOL" has been attributed to {IBM} as an acronym for {Simultaneous Peripheral Operation On-Line} but it's widely thought to have been contrived for effect.
[No connection with "spool of magnetic tape"?]
[{Jargon File}]
(1996-05-20)

spool
SPOOL
[operating system] Acronym for {Simultaneous Peripheral Operation On-Line}; but see also {spool}.
[{Jargon File}]
(1996-05-20)

spool file
Any file to which data is {spool}ed to await the next stage of processing. Especially used in circumstances where spooling the data copes with a mismatch between speeds in two devices or pieces of software. For example, when you send mail under Unix, it's typically copied to a spool file to await a transport {demon}'s attentions.
[{Jargon File}]

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)

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

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.
Frequency hopping spread spectrum was invented by Hedy Lamarr ("the most beautiful girl in the world", Samson and Delilah etc.) and the composer George Antheil. They held a patent filed in 1942. Direct sequence spread spectrum was invented by Paul Kotowski and Kurt Dannehl at Telefunken.
The technique is used extensively in military communications today. Commercial applications include {cellular telephony} and mobile networking.
["Spread Spectrum Communications", Charles E. Cook et al (Ed.), IEEE Press, New York, 1983. ISBN 0-87942-170-3].
{Hedy Lamarr (http://www.sirius.be/lamarr.htm)}, {(http://www.ncafe.com/chris/pat2/)}.
(2001-08-08)

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)

spring
SPRING
{String PRocessING language}

sprint
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
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
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
SPS
Symbolic Programming System. Assembly language for IBM 1620.

spss
SPSS
{Statistical Package for the Social Sciences}

spss inc
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
SPUR
An early system on the {IBM 650}.
[Listed in CACM 2(5):16 (May 1959)].
(1994-12-01)

spx
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
\sqcap
{LaTeX} inverted square U. The symbol for {greatest lower bound}.
(1994-12-01)

sqcup
\sqcup
{LaTeX} square U. The symbol for {least upper bound}.
(1994-12-01)

sqe
SQE
{Signal Quality Error}
{IEEE 802.3}, {Ethernet}. Equivalent to {D/I/X} "{Collision Presence Test}".
(1995-04-14)

sql
SQL
[language, database, standard] /S Q L/ An industry-standard language for creating, updating and, querying {relational database management systems}.
SQL was developed by {IBM} in the 1970s for use in {System R}. It is the {de facto standard} as well as being an {ISO} and {ANSI} {standard}. It is often embedded in general purpose programming languages.
The first SQL standard, in 1986, provided basic language constructs for defining and manipulating {tables} of data; a revision in 1989 added language extensions for {referential integrity} and generalised {integrity} {constraints}. Another revision in 1992 provided facilities for {schema} manipulation and {data administration}, as well as substantial enhancements for data definition and data manipulation.
Development is currently underway to enhance SQL into a computationally complete language for the definition and management of {persistent}, complex objects. This includes: generalisation and specialisation hierarchies, {multiple inheritance}, user defined {data types}, {triggers} and {assertions}, support for {knowledge based systems}, {recursive query expressions}, and additional data administration tools. It also includes the specification of {abstract data types} (ADTs), object identifiers, {methods}, {inheritance}, {polymorphism}, {encapsulation}, and all of the other facilities normally associated with object data management.
The emerging {SQL3} standard is expected to be complete in 1998.
According to Allen G. Taylor, SQL does _not_ stand for "Structured Query Language". That, like "SEQUEL" (and its pronunciation /see'kw*l/), was just another unofficial name for a precursor of SQL. However, the IBM SQL Reference manual for DB2 and Craig Mullins's "DB2 Developer's Guide" say SQL _does_ stand for "Structured Query Language".
{SQL Standards (http://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].
(2000-07-07)

sql access group
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 module language
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
SQL Server
[database] (Note capitalised)
1. Sybase {Adaptive Server Enterprise}.
2. {Microsoft SQL Server}.
(2003-07-02)

sql server
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)

sql2
SQL2
[database, standard, language] An extended version of the {SQL} {standard}.
(1995-03-20)

sql3
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 (ftp://gatekeeper.dec.com/pub/standards/sql/)}.
[ISO/IEC SQL Revision. ISO-ANSI Working Draft Database Language SQL (SQL3), Jim Melton - Editor, document ISO/IEC JTC1/SC21 N6931, {ANSI}, July 1992].
[Current Status?]
(2002-04-21)

sqlds
SQL/DS
A database package from IBM including a relational DBMS.

sqlwindows
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
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
SQRIBE
[company] The company formerly known as MITI which bought {SQR} from {Sybase}.
{Home (http://www.sqribe.com/)}.
(1998-09-24)

sqsubseteq
\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
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 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}.
[{Jargon File}]

squareheaded boyfriend
square-headed boyfriend
{square-headed girlfriend}

squareheaded girlfriend
square-headed girlfriend
[humour] A computer.
(1999-01-15)

squeak
Squeak
[language] 1. [graphics]
["Squeak: A Language for Communicating with Mice", L. Cardelli et al, Comp Graphics 19(3):199-204, July 1985].
See {Newsqueak}.
2. A {Smalltalk} implementation and a media {authoring} tool by members of the original {Xerox PARC} team which created Smalltalk ({Alan Kay}, Dan Ingalls, et al). Squeak is an {open-source} implementation, with a highly portable {virtual machine} implemented in a subset of Smalltalk (translated into {C} and compiled by a C {compiler} of the target {platform}).
{Squeak Home (http://www.squeak.org/)}.
{SqueakCentral (http://www.squeakland.org/)}.
(2002-11-03)

squiggol
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
[networking] The {country code} for Suriname.
(1999-01-27)

sr
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 flipflop
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)

sram
SRAM
{static random access memory}

srapi
SRAPI
{Speech Recognition Application Program Interface}

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

sri
SRI
{SRI International}

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: Menlo Park, California, USA; Cambridge, UK.
(2003-04-12)

srl
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
SRP
A {data link layer} {protocol}.

ss7
SS7
{Signalling System 7}

ssa
SSA
{Single Static Assignment} {Serial Storage Architecture}

ssadm
SSADM
A software engineering method and toolset required by some UK government agencies.

ssba
SSBA
{Suite Synthetique des Benchmarks de l'AFUU}

sse
SSE
{Streaming SIMD Extensions}

sse2
SSE-2
[architecture] {Intel Corporation}'s extention of their {SSE} {floating point} {SIMD} instructions to handle 64-bit floating point numbers. SSE-2 was introduced with the {Pentium 4}.
(2001-12-23)

ssh
[operating system] 1. {Steve's Shell}.
2. {Secure Shell}.
(1997-01-07)

ssi
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
SSII
{Societe de Service en Ingenierie Informatique}

ssl
S/SL
{Syntax/Semantic Language}

ssl
SSL
1. [language] {Synthesizer Specification Language}.
2. [language] {Syntax/Semantic Language} (S/SL).
3. [networking, World-Wide Web] {Secure Sockets Layer}.
(1996-09-08)

ssleay
SSLeay
[networking, security, protocol] A free implementation of {Netscape}'s {Secure Socket Layer} {protocol}, coded from scratch, using only the publically available documentation of the various protocols, by Eric Young in Australia.
SSLeay supports the {DES}, {RSA}, {RC4}, and {IDEA} {encryption} {algorithms}.
[Home?]
(2000-12-07)

ssma
SSMA
[chat] some such meaningless acronym.
(1998-10-30)

ssr
SSR
{Scalable Sampling Rate}

st
[networking] The {country code} for Sao Tome and Principe.
(1999-01-27)

stab
STAB
[language] A descendent of {BCPL}.
(1996-08-25)

stab11
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
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] (See below for synonyms) A data structure for storing items which are to be accessed in last-in first-out order.
The operations on a stack are to create a new stack, to "push" a new item onto the top of a stack and to "pop" the top item off. Error conditions are raised by attempts to pop an empty stack or to push an item onto a stack which has no room for further items (because of its implementation).
Most processors include support for stacks in their {instruction set 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!
[{Jargon File}]
(1995-04-10)

stack environment control dump machine
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}

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.
[{Jargon File}]
(1994-11-01)

stack traceback
[programming] (The results of) determining the sequence of nested procedure calls a program has made up to a certain point in its execution. A traceback may also show values of procedure arguments and {local variable}s stored on the stack.
(1995-03-21)

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)

stage2
STAGE2
A {macro} language.
["The Mobile Programming System: STAGE2", W.M. Waite, CACM 13:415 (1970)].
(1994-10-27)

staggered pin grid array
Staggered Pin Grid Array
[hardware] (SPGA) A style of {integrated circuit} socket or pin-out with a staggered grid of pins around the edge of the socket, positioned as several squares, one inside the other.
SPGA is commonly used on {motherboards} for {processors}, e.g. {Socket 5}, {Socket 7} and {Socket 8}.
See also {PGA}.
[Better description?]
(1999-08-04)

staircase
{jaggies}

staircasing
{jaggies}

stake
@stake
[security, software] A computer security development group and consultancy dedicated to researching and documenting security flaws that exist in {operating systems}, {network} {protocols}, or software.
@stake publishes information about security flaws through advisories, research reports, and tools. They release the information and tools to help system administrators, users, and software and hardware vendors better secure their systems.
L0pht merged with @stake in January 2000.
{@stake home (http://www.atstake.com/research/redirect.html)}.
(2003-06-12)

stale pointer bug
[programming] (Or "aliasing bug") A class of subtle programming errors that can arise in code that does {dynamic allocation}, especially via {malloc} or equivalent.
If several {pointers} address (are "aliases for") a given hunk of storage, it may happen that the storage is freed or reallocated (and thus moved) through one alias and then referenced through another, which may lead to subtle (and possibly intermittent) lossage depending on the state and the allocation history of the malloc {arena}. This bug can be avoided by never creating aliases for allocated memory, or by use of a {higher-level language}, such as {Lisp}, which employs a {garbage collector}.
The term "aliasing bug" is nowadays associated with {C} programming, it was already in use in a very similar sense in the {ALGOL 60} and {Fortran} communities in the 1960s.
See also {smash the stack}, {fandango on core}, {memory leak}, {memory smash}, {spam}.
[{Jargon File}]
(1995-05-09)

stallman richard m
Stallman, Richard M.
{Richard Stallman}

standalone
stand-alone
[jargon] Capable of operating without other programs, libraries, computers, hardware, networks, etc. Exactly what is absent is presumed to be obvious from context.
"We only run Windows on stand-alone PCs because it's too dangerous to run it on networked ones."
(1998-02-11)

standard
[standard] Standards are necessary for {interworking}, {portability}, and {reusability}. They may be {de facto standards} for various communities, or officially recognised national or international standards.
{Andrew Tanenbaum}, in his Computer Networks book, once said, "The nice thing about standards is that there are so many of them to choose from", a reference to the fact that competing standards become a source of confusion, division, obsolescence, and duplication of effort instead of an enhancement to the usefulness of products.
Some bodies concerned in one way or another with computing standards are {IAB} ({RFC} and {STD}), {ISO}, {ANSI}, {DoD}, {ECMA}, {IEEE}, {IETF}, {OSF}, {W3C}.
(1999-07-06)

standard commands for programmable instruments
Standard 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 dechange et de transfert
Standard d'Echange et de Transfert
[standard] (SET) A French {standard} for exchange of {CAD} data.
(1998-03-07)

standard deviation
[statistics] (SD) A measure of the range of values in a set of numbers. Standard deviation is a statistic used as a measure of the dispersion or variation in a distribution, equal to the square root of the {arithmetic mean} of the squares of the deviations from the arithmetic mean.
The standard deviation of a random variable or list of numbers (the lowercase greek sigma) is the square of the {variance}. The standard deviation of the list x1, x2, x3...xn is given by the formula:
sigma = sqrt(((x1-(avg(x)))^2 + (x1-(avg(x)))^2 + ... + (xn(avg(x)))^2)/n)
The formula is used when all of the values in the population are known. If the values x1...xn are a random sample chosen from the population, then the sample Standard Deviation is calculated with same formula, except that (n-1) is used as the {denominator}.
[{dictionary.com (http://dictionary.com/)}].
["Barrons Dictionary of Mathematical Terms, second edition"].
(2003-05-06)

standard for robot exclusion
[World-Wide Web] A proposal to try to prevent the havoc wreaked by many of the early {World-Wide Web} {robots} when they retrieved documents too rapidly or retrieved documents that had side effects (such as voting). The proposed standard for robot exclusion offers a solution to these problems.
{(http://info.webcrawler.com/mak/projects/robots/norobots.html)}.
(1996-03-23)

standard for the exchange of product model data
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
Standard Generalised Markup Language
[spelling] {ISO} spell it "{Standard Generalized Markup Language}".
(1996-12-13)

standard generalized markup language
Standard Generalized Markup Language
[language, text] (SGML) A generic {markup} language for representing documents. SGML is an International Standard that describes the relationship between a document's content and its structure. SGML allows document-based information to be shared and re-used across applications and computer {platforms} in an open, vendor-neutral format. SGML is sometimes compared to {SQL}, in that it enables companies to structure information in documents in an open fashion, so that it can be accessed or re-used by any SGML-aware application across multiple platforms.
SGML is defined in "ISO 8879:1986 Information processing -- Text and office systems -- Standard Generalized Markup Language (SGML)", an {ISO} standard produced by {JTC} 1/SC 18 and amended by "Amendment 1:1988".
Unlike other common document file formats that represent both content and presentation, SGML represents a document's content {data} and structure (interrelationships among the data). Removing the presentation from content establishes a neutral format. SGML documents and the information in them can easily be re-used by publishing and non-publishing {applications}.
SGML identifies document elements such as titles, paragraphs, tables, and chapters as distinct objects, allowing users to define the relationships between the objects for structuring data in documents. The relationships between document elements are defined in a {Document Type Definition} (DTD). This is roughly analogous to a collection of {field} definitions in a {database}. Once a document is converted into SGML and the information has been 'tagged', it becomes a database-like document. It can be searched, printed or even programmatically manipulated by SGML-aware applications.
Companies are moving their documents into SGML for several reasons:
Reuse - separation of content from presentation facilitates multiple delivery formats like {CD-ROM} and {electronic publishing}.
Portability - SGML is an international, platform-independent, standard based on {ASCII} text, so companies can safely store their documents in SGML without being tied to any one vendor.
Interchange - SGML is a core data standard that enables SGML-aware applications to inter-operate and share data seamlessly.
A central SGML document store can feed multiple processes in a company, so managing and updating information is greatly simplified. For example, when an aeroplane is delivered to a customer, it comes with thousands of pages of documentation. Distributing these on paper is expensive, so companies are investigating publishing on CD-ROM. If a maintenance person needs a guide for adjusting a plane's flight surfaces, a viewing tool automatically assembles the relevant information from the document {repository} as a complete document. SGML can be used to define attributes to information stored in documents such as security levels.
There are few clear leaders in the SGML industry which, in 1993, was estimated to be worth US $520 million and is projected to grow to over US $1.46 billion by 1998.
A wide variety tools can be used to create SGML systems. The SGML industry can be separated into the following categories:
Mainstream Authoring consists of the key {word processing} vendors like {Lotus}, {WordPerfect} and {Microsoft}.
SGML Editing and Publishing includes traditional SGML authoring tools like {ArborText}, {Interleaf}, {FrameBuilder} and {SoftQuad Author}/Editor.
SGML Conversions is one of the largest sectors in the market today because many companies are converting legacy data from mainframes, or documents created with mainstream word processors, into SGML.
Electronic Delivery is widely regarded as the most compelling reason companies are moving to SGML. Electronic delivery enables users to retrieve information on-line using an intelligent document viewer.
Document Management may one day drive a major part of the overall SGML industry.
SGML Document Repositories is one of the cornerstone technologies that will affect the progress of SGML as a data standard.
Since 1998, almost all development in SGML has been focussed on {XML} - a simple (and therefore easier to understand and implement) subset of SGML.
{"ISO 8879:1986//ENTITIES Added Latin 1//EN" (http://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}.
["The SGML Handbook", Charles F. Goldfarb, Clarendon Press, 1991, ISBN 0198537379. (Full text of the ISO standard plus extensive commentary and cross-referencing. Somewhat cheaper than the ISO document)].
["SGML - The User's Guide to ISO 8879", J.M. Smith et al, Ellis Harwood, 1988].
[Example of some SGML?]
(2000-05-31)

standard inputoutput
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
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 io
standard I/O
{standard input/output}

standard lisp
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
Standard ML
[language] (SML) Originally an attempt by Robin Milner [rm@lfcs.edinburgh.ac.uk] ca. 1984 to unify the dialects of {ML}, SML has evolved into a robust general-purpose language. Later versions have been maintained by D. B. MacQueen, Lal George [george@research.att.com], and J. H. Reppy [jhr@research.att.com] at AT&T, and A. W. Appel [appel@princeton.edu].
SML is {functional}, with {imperative} 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
Standard ML of New Jersey
(SML/NJ) An implementation of {SML} by {Andrew Appel} at {Princeton} [Appel@princeton.edu] and {Dave MacQueen} at {AT&T}. Version 0.93.
["Standard ML of New Jersey", A. Appel et al, "Proc Third Intl Symp on Prog Lang Impl and Logic Programming", LNCS Springer 1991].
Versions for Unix, Mac. {(ftp://cs.yale.edu/pub/ml)}, {(ftp://research.att.com/dist/ml)}. Mailing list: sml@cs.cmu.edu.

standard 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 artificial intelligence laboratory
Stanford Artificial Intelligence Laboratory
[body, education] (SAIL) /sayl/, not /S-A-I-L/ An important site in the early development of {LISP}; with the {MIT AI Lab}, {BBN}, {CMU}, {XEROX PARC}, and the {Unix} community, one of the major wellsprings of technical innovation and hacker-culture traditions (see the {WAITS} entry for details). The SAIL machines were shut down in late May 1990, scant weeks after the MIT AI Lab's ITS cluster was officially decommissioned.
[{Jargon File}]
(2001-06-22)

stanford artificial intelligence language
Stanford Artificial Intelligence Language
[language] (SAIL) Dan Swinehart & Bob Sproull, Stanford AI Project, 1970. A large ALGOL 60-like language for the DEC-10 and DEC-20. Its main feature is a symbolic data system based upon an associative store (originally called LEAP). Items may be stored as unordered sets or as associations (triples). Processes, events and interrupts, contexts, backtracking and record garbage collection. Block- structured macros. "Recent Developments in SAIL - An ALGOL-based Language for Artificial Intelligence", J. Feldman et al, Proc FJCC 41(2), AFIPS (Fall 1972). (See MAINSAIL).
The Stanford Artificial Intelligence Language used at {SAIL} (the place). It was an ALGOL 60 derivative with a coroutining facility and some new data types intended for building search trees and association lists.
A number of interesting software systems were coded in SAIL, including early versions of {FTP} and {TeX} and a document formatting system called {PUB}.
In 1978, there were half a dozen different operating systems for the PDP-10: WAITS (Stanford), ITS (MIT), TOPS-10 (DEC), CMU TOPS-10 (CMU), TENEX (BBN), and TOPS-20 (DEC, after TENEX).
SAIL was ported from {WAITS} to {ITS} so that {MIT} researchers could make use of software developed at {Stanford University}. Every port usually required the rewriting of I/O code in each application.
[{Jargon File}]
(2001-06-22)

stanford research institute
Stanford Research Institute
Former name of {SRI International}.

stanford university
Stanford University
[education] A University in the city of Palo Alto, California, noted for work in computing, especially {artificial intelligence}. See {SAIL}.
(2003-02-28)

staple
STAPLE
[language] A programming language written at Manchester (University?) and used at {ICL} in the early 1970s for writing the test suites. STAPLE was based on {Algol 68} and had a very advanced {optimising compiler}.
(2003-02-28)

staple
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
STAR 0
Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959).

star network
[networking] A {network} topology where every {node} has a direct connection (only) to the central node, which might be a {hub}, {switch}, or {server}.
(1999-10-29)

starburst
StarBurst
An active DBMS from IBM Almaden Research Center.

starlisp
StarLISP
{*LISP}

starmod
StarMOD
{*MOD}

starset
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
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
Start Of Header
[character] (SOH) {mnemonic} for {ASCII} 1.
[What header?]
(1996-05-31)

start of text
Start Of Text
[character] (STX) {Mnemonic} for {ASCII} 2.
(1996-05-31)

start tag
{tag}

state
[storage, architecture, jargon, theory] How something is; its configuration, attributes, condition, or information content. The state of a system is usually temporary (i.e. it changes with time) and volatile (i.e. it will be lost or reset to some initial state if the system is switched off).
A state may be considered to be a point in some {space} of all possible states. A simple example is a light, which is either on or off. A complex example is the electrical activation in a human brain while solving a problem.
In computing and related fields, states, as in the light example, are often modelled as being {discrete} (rather than continuous) and the transition from one state to another is considered to be instantaneous. Another (related) property of a system is the number of possible states it may exhibit. This may be finite or infinite. A common model for a system with a finite number of discrete state is a {finite state machine}.
[{Jargon File}]
(1996-10-13)

state diagram
{state transition diagram}

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
State University of New York
[body] (SUNY) The public university system of New York State, USA, with campuses throughout the state.
(1995-03-01)

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.

static analysis
[theory, programming] A family of techniques of program analysis where the program is not actually executed (as opposed to dynamic analysis), but is analyzed by tools to produce useful information.
Static analysis techniques range from the most mundane (statistics on the density of comments, for instance) to the more complex, {semantics}-based techniques.
Qualities sought in static analysis techniques are {soundness} and {completeness}.
(2003-04-12)

static database management system
[database] (static DBMS) A {database} consisting of "information-based relationships", one that is rigorously structured to facilitate retrieval and update in terms of inherent relationships. This creates a static environment wherein the locations of the related records are already known. Typical static DBMS are either hierarchical ({IMS}, {System 2000}) or a {CODACYL} (network or plex) DBMS (such as {TOTAL}, {IDMS}, {IDS}, {DMS-2}). These environments facilitate rapid, high volume processing of data.
The opposite is a {dynamic database management system}.
(1998-10-07)

static dbms
static DBMS
{static database management system}

static link
[compiler] (Or "access link" or "environment link") A pointer from an {activation record} to the activation record for the textually enclosing {scope}. A static link is only required in a statically (lexically) scoped language.
The number of static links to follow may be determined statically (at compile time). It is simply the difference in {lexical nesting depth} between the declaration and the reference.
See also {display}.
(1995-03-07)

static nested scope
[programming] Where the {scope} of an {identifier} is fixed at {compile-time} to be the smallest {block} ({begin}/end, {function}, or {procedure} body) containing the identifier's {declaration}. This means that an identifier declared in some block is only accessible within that block and from procedures declared within it.
This term is used in the {Python} community.
Compare {lexical scope}.
(2002-02-18)

static nested scoping
{static nested scope}

static ram
static 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
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
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
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
StatMUX
{statistical time division multiplexing}

stb
STB
{set-top box}

std
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}.
{rfc.net (http://www.rfc.net/)}.
(1994-11-30)

std 1
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
STD 13
[networking, standard] One of the {STD}s defining the {Domain Name System}.
(1997-12-15)

std 15
STD 15
The {STD} defining {Simple Network Management Protocol}.
(1994-11-14)

std 2
STD 2
[networking, standard] The document listing the current {Internet} {Assigned Numbers}.
[Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1340, USC/Information Sciences Institute, July 1992].
(2001-04-08)

std 9
STD 9
The {STD} defining {File Transfer Protocol} (FTP).
(1995-02-07)

stderr
{standard input/output}

stdin
{standard input/output}

stdio
{standard input/output}

stdioh
stdio.h
[programming] {standard input/output} {header file}.
(1996-01-28)

stdm
STDM
{statistical time division multiplexing}

stdout
{standard input/output}

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

steampowered
steam-powered
Old-fashioned or underpowered; archaic. This term does not have a strong negative loading and may even be used semi-affectionately for something that clanks and wheezes a lot but hangs in there doing the job.
[{Jargon File}]

steelman
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
STENSOR
L. Hornfeldt, Stockholm, mid-80's. Symbolic math, especially General Relativity. Implemented on top of SHEEP and MACSYMA.

step
STEP
{Standard for the exchange of product model data}

stephen cole kleene
Stephen Cole Kleene
{Stephen Kleene}

stephen jobs
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
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
Stepstone Corp
[company] A company founded by Brad Cox, responsible for {Objective C}.
Telephone: +1 (203) 426-1875.
(1996-08-04)

stepwise refinement
{top-down design}

stereogram
A two-dimensional image which, when viewed correctly appears three-dimensional. E.g. {SIRDS} or {SIRTS}.
{(ftp://katz.anu.edu.au/pub/stereograms)}.
(1994-11-03)

sterling software inc
Sterling Software, Inc.
[company] A software company which was bought out by {Computer Associates International, Inc.}
{Acquisition (http://ca.com/acq/sterling/)}.
(2002-04-20)

steve jobs
Steve Jobs
{Stephen Jobs}

steve wozniak
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)

steves shell
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)

stft
STFT
{Short Term Fourier Transform}

stfw
STFW
{Search The Fucking Web}

sticksstones
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".
[{Jargon File}]
(1994-11-03)

stil
STIL
STatistical Interpretive Language.
["STIL User's Manual", C.F. Donaghey et al, Indust Eng Dept, U Houston (Aug 1969)].

sting
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
STk
[language, LISP, graphics] A {Scheme} {interpreter} blended with Ousterhout's {Tk} package by Erick Gallesio [eg@unice.fr]. STk expresses all of Tk as Scheme objects. STk includes a slow {CLOS}/{Dylan}-like {object-oriented} extension.
STk almost conforms to {R4RS} and runs on {SunOS} 4.1.x and {Ultrix}/{MIPS}.
Latest version: 4.0.1, as of 2000-09-24.
{(ftp://kaolin.unice.fr/pub/STk-1.00.tar.gz)}. {(ftp://ftp.cs.indiana.edu/pub/scheme-repository/imp/STk-2.1.tar.Z)}.
(2000-12-16)

stmp
STMP
Did you mean {SMTP}?

stochastic
{probabilistic}

stockkeeping unit
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
STOIC
{STring Oriented Interactive Compiler}

stomp on
To inadvertently overwrite something important, usually automatically. "All the work I did this weekend got stomped on last night by the nightly server script." Compare {scribble}, {mangle}, {trash}, {scrog}, {roach}.
[{Jargon File}]

stone
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
Stone Age
[jargon] In computer folklore, an ill-defined period from {ENIAC} (ca. 1943) to the mid-1950s; the great age of electromechanical {dinosaurs}. Sometimes used for the entire period up to 1960-61 (see {Iron Age}); however, it is more descriptive to characterise the latter period in terms of a "Bronze Age" era of {transistor}-logic, pre-{ferrite core memory} machines with {drum} or {CRT} mass storage (as opposed to just {mercury delay lines} and/or relays).
More generally, the term is used pejoratively for ancient hardware or software, even by survivors from the {Stone Age}.
[{Jargon File}]
(2003-09-27)

stone knives and bearskins
(From the Star Trek Classic episode "The City on the Edge of Forever") A term traditionally used to describe (and deprecate) computing environments that are grotesquely primitive in light of what is known about good ways to design things. As in "Don't get too used to the facilities here. Once you leave SAIL it's stone knives and bearskins as far as the eye can see".
Compare {steam-powered}.
[{Jargon File}]
(1995-01-24)

stoneman
Stoneman
The requirements, written by the {HOLWG} of the US {DoD} in Feb 1980, that led to APSE.
["Requirements for Ada Programming Support Environments: STONEMAN", US Dept of Defense, Feb 1980].
(1995-01-24)

stop bit
In serial communications, where each bit of the message is transmitted in sequence, stop bits are extra "1" bits which follow the data and any {parity} bit. They mark the end of a unit of transmission (normally a byte or character).
For example, characters on an {EIA-232} {serial line} may have one or two stop bits added. Some {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."
[{Jargon File}]
(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
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 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.
[{Jargon File}]

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
Story of Mel
{The story of Mel}

stp
STP
{shielded twisted pair}

stp
StP
{Software through Pictures}

stp4
STP4
A statistical language.

strachey christopher
Strachey, Christopher
{Christopher Strachey}

strand
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
Strand88
A commercial implementation of {Strand} from Strand Software Technologies Ltd., UK and Strand Software, Beaverton, OR, USA. E-mail: [strand88@sstl.uucp].

stratus
Stratus
[company] One of the leading manufacturers of {fault-tolerant} computer systems. While virtually all of Stratus' core hardware and software is sold into the financial services, telecommunications, travel and transportation, and gaming these markets, a broad range of {middleware} and {applications} are developed and marketed by Stratus, its subsidiaries, and third party partners.
Yearly sales $609M, profits $43.5M (1996).
{Home (http://www.stratus,com)}.
(1997-04-24)

strawman
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
["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)

streaming simd extensions
Streaming SIMD Extensions
[architecture] (SSE) {Intel Corporation}'s {floating point} {SIMD} extention of their {Pentium} {microprocessor} architecture. SSE was formerly know as KNI (Katmai New Instructions). It was introduced with the {Pentium III}.
{Intel Pentium III (http://developer.intel.com/design/pentiumiii/prodbref/)}.
{ipoem (http://www.ipoem.com/technology/Docs/pentium4.html)}.
(2003-07-13)

streamoriented
stream-oriented
{connection-oriented}

streams
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
STRESS
STRuctual Engineering Systems Solver.
A system for structural analysis problems in Civil Engineering. STRESS was superseded by {STRUDL}.
["STRESS: A User's Manual", S.J. Fenves et al, MIT Press 1964].
[Sammet 1969, p. 612].
(1995-01-31)

stress testing
[testing] Testing aimed at investigating the behaviour of a software or hardware equipment in out of ordinary operating conditions.
(1998-03-27)

strict
A function f is strict in an argument if
f bottom = bottom
(See {bottom}). In other words, the result depends on the argument so evaluation of an application of the function cannot terminate until evaluation of the argument has terminated.
If the result is only {bottom} when the argument is bottom then the function is also {bottom-unique}.
See also {strict evaluation}, {hyperstrict}.
(1995-01-25)

strict evaluation
{Call-by-value} evaluation order is sometimes called "strict evaluation" because, in a sequential system, it makes functions behave as though they were {strict}, in the sense that evaluation of a function application cannot terminate before evaluation of the argument. Similarly, languages are called strict if they use {call-by-value} argument passing.
Compare {eager evaluation}, {lazy evaluation}.
(1994-12-21)

strided
/str:'d*d/ (scientific computing) Said of a sequence of memory reads and writes to addresses, each of which is separated from the last by a constant interval called "the stride length", or just "the stride". These can be a worst-case access pattern for {cache} schemes when the stride length is a multiple of the {cache line} size.
Strided references are often generated by loops through an {array}, and (if the data is large enough that access-time is significant) it can be worthwhile to tune for better locality by inverting double loops or by partially unrolling the outer loop of a loop nest.
[{Jargon File}]
(1994-12-21)

string
[programming] A sequence of {data} values, usually {bytes}, which usually stand for {characters} (a "character string"). The {mapping} between values and characters is determined by the {character set} which is itself specified implcitly or explicitly by the environment in which the string is being interpreted.
The most common character set is {ASCII} but, since the late 1990s, there has been increased interest in larger character sets such as {Unicode} where each character is represented by more than eight {bits}.
Most programming languages consider strings (e.g. "124:shabooya:\n", "hello world") basically distinct from numbers which are typically stored in fixed-length {binary} or {floating-point} representation.
A {bit string} is a sequence of {bit}s.
(1999-12-21)

string expression interpreter
String EXpression Interpreter
{String Oriented Symbolic Language}

string oriented interactive compiler
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
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
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
STROBES
{Shared Time Repair of Big Electronic Systems}

stroke
The oblique stroke character, "/", ASCII 47.
See {ASCII} for other synonyms.
[{Jargon File}]

strong typing
[programming] Strict enforcement of {type} rules with no exceptions. All types are known at {compile time}, i.e. are {statically bound}. With variables that can store values of more than one type, incorrect type usage can be detected at {run time}.
Strong typing catches more errors at compile time than {weak typing}, resulting in fewer run-time {exceptions}.
The languages {Ada}, {Java}, and {Haskell} are strongly typed. {Pascal} is (almost) strongly typed.
{C} and {C++} are sometimes described as strongly typed, but are perhaps better described as {weakly typed}.
(2000-07-04)

strongarm
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
Stroustrup, Bjarne
{Bjarne Stroustrup}

struct
[programming] A data type in {C} and {C++} corresponding to a {record} in {Ada} or {Pascal} or a {tuple} in {functional programming}. A struct has one or more members, each of which may have different types. It is used to group associated data together.
(1995-02-14)

structural recursion
The process of transforming an expression by expressing its structure as a syntax tree and applying a certain transformation rule to each kind of node, starting from the top. Rules for non-{leaf 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)

structure diagram
[programming, data] A pictorial representation of the composition, grouping and relationship of data items.
(1998-06-11)

structure of management information
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)

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)

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
Structured Query Language
{SQL}

strudel
[character] Common (spoken) name for the commercial at sign, "@", {ASCII} 64.
[{Jargon File}]
(1995-03-13)

strudl
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
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.
[{Jargon File}]

student
STUDENT
D.G. Bobrow 1964. Early query system. Sammet 1969, p.664.

student pli
Student PL/I
[language] A translator-{interpreter} for a {PL/I} subset derived from {SPL}.
["Student PL/I Compiler", R.A. Vowels, RMIT, Melbourne, 1971].
(1996-01-19)

studly
Impressive; powerful. Said of code and designs which exhibit both complexity and a virtuoso flair. Has connotations similar to {hairy} but is more positive in tone. Often in the emphatic "most studly" or as noun-form "studliness". "Smail 3.0's configuration parser is most studly."
[{Jargon File}]

studlycaps
[jargon] /stuhd'lee-kaps/ A hackish form of silliness similar to {BiCapitalisation} for trademarks, but applied randomly and to arbitrary text rather than to trademarks. ThE oRigiN and SigNificaNce of thIs pRacTicE iS oBscuRe.
(1995-03-01)

stuffit
Stuffit
[tool, file format] (filename extension: .sit) A file {archiving} and {compression} utility, developed by {Aladdin Systems, Inc.}. Stuffit was originally developed for the {Macintosh} and is still the Mac standard tool for compression and archiving (compressing multiple files into one). Stuffit is now also available for {Microsoft Windows} and {Linux}. Compared to the standard Windows tool, {WinZip}, it is faster and gives better compression.
Stuffit archives can be extracted with Stuffit Expander.
{Stuffit Home (http://www.stuffit.com/)}.
(2003-09-20)

stupids
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.
[{Jargon File}]

stupidsort
stupid-sort
Synonym {bogo-sort}.

sturgeons law
Sturgeon's Law
"Ninety percent of everything is crap". Derived from a quote by science fiction author Theodore Sturgeon, who once said, "Sure, 90% of science fiction is crud. That's because 90% of everything is crud." Oddly, when Sturgeon's Law is cited, the final word is almost invariably changed to "crap". Compare {Ninety-Ninety Rule}. Though this maxim originated in SF fandom, most hackers recognise it and are all too aware of its truth.
[{Jargon File}]

stx
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
SUB
{Substitute}

subband encoding
An audio {compression} technique where the sound is split into frequency bands and then parts of the signal which the ear cannot detect are removed, e.g. a quiet sound masked by a loud one. The remaining signal is encoded using variable bit-rates with more bits per sample being used in the mid frequency range.
Subband encoding is used in {MPEG-1}.
(1994-11-02)

subclass
{derived class}

subject
[programming] In {subject-oriented programming}, a subject is a collection of {classes} or class fragments whose {class hierarchy} models its domain in its own, subjective way. A subject may be a complete application in itself, or it may be an incomplete fragment that must be composed with other subjects to produce a complete application. Subject composition combines class hierarchies to produce new subjects that incorporate functionality from existing subjects.
(1999-08-31)

subject index
[information science] An information resource that contains references to other resources, categorised by subject, usually in a {hierarchy}.
{Yahoo} is the most popular {Internet} subject index. Like most {other subject indices
(http://www.yahoo.com/Computers_and_Internet/Internet/World_Wide_Web/Searching_the_Web/Web_Directories/)}, Yahoo is arranged {ontologically}.
Subject indices are not to be confused with {search engines}, which are based not on subject, but instead on {relevance}, although (1) this difference is often (possibly rightly) hidden from the unsophisticated user, and (2) future integration of {knowledge representation} into relevance ranking {algorithms} will make this a hazy distinction.
(1997-04-09)

subjectoriented programming
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
\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)

subsetequational language
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
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
SuccessoR
A language for {distributed computing} derived from {SR}.
["SuccessoR: Refinements to SR", R.A. Olsson et al, TR 84-3, U Arizona 1984].
(1994-12-15)

successor
{daughter}

sucking mud
(Or "pumping mud") (Applied Data Research) Crashed or {wedged}. Usually said of a machine that provides some service to a network, such as a {file server}. This Dallas regionalism derives from the East Texas oilfield lament, "Shut 'er down, Ma, she's a-suckin' mud". Often used as a query. "We are going to reconfigure the network, are you ready to suck mud?"
[{Jargon File}]
(1994-12-15)

sue
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
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
SUIF
Stanford University Intermediate Format.
A register-oriented intermediate language.
(1994-12-01)

suit
1. Ugly and uncomfortable "business clothing" often worn by non-hackers. Invariably worn with a "tie", a strangulation device that partially cuts off the blood supply to the brain. It is thought that this explains much about the behaviour of suit-wearers.
2. A person who habitually wears suits, as distinct from a techie or hacker.
See {loser}, {burble}, {management}, {Stupids}, {SNAFU principle}, and {brain-damaged}.
[{Jargon File}]
(1998-07-01)

suitably small
[jargon, mathematics] (From mathematical jargon) An expression used ironically to characterise unquantifiable behaviour that differs from expected or required behaviour. For example, suppose a newly created program came up with a correct full-screen display, and one publicly exclaimed: "It works!" Then, if the program dumped {core} on the first mouse click, one might add: "Well, for suitably small values of `works'."
Compare the characterisation of pi under {for values of}.
[{Jargon File}]
(1997-09-21)

suite synthetique des benchmarks de lafuu
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)

sum of products type
{algebraic data type}

summary object interchange format
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
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
SUMMER SESSION
An early system on {MIT}'s {Whirlwind}.
[Listed in CACM 2(5):16 (May 1959)].
(1995-01-19)

sun
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.
[{Jargon File}]
(1995-01-19)

sun microsystems inc
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)

sun2 workstation
Sun-2 Workstation
[computer] A {Unix} {workstation} produced by {Sun Microsystems, Inc.}, based on the {Motorola 68000}. Followed by the {Sun-3 Workstation}.
[Details? Dates?]
(2001-03-11)

sun3 workstation
Sun-3 Workstation
[computer] A {Unix} {workstation} produced by {Sun Microsystems, Inc.} in the 1980s, based on the {Motorola 68020}. Successor to the {Sun-2 Workstation}, followed by the {Sun-4 Workstation}. The Sun-3 had a custom {MMU}. A couple of mutant models used an entirely different architecture.
[Details? Dates?]
(2001-03-11)

sun4 workstation
Sun-4 Workstation
[computer] A {Unix} {workstation} produced by {Sun Microsystems, Inc.} in the late 1980s[?], based on {SPARC} processors. The Sun-4 followed the {Sun-3 Workstation}. Later SPARC-based workstations were called "{SPARCstations}".
[Details? Dates? Was "Sun-4" a SPARCstation?]
(2001-03-11)

sunos
SunOS
[operating system] {Sun Microsystems}' version of {Unix} for Sun {workstations}. SunOS is similar to {BSD Unix} with some {SVR4} features and {OpenWindows} 3.0.
After version 4, SunOS was integrated into Sun's {Solaris} "operating environment".
(1999-03-26)

sunspots
1. Notional cause of an odd error. "Why did the program suddenly turn the screen blue?" "Sunspots, I guess."
2. Also the cause of {bit rot} - from the myth that sunspots will increase {cosmic rays}, which can flip single bits in memory. See also {phase of the moon}.
[{Jargon File}]

sunstools
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
SunView
A windowing system from {Sun Microsystems}, superseded by {NeWS}.

suny
SUNY
{State University of New York}

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

super pascal
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)

super source quench
A special packet designed to shut up an {Internet} host. The {Internet Protocol} (IP) has a control message called Source Quench that asks a host to transmit more slowly on a particular connection to avoid congestion. It also has a Redirect control message intended to instruct a host to send certain packets to a different local router. A "super source quench" is actually a redirect control packet, forged to look like it came from a local router, that instructs a host to send all packets to its own local loopback address. This will effectively tie many Internet hosts up in knots. Compare {godzillagram}, {breath-of-life packet}.
[{Jargon File}]

super vga
Super VGA
{Super Video Graphics Array}

super video graphics adapter
Super Video Graphics Adapter
{Super Video Graphics Array}

super video graphics adaptor
Super Video Graphics Adaptor
{Super Video Graphics Array}

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)

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
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+/news40.para)}.
[Current status?]
(1994-12-15)

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

superpipelined
1. Traditional {pipelined} architectures have a single pipeline stage for each of: instruction fetch, instruction decode, memory read, {ALU} operation and memory write. A superpipelined {processor} has a {pipeline} where each of these logical steps may be subdivided into multiple {pipeline} stages.
2. Marketese for {pipelined}.

superprogrammer
A prolific programmer; one who can code exceedingly well and quickly. Not all hackers are superprogrammers, but many are. Productivity can vary from one programmer to another by three orders of magnitude. For example, one programmer might be able to write an average of three lines of working code in one day, while another, with the proper tools, might be able to write 3,000. This range is astonishing; it is matched in very few other areas of human endeavour.
The term "superprogrammer" is more commonly used within such places as IBM than in the hacker community. It tends to stress naive measures of productivity and to underweight creativity, ingenuity, and getting the job *done* - and to sidestep the question of whether the 3,000 lines of code do more or less useful work than three lines that do the {Right Thing}. Hackers tend to prefer the terms {hacker} and {wizard}.
[{Jargon File}]

superscalar
[architecture] A superscalar architecture is a {uniprocessor} that can execute two or more {scalar} operations in parallel. Some definitions include {superpipelined} and {VLIW} architectures; others do not. Superscalar architectures (apart from superpipelined architectures) require multiple {functional 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).

supertalk
SuperTalk
Silicon Beach Software. A superset of HyperTalk used in SuperCard.

superuser
[Unix] Synonym {root}, {avatar}. This usage has spread to non-Unix environments; the superuser is any account with all {wheel} bits on. A more specific term than {wheel}.
[{Jargon File}]

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

supplementary ideographic plane
Supplementary Ideographic Plane
[text, standard] (SIP) The third plane (plane 2) defined in {Unicode}/{ISO 10646}, designed to hold all the {ideographs} descended from Chinese writing (mainly found in Vietnamese, Korean, Japanese and Chinese) that aren't found in the {Basic Multilingual Plane}. The BMP was supposed to hold all ideographs in modern use; unfortunately, many Chinese dialects (like Cantonese and Hong Kong Chinese) were overlooked; to write these, characters from the SIP are necessary. This is one reason even non-academic software must support characters outside the BMP.
{Unicode home (http://www.unicode.org)}.
(2002-06-19)

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 t�te-�-t�te or exchange of {electronic mail} with the software's designer.
[{Jargon File}]
(1995-02-15)

supremum
{least upper bound}

sure
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
SURGE
Sorter, Updater, Report Generator, Etc. IBM 704, 1959. Sammet 1969, p.8.

surjection
[mathematics] A function f : A -] B is surjective or onto or a surjection if f A = B. I.e. f can return any value in B. This means that its {image} is its {codomain}.
Only surjections have {right inverses}, f' : B -] A where f (f' x) = x since if f were not a surjection there would be elements of B for which f' was not defined.
See also {bijection}, {injection}.
(1995-05-27)

surjective
{surjection}

surrogate key
[database] A unique {primary key} generated by the {RDBMS} that is not derived from any data in the database and whose only significance is to act as the primary key.
A surrogate key is frequently a sequential number (e.g. a {Sybase} "{identity column}") but doesn't have to be. Having the key independent of all other columns insulates the database relationships from changes in data values or database design and guarantees uniqueness.
Some database designers use surrogate keys religiously regardless of the suitability of other {candidate keys}. However, if a good key already exists, the addition of a surrogate key will merely slow down access, particularly if it is indexed.
Compare: {intelligent key}.
(1999-12-07)

suspension
In {lazy evaluation}, a suspension (or in Henderson's terminology, a "recipe") is a {closure} with a flag indicating whether the expression has been evaluated or not. When the expression is evaluated the first time, this flag is set. Subsequent requests for the value of the expression will not attempt to re-evaluate it.
(1995-02-06)

suzie cobol
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}.
[{Jargon File}]
(1995-02-06)

sv
[networking] The {country code} for El Salvador.
(1999-01-27)

svc
SVC
1. [operating system] {Supervisor Call}.
2. [networking] {switched virtual connection}.
(2001-10-25)

svg
SVG
{Scalable Vector Graphics}

svga
SVGA
[hardware] {Super Video Graphics Array} (not "Adapter").
(1995-11-16)

svga monitor
SVGA monitor
[hardware, graphics] A {monitor} capable of displaying the output of an {SVGA} card.
(1997-02-25)

svid
SVID
{System V Interface Definition}

svideo
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
SVR4
{AT&T}/{USL} {Unix} {System V} Release 4.
(1995-03-28)

svrc
SVRC
[body] {Software Verification Research Centre}.
(1995-11-14)

svs
SVS
{OS/VS2}

swab
/swob/ The {PDP-11} swap byte instruction mnemonic, as immortalised in the {dd} option "conv=swab".
1. To solve the {NUXI problem} by swapping bytes in a file.
2. The program in V7 Unix used to perform this action, or anything functionally equivalent to it.
See also {big-endian}, {little-endian}, {middle-endian}, {bytesexual}.
[{Jargon File}]

swag
SWAG
[jargon] Scientific (or Silly) Wild Ass Guess. A term used by technical teams when establishing high level sizings for large projects.
(2000-08-09)

swap
[operating system] To move a program from fast-access memory to a slow-access memory ("swap out"), or vice versa ("swap in"). The term often refers specifically to the use of a {hard disk} (or a {swap file}) as {virtual memory} or "swap space".
When a program is to be executed, possibly as determined by a {scheduler}, it is swapped into {core} for processing; when it can no longer continue executing for some reason, or the scheduler decides its {time slice} has expired, it is swapped out again.
This contrasts with "paging" systems in which only parts of a program's memory is transfered.
[{Jargon File}]
(1996-11-22)

swap file
[operating system] A file used by a {program} or, more often, an {operating system} as {swap space}. A swap file is usually allocated as a long contiguous section of a {hard disk} to reduce access time. The disk space used for a swap file can not be used for other things. Under {Microsoft Windows}, swap files are recommended not to exceed three times the available {RAM} and are usually 150 percent of the RAM size.
(1996-11-15)

swap space
[operating system] An area of disk (e.g. a {swap file}) used to store the state of a process that has been {swap}ped out. Under a {virtual memory} system, it is the amount of swap space rather than the amount of {physical memory} which determines the maximum size of a single process and the maximum total size of all active processes.
[{Jargon File}]
(1994-11-03)

swapped in
{swap}

swapped out
{swap}

swapping
{swap}

sweetlambda
SweetLambda
Sugared {lambda-calculus}(?).

swiprolog
SWI-Prolog
[programming] A {Prolog} by Jan Wielemaker [jan@swi.psy.uva.nl] like a superset of {Edinburgh Prolog}. Version 1.7.2. Docking Station is distributed under {General Public License}. It runs on {Sun-4}, {Sun-3}, {Linux}, {DEC} {MIPS} (incomplete), {RS/6000}, {PS2}/{AIX}, {Atari ST}, {Gould PN}, {NeXT}, {VAX}, {HP-UX} (problems), {MS-DOS}, and {OS/2}.
{Home (ftp://swi.psy.uva.nl/pub/SWI-Prolog)}.
{OS/2 (ftp://mpii02999.ag2.mpi-sb.mpg.de/pub/toolw/SWI/)}.
Mailing list: prolog-request@swi.psy.uva.nl.
(2000-03-23)

switch
1. [programming] {switch statement}.
2. [software] {command line option}.
3. [networking] {packet switch}, {circuit switch}.
(1999-01-14)

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)

switched multimegabit data service
Switched Multimegabit Data Service
[networking] (SMDS) An emerging high-speed {datagram}-based public data {network} service developed by {Bellcore} and expected to be widely used by telephone companies as the basis for their data networks.
See also {Metropolitan Area Network}.
(1997-01-31)

switched virtual circuit
{virtual circuit}

switched virtual connection
[networking] (SVC) A {virtual connection} in an {ATM} network set up on demand by the {signalling control point}.
Contrast with {permanent virtual connection}.
(2001-06-29)

switching hub
[networking] A {circuit switching} hub.
(1999-01-01)

swizzle
To convert external names, array indices, or references within a data structure into address pointers when the data structure is brought into main memory from external storage (also called "pointer swizzling"); this may be done for speed in chasing references or to simplify code (e.g. by turning lots of name lookups into pointer dereferences). The converse operation is sometimes termed "unswizzling".
See also {snap}.
[{Jargon File}]

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

sybase sql server
Sybase SQL Server
{Adaptive Server Enterprise}

sydel
SYDEL
A system language, fully typed, with inline {assembly code}, by Jan Garwick, ca 1974.

sygma
SYGMA
A symbolic generator and macro assembler by A.P. Ershov et al of Novosibirsk. For the {BESM-6}, {M-220} and {Minsk-22}.
["SYGMA, A Symbolic Generator and Macroassembler", A.P. Ershov et al, in Symbol Manipulation Languages and Techniques, D.G. Bobrow ed, N-H 1968, pp.226- 246].

sylk
SYLK
{Symbolic Link}

sylvan
Sylvan
[Distributed language?]

symantec
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
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
SymbMath
[mathematics, tool] A small {symbolic mathematics} package for {MS-DOS} which can learn new facts.
Latest version: 2.1.1.
{(Home (http://www.symbmath.com/)}.
(2001-03-26)

symbol manipulation program
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)

symbolang
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
Symbolic Assembler Program
[language] (SAP) The {assembly language} for the {IBM 704}, defined in the late 1950s.
(1994-12-12)

symbolic assembly
SYMBOLIC ASSEMBLY
[language] An early system on the {IBM 705}.
[Listed in CACM 2(5):16, May 1959].
(1996-01-15)

symbolic automatic integrator
Symbolic Automatic INTegrator
[mathematics, tool] (SAINT) A {symbolic mathematics} program written in {Lisp} by J. Slagle at {MIT} in 1961.
[Sammet 1969, p. 410].
(1994-12-08)

symbolic inference
The derivation of new facts from known facts and {inference 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
Symbolic Link
[file format] (SYLK) A standard file format for {spreadsheets}, (not to be confused with {symbolic link}).
[Context? Reference?]
(1999-12-06)

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
Symbolic Mathematical Laboratory
[tool, mathematics] An on-line system under {CTSS} for {symbolic mathematics}. It used a {display screen} and a {light pen}.
[Sammet 1969, p.514].
(1995-04-16)

symbolic mathematics
[mathematics, application] (Or "symbolic math") The use of computers to manipulate mathematical equations and expressions in symbolic form, as opposed to manipulating the numerical quantities represented by those symbols. Such a system might be used for symbolic integration or differentiation, substitution of one expression into another, simplification of an expression, change of subject etc.
One of the best known symbolic mathematics software packages is {Mathematica}. Others include {ALAM}, {ALGY}, {AMP}, {Ashmedai}, {AXIOM*}, {CAMAL}, {CAYLEY}, {CCalc}, {CLAM}, {CoCoA}(?), {ESP}, {FLAP}, {FORM}, {FORMAL}, {Formula ALGOL}, {GAP}, {JACAL}, {LiE}, {Macaulay}, {MACSYMA}, {Magic Paper}, {MAO}, {Maple}, {Mathcad}, {MATHLAB}, {MuMath}, {Nother}, {ORTHOCARTAN}, {Pari}, {REDUCE}, {SAC-1}, {SAC2}, {SAINT}, {Schoonschip}, {Scratchpad I}, {SHEEP}, {STENSOR}, {SYMBAL}, {SymbMath}, {Symbolic Mathematical Laboratory}, {TRIGMAN}, {UBASIC}.
{Usenet} newsgropup: {news:sci.math.symbolic}.
(1995-04-12)

symbolic optimal assembly program
Symbolic Optimal Assembly Program
[language] (SOAP) The {IBM 650}'s {assembly language}. "Optimal" refers to rearranging instructions on slowly rotating {drum memory}.
Versions: SOAP I, SOAP II, CASE SOAP III.
[Listed in CACM 2(5):16, May 1959].
(1994-11-04)

symbolics inc
Symbolics, Inc.
[company] The company which produced the {Lisp Machine}.
{The Symbolics Museum (http://home.brightware.com/~rwk/symbolics/)}.
[Summary?]
(1998-12-13)

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
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
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
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
SYN
1. [character] {Synchronous idle}.
2. [language] A syntactic specification language for {COPS}.
["Metalanguages of the Compiler Production System COPS", J. Borowiec, in GI Fachgesprach "Compiler-Compiler", ed W. Henhapl, Tech Hochs Darmstadt 1978, pp. 122-159].
3. [TCP/IP SYN request?]
(1996-04-17)

sync
/sink/ (Or "synch") 1. To synchronise, to bring into synchronisation.
2. [file system] To force ("{flush}") all pending buffered disk writes to the disk.
3. More generally, to force a number of competing processes or agents to a state that would be "safe" if the system were to crash, i.e. to {checkpoint} in the {database} sense.
[{Jargon File}]
(1994-11-11)

synchronized multimedia integration language
Synchronized Multimedia Integration Language
[hypertext, language, multimedia, text, World-Wide Web] (SMIL) A language based on {Extensible Markup Language} (XML), that enables people without programming or scripting backgrounds to author multimedia presentations in a simple {text editor}. SMIL is suitable for use on the {World-Wide Web}.
For example, a developer can write SMIL to display an {image} after an {audio} track ends.
SMIL uses two main tags: parallel and sequential. It refers to media objects by URLs, allowing them to be shared between presentations and stored on different servers for {load balancing}. The language can also associate different media objects with different bandwidths.
SMIL 1.0 became an official recommendation of the {World Wide Web Consortium} W3C in June 1998.
{W3C (http://www.w3c.org/audiovideo/)}.
(2000-04-21)

synchronous
[operating system, communications] 1. Two or more processes that depend upon the occurrences of specific events such as common timing signals.
2. Occurring at the same time or at the same rate or with a regular or predictable time relationship or sequence.
Opposite: {asynchronous}.
(1996-04-11)

synchronous data link control
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
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 DRAM
{Synchronous Dynamic Random Access Memory}

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 RAM
{Synchronous Graphics Random Access Memory}

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
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
Synchronous Optical NETwork
[networking] (SONET) A {broadband} networking {standard} based on point-to-point {optical fibre} networks. SONET will provide a high-bandwidth "pipe" to support {ATM}-based services.
The SONET standard will establish a digital {hierarchical network} with a consistent worldwide transport scheme. SONET has been designed to take advantage of fibre, in contrast to the {plain old telephone system} which was designed for copper wires.
SONET carries {circuit-switched} data in {frames} at speeds in multiples of 51.84 megabits per second (Mbps) up to 48 * 51.84 Mbps = 2.488 {gigabits} per second. Since SONET uses multiple channels to transmit data, each SONET {frame} can be considered to be a two-dimensional table of bytes that is 9 rows high and 90 columns deep. For every {OC-n} level, SONET can transmit n number of frames at a given time. Groups of frames are called {superframes}.
SONET is the American version of {SDH}.
[Wulf Losee; Corporate Computing 8.92; STACKS; LAN Magazine 10.93].
(1994-11-30)

syncronous
[spelling] It's spelled "{synchronous}".
(1996-12-13)

synflood
[networking] To {flood} another machine with bogus {TCP/IP} {SYN} requests.
(1997-04-07)

synonym ring
[information science] A list of words with related meanings used to broaden the scope of a word search. As well as returning documents which contain a sought-for word a search using a synonym ring might also return documents which contain words in the same synonym ring as a sought-for word. Synonym rings are produced manually and are usually specific to a certain field, e.g. legal knowhow.
(1997-04-09)

syntactic salt
The opposite of {syntactic sugar}, a feature designed to make it harder to write bad code. Specifically, syntactic salt is a hoop the programmer must jump through just to prove that he knows what's going on, rather than to express a program action. Some programmers consider required type declarations to be syntactic salt. A requirement to write "end if", "end while", "end do", etc. to terminate the last block controlled by a control construct (as opposed to just "end") would definitely be syntactic salt. Syntactic salt is like the real thing in that it tends to raise hackers' blood pressures in an unhealthy way. Compare {candygrammar}.
[{Jargon File}]

syntactic sugar
Term coined by Peter Landin for additions to the syntax of a language which do not affect its expressiveness but make it "sweeter" for humans to use. Syntactic sugar gives the programmer an alternative way of coding that is more succinct or more like some familiar notation. It does not affect the expressiveness of the formalism (compare {chrome}).
Syntactic sugar can be easily translated ("desugared") to produce a program in some simpler "core" syntax. E.g. C's "a[i]" notation is syntactic sugar for "*(a + i)". In a (curried) functional language, all operators are really functions and the use of {infix notation} "x+y" is syntactic sugar for function application "(+) x y".
Alan Perlis once quipped, "Syntactic sugar causes cancer of the semicolon."
The variants "syntactic saccharin" and "syntactic syrup" are also recorded. These denote something even more gratuitous, in that they serve no purpose at all. Compare {candygrammar}, {syntactic salt}.

syntax
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 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 tree
[mathematics, theory, language] A {tree} representing the {abstract syntax} of some {tokens} in a {language}.
(1998-11-12)

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

syntaxsemantic language
Syntax/Semantic Language
(S/SL) A specification language for {recursive descent parser}s by Rick C. Holt and Jim Cordy [cordy@cs.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)

synthesis
[programming, specification] The process of deriving (efficient) programs from (clear) specifications.
See also {program transformation}.
(1996-08-23)

synthesizer specification language
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
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}).
[{Jargon File}]

sysdeco mimer ab
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)

sysfrog
sys-frog
/sis'frog/ (the {PLATO} system) A playful variant of "{sysprog}".
[{Jargon File}]
(1994-11-04)

syskey
SYSKEY
[cryptography, operating system, security] A utility that {encrpyts} the {hashed} {password} information in a {SAM} database using a 128-bit {encryption key}.
SYSKEY was an optional feature added in {Windows NT} 4.0 SP3. It was meant to protect against {offline} password {cracking} attacks so that the SAM database would still be secure even if someone had a copy of it. However, in December 1999, a security team from {BindView (http://www.bindview.com/)} found a security hole in SYSKEY which indicates that a certain form of {cryptoanalytic} attack is possible offline. A {brute-force attack} then appeared to be possible.
Microsoft later collaborated with BindView to issue a fix (dubbed the 'Syskey Bug') which appears to have been settled and SYSKEY pronounced secure enough to resist brute-force attack.
According to Todd Sabin of the BindView team RAZOR, the pre-RC3 versions of {Windows 2000} were also affected.
{BindView Security Advisory (http://packetstorm.securify.com/9912-exploits/bindview.syskey.txt)}.
{BindView press release (http://www.bindview.com/news/99/1222.html)}.
{Microsoft bulletin (http://www.microsoft.com/Security/Bulletins/ms99-056.asp)}.
(2000-07-16)

syslisp
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
Sysplex
[operating system] An {IBM} term for communicating {MVS} systems. See also "{Parallel Sysplex}".
(1996-11-23)

sysprog
{Systems programmer}

system
1. The {supervisor} program or {operating system} on a computer.
2. The entire computer system, including input/output devices, the {supervisor} program or {operating system} and possibly other {software}.
3. Any large program.
4. Any method or {algorithm}.
[{Jargon File}]

system 5
System 5
{System V}

system 75
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 account manager
System Account Manager
[cryptography, operating system, security] (SAM) A {password} {database} stored as a {registry file} in {Windows NT} and {Windows 2000}.
The System Account Manager (SAM) database stores users' passwords in a {hashed} format. Since a {hash function} is one-way, this provides some measure of security for the storage of the passwords. In an attempt to enhance the security of the SAM database against {offline cracking}, Microsoft introduced the {SYSKEY} utility in {Windows NT} 4.0.
(2000-07-19)

system administration
[job] Activities performed by a system administrator (or "admin", "sysadmin", "site admin") such as monitoring security configuration, managing allocation of {user names} and {passwords}, monitoring disk space and other resource use, performing {backups}, and setting up new hardware and software.
system administrators often also help users, though in a large organisation this may be a separate job.
Compare {postmaster}, {sysop}, {system management}, {systems programmer}.
[Other tasks?]
(1999-05-02)

system administrator
{system administration}

system analysis
{systems analysis}

system analyst
{systems analysis}

system board
{motherboard}

system call
[operating system, programming] The mechanism used by an {application program} to request service from the {operating system}. System calls often use a special {machine code} instruction which causes the processor to change mode (e.g. to "supervisor mode" or "{protected mode}"). This allows the OS to perform restricted actions such as accessing hardware devices or the {memory management unit}.
(1995-03-01)

system catalog
[database] The {data dictionary} of a {DBMS}. The system catalogue stores {meta-data} including the {schemas} of the {databases}. It is a mini-database, and is usually stored using the DBMS itself in special {tables} called {system tables}. It maybe referred to as being "on line", as it is active, and can be queried by users like any other table.
(1999-04-27)

system control language
System Control Language
[language] (SCL) The {command language} for the {VME/B} {operating system} on the {ICL2900}. SCL was {block structured} and supported strings, lists of strings ("superstrings"), {integer}, {Boolean}, and {array} types. You could trigger a {block} whenever a condition on a variable value occured. It supported {macros} and default arguments. Commands were treated like procedure calls.
["VME/B SCL Syntax", Intl Computers Ltd. 1980].
(2003-01-08)

system f
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
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
System Management Mode
[hardware] (SMM) A reduced power consumption state provided by some {Intel} {microprocessors}. When a {CPU} enters SMM it saves its current state in a special area of {static RAM} called SMRAM (System Management {RAM}) and then runs a program, also stored in SMRAM, the SMM handler.
SMM is implemented in all {Intel} "SL" suffixed CPUs. In June 1993, Intel announced it was discontinuing its SL range and instead making all its current processors SL enhanced.
See also {Auto Idle}.
(1994-11-09)

system management server
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.
[{Jargon File}]
(1995-11-10)

system operator
[job, jargon] (Always abbreviated to "sysop") /sis'op/ A term used in the {BBS} world for the operator of a bulletin-board system (who is usually also the owner).
A common neophyte mistake on {FidoNet} is to address a message to "sysop" in an international {echo}, thus sending it to hundreds of sysops around the world.
Contrast: {system administrator}.
(1999-10-20)

system product interpreter
System Product Interpreter
{Restructured EXtended eXecutor}

system programming language
{Ousterhout's dichotomy}

system r
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)

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 testing
[testing] (Or "application testing") A type of {testing} to confirm that all code modules work as specified, and that the system as a whole performs adequately on the {platform} on which it will be deployed.
System testing should be performed by testers who are trained to plan, execute, and report on application and system code. They should be aware of scenarios that might not occur to the end user, like testing for null, negative, and format inconsistent values. A tester should be able to repeat the steps that caused an error.
(2003-09-24)

system unit
[hardware] The main body of a computer, consisting of a plastic or metal enclosure, the {motherboard}, and (typically) internal {disk drives}, a {power supply}, cooling fans, and whatever circuit boards plugged into the mother board, such as a {video card}.
The system unit is occasionally referred to as the {CPU}, though this really means {central processing unit}.
(2000-08-10)

system v
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
System V Interface Definition
(SVID) A standard allowing source code portability between different {platform}s running Unix System V.
(1995-03-28)

system360
System/360
[operating system] A computer announced by {IBM} on 1964-04-07. Operating System/360 ({OS/360}) was developed for System/360.
[Mainframe? Features?]
(2001-03-23)

systems administrators guild
Systems Administrators Guild
[body, job] (SAGE) A special technical group of the {USENIX Association}.
{Home (http://www.usenix.org/sage)}.
[Details?]
(2001-01-27)

systems analysis
[job] Study of the design, specification, feasibility, cost, and implementation of a computer system for business. What a systems analyst does.
(1997-04-25)

systems analysis definition
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
Systems Application Architecture
[programming] (SAA) {IBM}'s family of standard interfaces which enable {software} to be written independently of {hardware} and {operating system}.
(1997-04-25)

systems development life cycle
Systems Development Life Cycle
[programming] (SDLC) Any logical process used by a {systems analyst} to develop an {information system}, including {requirements}, {validation}, training, and user ownership.
An SDLC should result in a high quality system that meets or exceeds customer expectations, within time and cost estimates, works effectively and efficiently in the current and planned {Information Technology} {infrastructure}, and is cheap to maintain and cost-effective to enhance.
{US DOJ SDLC (http://www.usdoj.gov/jmd/irm/lifecycle/table.htm)}.
(2000-12-24)

systems jock
{jock}

systems network architecture
Systems Network Architecture
[networking] (SNA) {IBM}'s proprietary high level networking {protocol} {standard}, used by IBM and IBM compatible {mainframes}.
Also referred to as "Blue Glue", SNA is a bletcherous protocol once widely favoured at commercial shops. The official IBM definition is "that which binds blue boxes together." It may be relevant that {Blue Glue} is also a 3M product commonly used to hold down carpets in {dinosaur pens}.
[{Jargon File}]
(1994-11-23)

systems operator
{system operator}

systems programmer
[job] (sysprog) A generic job title that covers a variety of specialist roles such as writing low-level code that talks to directly to the {operating system} on a {server}.
Typical skills required are experience of specific operating systems, networking ({TCP/IP}, {ATM}, {Ethernet}, {DNS}), electronic mail ({POP}, {IMAP}, {SMTP}), {web servers}, {RDBMS}, operating system and network security, and hardware ({SCSI}, {hard disks}, and back-up devices).
Contrast: {system administration}.
(1999-09-14)

systems programming
{systems programmer}

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
SysVile
{Missed'em-five}

sz
[networking] The {country code} for Swaziland.
(1999-01-27)

t
\t
{horizontal tabulation}

t
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: 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 kohonen
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)

t lisp
T Lisp
See {T}.

t1
T1
[communications] An {AT&T} term for a {digital carrier} facility used to transmit a {DS1} formatted digital signal at 1.544 megabits per second.
T1 transmission uses a bipolar {Return To Zero} {alternate mark inversion} line coding scheme to keep the DC carrier component from saturating the line.
Although some consider T1 signaling obsolete, much equipment operates at the "T1 rate" and such signals are either combined for transmission via faster circuits, or demultiplexed into 64 kilobit per second circuits for distribution to individual subscribers.
T1 signals can be transported on {unshielded twisted pair} telephone lines. The transmitted signal consists of pips of a few hundred nanoseconds width, each inverted with respect to the one preceding. At the sending end the signal is 1 volt, and as received, greater than 0.01 volts. This requires repeaters about every 6000 feet.
The information is contained in the timing of the signals, not the polarity. When a long sequence of bits in the transmitted information would cause no pip to be sent, "{bit stuffing}" is used so the receiving apparatus will not lose track of the sending clock.
A T1 circuit requires two twisted pair lines, one for each direction. Some newer equipment uses the two lines at half the T1 rate and in {full-duplex} mode; the sent and received signals are separated at each end by components collectively called a "hybrid". Although this technique requires more sophisticated equipment and lowers the line length, an advantage is that half the sent and half the received information is mixed on any one line, making low-tech wiretaps less a threat.
See also {Integrated Services Digital Network}.
(1994-11-23)

t1 line
T1 line
{T1}

t1 rate
T1 rate
{T1}

t3
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 line
{T3}

ta
TA
{Terminal Adaptor}

taa
TAA
{Track Average Amplitude}

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

tabseparated values
tab-separated values
[file format] (TSV) A file format used as a portable representation of a {database}. Each line represents one entry or {record}; and in every line, each field is separated from the next by a tab character ({HT}).
Compare {CSV}.
(2001-03-16)

tabsol
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
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
TAC
1. Translator Assembler-Compiler. For {Philco 2000}.
2. {Terminal Access Controller}.

tacl
TACL
Tandem Advanced Command Language. Tandem, about 1987. The shell language used in Tandem computers.

tacpol
TACPOL
[language] A {PL/I}-like language used by the US Army for command and control.
(2001-01-31)

tag
[language, text] An {SGML}, {HTML}, or {XML} {token} representing the beginning (start tag: "[p ...]") or end (end tag: "[/p]") of an {element}. In normal SGML {syntax} (and always in {XML}), a tag starts with a "[" and ends with an "]".
In {HTML} jargon, the term "tag" is often used for an "{element}".
(2001-01-31)

tag name
{generic identifier}

tagged image file format
Tagged Image File Format
[file format, graphics] (TIFF) A {file format} used for still-image {bitmaps}, stored in tagged fields. {Application programs} can use the tags to accept or ignore fields, depending on their capabilities.
While TIFF was designed to be extensible, it lacked a core of useful functionality, so that most useful functions (e.g. {lossless} 24-bit colour) requires nonstandard, often redundant, extensions. The incompatibility of extensions has led some to expand "TIFF" as "Thousands of Incompatible File Formats".
Compare {GIF}, {PNG}, {JPEG}.
(1997-10-11)

tagged queueing
[hardware] A method allowing a device or {controller} to process commands received from a {device driver} out of order. It requires that the device driver attaches a tag to each command which the controller or device can later use to identify the response to the command.
Tagged queueing can speed up processing considerably if a controller serves devices of very different speeds, such as an {SCSI} controller serving a mix of {CD-ROMs} and high-speed {disks}. In such cases if a request to fetch data from the CD-ROM is shortly followed by a request to read from the disk, the controller doesn't have to wait for the CD-ROM to fetch the data, it can instead instruct the disk to fetch the data and return the value to the device driver, while the CD-ROM is probably still {seeking}.
(1997-07-04)

tagged types
[programming] {Ada}'s type mechanism in which types can be extended via {single inheritance}.
(2000-02-21)

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}.
[{Jargon File}]
(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}.

tailstrict
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
TAL
{Transaction Application Language}

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

talk mode
[chat] Using a {talk} system. E.g., "{B1FF} had me in talk mode for hours last night. I had to bring his box down just to get him to shut up."
The (1980s?) term now is as dated as talk itself which has been largely replaced by {chat}.
[{Jargon File}]
(1998-01-19)

talker system
{talk}

tall
TALL
[language] TAC List Language.
["TALL - A List Processor for the Philco 2000", J. Feldman, CACM 5(9):484-485 (Sep 1962)].
(1995-03-01)

tall card
[hardware] An expansion card for the {IBM PC AT}. These can be larger than {IBM PC} or {IBM PC XT} cards because the AT case is bigger.
When IBM introduced the PS/2 model 30 (its last gasp at supporting the {ISA}) they made the case lower and many industry-standard tall cards wouldn't fit. This was felt to be a reincarnation of the {connector conspiracy}, done with less style.
See also {short card}.
[{Jargon File}]
(1995-03-01)

tandem application language
Tandem Application Language
{Transaction Application Language}

tandem computers
Tandem Computers
[company] A US computer manufacturer.
Quarterly sales $544M, profits $49M (Aug 1994).
(1994-09-26)

tandy
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
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.
[{Jargon File}]
(1995-02-28)

tanstaafl
TANSTAAFL
/tan'stah-fl/ (From Robert Heinlein's classic "The Moon is a Harsh Mistress") "There Ain't No Such Thing As A Free Lunch".
Often invoked when someone is balking at the prospect of using an unpleasantly {heavyweight} technique, or at the poor quality of some piece of {free software}, or at the {signal-to-noise ratio} of unmoderated {Usenet} newsgroups. "What? Don't tell me I have to implement a {database} back end to get my address book program to work!" "Well, TANSTAAFL you know." This phrase owes some of its popularity to the high concentration of science-fiction fans and political libertarians in hackerdom.
[{Jargon File}]
(1995-02-28)

tao
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
TAOS
{Technology for Autonomous Operation Survivability}

tap
TAP
{Telocator Alphanumeric Protocol}

tap
{hit}

tape
1. {magnetic tape}.
2. {paper tape}.
(1996-05-25)

tape archive
{tar}

tape drive
{magnetic tape drive}

tape head
[hardware] The electromagnetic component in a {magnetic tape drive} which reads and writes magnetic tape as it passes over it. Tape heads need to be cleaned periodically to remove the oxide particles which accumulate on them and can lead to errors.
(1997-03-12)

tape operating system
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
TAPI
{Telephony Application Programming Interface}

tar
[file format] ("Tape ARchive", following {ar}) {Unix}'s general purpose {archive} utility and the file format it uses. Tar was originally intended for use with {magnetic tape} but, though it has several {command line options} related to tape, it is now used more often for packaging files together on other media, e.g. for distribution via the {Internet}.
The resulting archive, a "tar file" (humourously, "tarball") is often compressed, using {gzip} or some other form of compression (see {tar and feather}).
There is a {GNU} version of tar called {gnutar} with several improvements over the standard versions.
{Filename extension}: .tar
{MIME type}: unregistered, but commonly application/x-tar
{Unix manual page}: tar(1).
Compare {shar}, {zip}.
(1998-05-02)

tar and feather
[jargon] (A sick contrivance from the {Unix} {tar} command and the Ku Klux Klan torture method) To create a transportable archive from a group of files by first sticking them together with {tar} (the Tape ARchiver) and then {compress}ing the result. The latter action is dubbed "feathering" (purely for contrived effect) by analogy to what you do with an aeroplane propeller to decrease wind resistance, or with an oar to reduce water resistance; smaller files, after all, slip through comm links more easily.
[{Jargon File}]
(1997-05-26)

tarball
{tar}

targa
[graphics, file format] A graphics data format for {bitmap} {images}. It uses 24 bits per {pixel} and is a common output format for {ray tracing} programs.
(1995-01-05)

targa graphics adaptor
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}

targetmachine description language
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
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 control block
Task Control Block
[architecture] An {MVS} {control block} used to communicate information about {tasks} within an {address space} that are connected to an {MVS} subsystem such as {MQSeries} for {MVS/ESA} or {CICS}.
{FAQ
(http://www-4.ibm.com/software/ts/mqseries/library/manuals/csqfao/CSQFAO22.HTM)}.
(2000-12-30)

task scheduling
[algorithm] The assignment of start and end times to a set of tasks, subject to certain {constraints}. Constraints are typically either time constraints (the payload must be installed before the payload bay doors are closed) or resource constraints (this task requires a small crane and a crane operator).
In the case where the tasks are programs to run concurrently on a computer, this is also known as {multitasking}.
(1998-04-25)

tasm
TASM
Turbo Assembler. {MS-DOS} assembler from Borland.

tass
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}".
[{Jargon File}]

tautological probability
[logic] A notion introduced by Florentin Smarandache whereby the probability of some event is more than one. Tautological probability is used for universally true propositions, i.e. those which do not depend on time, space, subjectivity, etc.
[Florentin Smarandache, "A Unifying Field in Logics. / Neutrosophy: Neutrosophic Probability, Set, and Logic", American Research Press, Rehoboth 1999].
(2001-04-06)

tautological set
[logic] A notion introduced by Florentin Smarandache: An element x(T, I, F) belongs more than sure to the {set} M; here T, I, F are real subsets representing the truth, indeterminacy, and falsity percentages respectively, and sup(T)]100.
tautological set are used for universally true propositions where no parameter such as time, space, or subjectivity influences the truth value.
[{Florentin Smarandache, "A Unifying Field in Logics. / Neutrosophy: Neutrosophic Probability, Set, and Logic", American Research Press, Rehoboth, 1999 (http://www.gallup.unm.edu/~smarandache/neut-ad.htm)}]
(1999-11-24)

tautology
[logic] A {proposition} which is always true.
Compare: {paradox}.
{The Linguistic Smarandache Tautologies, (http://www.gallup.unm.edu/~smarandache/tautolog.txt)}.
(1999-07-28)

tawk
TAWK
{Tiny AWK}

taxis
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}.
[{Jargon File}]

taz
{tgz}

tbf
TBF
{Mean Time Between Failures}

tbil
TBIL
{Tiny Basic Interpreter Language}

tbk
TBK
{Tool Builder Kit}

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

tcarrier system
T-carrier system
[communications] A series of wideband digital data transmission formats originally developed by the {Bell System} and used in North America and Japan.
The basic unit of the T-carrier system is the {DS0}, which has a transmission rate of 64 Kbps, and is commonly used for one {voice circuit}.
Originally the 1.544 megabit per second {T1} format carried 24 pulse-code modulated, time-division multiplexed speech signals each encoded in 64 kilobit per second streams, leaving 8 kilobits per second of framing information which facilitates the synchronisation and demultiplexing at the receiver. {T2} and {T3} circuits channels carry multiple T1 channels multiplexed, resulting in transmission rates of up to 44.736 Mbps.
The T-carrier system uses {in-band signaling} or {bit-robbing}, resulting in lower transmission rates than the {E-carrier system}. It uses a restored polar signal with {303-type} data stations.
Asynchronous signals can be transmitted via a standard which encodes each change of level into three bits; two which indicate the time (within the current synchronous frame) at which the transition occurred, and the third which indicates the direction of the transition. Although wasteful of line bandwidth, such use is usually only over small distances.
T1 lines are made free of direct current signal components by in effect capacitor coupling the signal at the transmitter and restoring that lost component with a "slicer" at the receiver, leading to the description "restored polar".
[Telecommunications Transmission Engineering, Vol. 2, Facilities, AT&T, 1977].
(2001-04-08)

tcb
TCB
1. [jargon] {Trouble Came Back}.
2. [security] ({Orange Book}) {Trusted Computing Base}.
3. [operating system] {Task Control Block}.
[{Jargon File}]
(1998-07-02)

tcgs
TCGS
{Twente Compiler Generator System}

tcix
TC/IX
The LynxOS kernel ported to the MIPS R3000 RISC processor by CDC.

tcl
Tcl
{Tool Command Language}

tcl consortium
Tcl Consortium
[body] A non-profit agency dedicated to promoting {Tcl}.
{Home (http://www.tclconsortium.org/)}.
(1998-11-27)

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

tcldp
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
TclX
{Extended Tcl}

tcm
TCM
{Trellis Code Modulation}

tco
TCO
{Total Cost of Ownership}

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

tcolada
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
TCP
{Transmission Control Protocol}

tcpip
TCPIP
Normally written "{TCP/IP}".

tcpip
TCP/IP
[protocol] {Transmission Control Protocol} over {Internet Protocol}.
The {de facto} {standard} {Ethernet} {protocols} incorporated into {4.2BSD} {Unix}. TCP/IP was developed by {DARPA} for {internetworking} and encompasses both {network layer} and {transport layer} protocols. While {TCP} and {IP} specify two protocols at specific {protocol layers}, TCP/IP is often used to refer to the entire {DoD} {protocol} suite based upon these, including {telnet}, {FTP}, {UDP} and {RDP}.
See also {ICMP}, {SMTP}, {SNMP}.
(1995-03-17)

tcsh
[Unix, shell] A {Unix} {shell} by Christos Zoulas [christos@ee.cornell.edu], based on {csh}. tcsh adds {WYSIWYG} command line editing, command name {completion}, input {history} and various other features.
Version 6.04 runs under many versions of {Unix} and under {OpenVMS}.
{(ftp://ftp.spc.edu/)}.
(1993-07-09)

tcsim
Tcsim
{Time Complex Simulator}

tcvn 5773
TCVN 5773
[human language, standard] A 1993 {Vietnamese} character {standard} that includes {Han} characters.
(2001-01-02)

tcvn 6056
TCVN 6056
[human language, standard] A 1995 {Vietnamese} character {standard} that includes {Han} characters.
(2001-01-02)

td
[networking] The {country code} for Chad.
(1999-01-27)

tdd
TDD
{Telecommunications Device for the Deaf}

tdf
TDF
[language] An {intermediate language}, a close relative of {ANDF}. A TDF program is an {ASCII} stream describing an {abstract syntax tree}.
TDF became part of {TenDRA} in abut 2001.
["TDF Specification", Defence Research Agency/Electronics Division, Great Malvern, England, +44 684 895314].
(2003-05-13)

tdfl
TDFL
Dataflow language. "TDFL: A Task-Level Dataflow Language", P. Suhler et al, J Parallel Dist Comp 9(2):103-115 (Jun 1990).

tdi
TDI
{Transport Driver Interface}

tdm
TDM
1. {Technical Data Management}
2. {Time Division Multiplexing}

tdma
TDMA
{time division multiple access}

tdr
TDR
{time domain reflectometer}

teamwork
Teamwork
[product, software, tool] A {SASD} tool from {Sterling Software}, formerly {CADRE Technologies}, which supports the {Shlaer/Mellor} {Object-Oriented} method and the {Yourdon-DeMarco}, {Hatley-Pirbhai}, {Constantine} and {Buhr} notations.
Teamwork was abandoned when {Computer Associates} acquired Sterling Software in March 2000.
(2002-05-29)

technicaloffice protocol
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
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] {Marketroid} jargon for "{software}", "{hardware}", "{protocol}" or something else too technical to name.
The most flagrant abuse of this word has to be "{Windows NT}" (New Technology) - {Microsoft}'s attempt to make the incorporation of some ancient concepts into their OS sound like real progress. The irony, and even the meaning, of this seems to be utterly lost on Microsoft whose {Windows 2000} start-up screen proclaims "Based on NT Technology", (meaning yet another version of NT, including some {Windows 95} features at last).
See also: {solution}.
(2001-06-28)

technology enabled relationship manager
Technology Enabled Relationship Manager
{Customer Relationship Management}

technology of objectoriented languages and systems
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
TechRef
/tek'ref/ [{MS-DOS}] The original "IBM PC Technical Reference Manual", including the {BIOS} listing and complete schematics for the PC. The only PC documentation in the issue package that's considered serious by real hackers.
[{Jargon File}]

teco
TECO
[editor, text] /tee'koh/ (Originally an acronym for "[paper] Tape Editor and COrrector"; later, "Text Editor and COrrector"]) A {text editor} developed at {MIT} and modified by just about everybody. With all the dialects included, TECO may have been the most prolific editor in use before {Emacs}, to which it was directly ancestral. The first {Emacs} editor was written in TECO.
It was noted for its powerful programming-language-like features and its unspeakably {hairy} {syntax} (see {write-only language}). TECO programs are said to resemble {line noise}. Every string of characters is a valid TECO program (though probably not a useful one); one common game used to be predict what the TECO commands corresponding to human names did.
As an example of TECO's obscurity, here is a TECO program that takes a list of names such as:
Loser, J. Random Quux, The Great Dick, Moby
sorts them alphabetically according to surname, and then puts the surname last, removing the comma, to produce the following:
Moby Dick J. Random Loser The Great Quux
The program is
[1 J^P$L$$ J [.-Z; .,(S,$ -D .)FX1 @F^B $K :L I $ G1 L]$$
(where ^B means "Control-B" (ASCII 0000010) and $ is actually an {alt} or escape (ASCII 0011011) character).
In fact, this very program was used to produce the second, sorted list from the first list. The first hack at it had a {bug}: GLS (the author) had accidentally omitted the "@" in front of "F^B", which as anyone can see is clearly the {Wrong Thing}. It worked fine the second time. There is no space to describe all the features of TECO, but "^P" means "sort" and "J[.-Z; ... L]" is an idiomatic series of commands for "do once for every line".
By 1991, {Emacs} had replaced TECO in hacker's affections but descendants of an early (and somewhat lobotomised) version adopted by {DEC} can still be found lurking on {VMS} and a couple of crufty {PDP-11} {operating systems}, and ports of the more advanced MIT versions remain the focus of some antiquarian interest.
See also {retrocomputing}.
{(ftp://usc.edu/)} for {VAX}/{VMS}, {Unix}, {MS-DOS}, {Macintosh}, {Amiga}.
[Authro? Home page?]
(2001-03-26)

tee
[tool, operating system] A {Unix} command which copies its {standard input} to its {standard output} (like {cat}) but also to a file given as its argument. tee is thus useful in {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).
[{Jargon File}]
(1996-01-22)

tei
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
TELCOMP
[language] A variant of {JOSS}.
[Sammet 1969, p.217].
(1997-04-07)

telecommunication display device
Telecommunication Display Device
{Telecommunications Device for the Deaf}

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
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.
{Home (http://www.tiaonline.org/)}.
[Details?]
(2000-04-24)

telecommuting
The practice of working at home and communicating with your fellow workers through the phone, typically with a computer and modem. Telecommuting saves the employee getting to and from work and saves the employer from supplying support services such as heating and cleaning, but it can also deprive the worker of social contact and support.
(1995-01-05)

teledildonics
[application, virtual reality] /tel"*-dil-do"-niks/ Sex in a computer simulated {virtual reality}, especially computer-mediated sexual interaction between the VR presences of two humans. This practice is not yet possible except in the rather limited form of erotic conversation on {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."
[{Jargon File}]
(1995-02-06)

telematics
The combination of telecommunications and computing. Data communications between systems and devices.
(1995-02-07)

telenet
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
TELEPAC
[networking] The Swiss {PTT} {X.25} network.
(1995-11-09)

telephone application program interface
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
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
Telerat
[abuse, hardware] /tel'*-rat/ Unflattering hackerism for "{Teleray}", a line of extremely losing {terminals}.
[{Jargon File}]
(1995-01-19)

telescript
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
Teletype
[hardware, product] ({tty}) A trademark for a hard-copy {teletypewriter} produced by {Teletype Corporation}.
(2000-04-02)

teletype
{teletypewriter}

teletype corporation
Teletype Corporation
[company] The company which made {Teletype} {teletypewriters}.
Address: Skokie, Illinois, USA.
(2000-04-03)

teletypewriter
[hardware] (Nearly always abbreviated to "teletype" or "{tty}") An obsolete kind of {terminal}, with a noisy mechanical {printer} for output, a very limited {character set}, and poor print quality.
See also {bit-paired keyboard}.
(2000-04-02)

teleuse
TeleUSE
An {interface builder} for {Motif}.

television
[hardware] A dedicated {push media} device for receiving {streaming video} and {audio}, either by terrestrial radio broadcast, satellite or cable.
(1997-11-23)

television interface adaptor
Television Interface Adaptor
[hardware, graphics] (TIA) The graphics chip in the {Atari 2600}, also used as a sound chip for some arcade game.
(1999-12-06)

telnet
TELNET
/tel'net/ 1. The {Internet} {standard} {protocol} for remote login. Runs on top of {TCP/IP}. Defined in {STD} 8, {RFC 854} and extended with options by many other RFCs. {Unix} {BSD} networking software includes a program, telnet, which uses the protocol and acts as a {terminal emulator} for the remote login session. Sometimes abbreviated to TN. {TOPS-10} had a similar program called {IMPCOM}.
2. The US nationwide network into which one dials to access {CompuServe}. It was created by John Goltz, one of the founders and system {guru} of {CompuServe}. He later worked for {Tymshare}, one of CompuServe's big competitors.
[{Jargon File}]

telocator alphanumeric protocol
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
Telon
{CA-Telon}

telos
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
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
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
Tempo
[operating system] The original code name for {Mac OS} version 8.
(1997-10-15)

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

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
Tempura
Language based on temporal logic. "Executing Temporal Logic Programs", B. Moszkowski, Camb U Press 1986.

ten15
Ten15
[language] A universal {intermediate language}, a predecessor to {TDF}.
{Ten15 Home (http://www.mca-ltd.com/martin/Ten15)}.
["Ten15: An Overview", P. Core et al, Royal Signals Radar Establishment TR 3977, Sept 1986].
[Polymorphic?]
(2003-05-13)

tendinitis
{overuse strain injury}

tendra
TenDRA
[language] {TenDRA home (http://www.tendra.org/)}.
[Summary?]
(2003-05-13)

tenfinger interface
ten-finger interface
The interface between two networks that cannot be directly connected for security reasons; refers to the practice of placing two terminals side by side and having an operator read from one and type into the other.
[{Jargon File}]

tennis elbow
{overuse strain injury}

tense
Of programs, very clever and efficient. A tense piece of code often got that way because it was highly {bum}med, but sometimes it was just based on a great idea. A comment in a clever routine by Mike Kazar, once a grad-student hacker at CMU: "This routine is so tense it will bring tears to your eyes." A tense programmer is one who produces tense code.
[{Jargon File}]

tensor product
[mathematics] A function of two {vector spaces}, U and V, which returns the space of {linear maps} from V's {dual} to U.
Tensor product has natural symmetry in interchange of U and V and it produces an {associative} "multiplication" on vector spaces.
Wrinting * for tensor product, we can map UxV to U*V via: (u,v) maps to that linear map which takes any w in V's dual to u times w's action on v. We call this linear map u*v. One can then show that
u * v + u * x = u * (v+x) u * v + t * v = (u+t) * v and hu * v = h(u * v) = u * hv
ie, the mapping respects {linearity}: whence any {bilinear map} from UxV (to wherever) may be factorised via this mapping. This gives us the degree of natural symmetry in swapping U and V. By rolling it up to multilinear maps from products of several vector spaces, we can get to the natural associative "multiplication" on vector spaces.
When all the vector spaces are the same, permutation of the factors doesn't change the space and so constitutes an automorphism. These permutation-induced iso-auto-morphisms form a {group} which is a {model} of the group of permutations.
(1996-09-27)

tenured graduate student
[job] One who has been in graduate school for 10 years (the usual maximum is 5 or 6): a "ten-yeared" student (get it?). Actually, this term may be used of any grad student beginning in his seventh year. Students don't really get tenure, of course, the way professors do, but a tenth-year graduate student has probably been around the university longer than any untenured professor.
[{Jargon File}]
(1996-09-27)

tera
-
{prefix}

terabyte
[unit] 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.
[{Jargon File}]
(1997-07-21)

term
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}.
Current version: 1.15.
{(ftp://tartarus.uwa.edu.au/pub/oreillym/term/term115.tar.gz)}.
2. [business] {Technology Enabled Relationship Management}.
(1999-10-04)

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)

termac
TERMAC
An interactive matrix language.
["Users Guide to TERMAC", J.S. Miller et al, MIT Dec 1968].
(1994-11-04)

termcap
[operating system] (terminal capabilities) A {Unix} database listing different types of terminal (or {terminal emulation}) and the character {strings} to send to make the terminal perform certain functions such as move the {cursor} up one line or clear the screen.
Programs written using termcap can work on any terminal in the database which supports the necessary functions. Typical programs are {text editors} or file viewers like {more}. The termcap routines look for an {environment variable} "TERM" to determine which terminal the user is using.
{terminfo} is a later version of termcap.
(1998-10-30)

terminak
/ter'mi-nak`/ [Caltech, ca. 1979] Any malfunctioning computer terminal. A common failure mode of Lear-Siegler ADM 3a terminals caused the "L" key to produce the "K" code instead; complaints about this tended to look like "Terminak #3 has a bad keyboard. Pkease fix." See {AIDX}, {Nominal Semidestructor}, {Open DeathTrap}, {ScumOS}, {sun-stools}, {Telerat}, {HP-SUX}.
[{Jargon File}]
(1995-04-14)

terminal
1. [hardware] An electronic or electromechanical device for entering data into a computer or a communications system and displaying data received. Early terminals were called {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
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
Terminal Adaptor
[networking, hardware] (TA) Equipment used to adapt {Integrated Services Digital Network} (ISDN) {Basic Rate Interface} (BRI) channels to existing terminal equipment standards such as {EIA-232} and {V.35}. A Terminal Adaptor is typically packaged like a {modem}, either as a {stand-alone} unit or as an interface card that plugs into a computer or other communications equipment (such as a {router} or {PBX}). A Terminal Adaptor does not interoperate with a {modem}; it replaces it.
[ISDN {FAQ}].
(1994-10-03)

terminal brain death
The extreme form of {terminal illness}. What someone who has obviously been hacking continuously for far too long is said to be suffering from.
[{Jargon File}]

terminal emulation
What a {terminal emulator} does.

terminal emulator
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}.
[{Jargon File}]
(1995-02-16)

terminal node
{leaf}

terminal oriented social science
Terminal Oriented Social Science
[project] (TOSS) The Cambridge Project {Project MAC} was an ARPA-funded political science computing project. They worked on topics like survey analysis and simulation, led by Ithiel de Sola Pool, J.C.R. Licklider and Douwe B. Yntema. Yntema had done a system on the {MIT} Lincoln Labs {TX-2} called the {Lincoln Reckoner}, and in the summer of 1969 led a Cambridge Project team in the construction of an experiment called TOSS. TOSS was like {Logo}, with {matrix} operators. A major feature was multiple levels of {undo}, back to the level of the {login} session. This feature was cheap on the Lincoln Reckoner, but absurdly expensive on {Multics}.
(1997-01-29)

terminal productivity executive
Terminal Productivity eXecutive
[operating system] (TPX) A multiple session manager used to access {mainframe} applications. TPX allows you to work in multiple mainframe applications concurrently; lock and unlock your TPX screen; place your applications on hold; logon on to TPX from a different terminal without losing your place; customize your TPX menu; and send a screen image to another TPX user.
[What does it run on?]
(2000-05-08)

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

terms of service
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.
[{Jargon File}]
(1996-06-24)

terrabyte
[spelling] It's spelled "{terabyte}".
(1997-01-23)

terse
Terse
Language for decryption of hardware logic.
["Hardware Logic Simulation by Compilation", C. Hansen, 25th ACM/IEEE Design Automation Conf, 1988].

test
[testing] The process of exercising a product to identify differences between expected and actual behaviour. Typically testing is bottom-up: {unit testing} and {integration testing} by developers, {system testing} by testers, and {user acceptance testing} by users.
{Test coverage} attempts to assess how complete a test has been.
2. The second stage in a {generate and test} search {algorithm}.
[{Jargon File}]
(2003-09-24)

test coverage
Test coverage
[testing] A measure of the proportion of a program exercised by a {test suite}, usually expressed as a percentage. This will typically involve collecting information about which parts of a program are actually executed when running the test suite in order to identify which branches of {conditional statements} which have been taken.
The most basic level of test coverage is {code coverage testing} and the most methodical is {path coverage testing}. Some intermediate levels of test coverage exist, but are rarely used.
The standard {Unix} tool for measuring test coverage is {tcov}, which annotates {C} or {Fortran} source with the results of a test coverage analysis. {GCT} is a {GNU} equivalent.
(2001-05-20)

testing
{test}

tet
TET
Test Environment Toolkit project coordinated by {X/Open}.

tex
TeX
[publication] /tekh/ An extremely powerful {macro}-based text formatter written by {Donald Knuth}, very popular in academia, especially in the computer-science community (it is good enough to have displaced {Unix} {troff}, the other favoured formatter, even at many {Unix} installations).
The first version of TeX was written in the programming language {SAIL}, to run on a {PDP-10} under Stanford's {WAITS} {operating system}.
Knuth began TeX because he had become annoyed at the declining quality of the typesetting in volumes I-III of his monumental "Art of Computer Programming" (see {Knuth}, also {bible}). In a manifestation of the typical hackish urge to solve the problem at hand once and for all, he began to design his own typesetting language. He thought he would finish it on his sabbatical in 1978; he was wrong by only about 8 years. The language was finally frozen around 1985, but volume IV of "The Art of Computer Programming" has yet to appear as of mid-1997. (However, the third edition of volumes I and II have come out). The impact and influence of TeX's design has been such that nobody minds this very much. Many grand hackish projects have started as a bit of {toolsmithing} on the way to something else; Knuth's diversion was simply on a grander scale than most.
{Guy Steele} happened to be at Stanford during the summer of 1978, when Knuth was developing his first version of TeX. When he returned to {MIT} that fall, he rewrote TeX's {I/O} to run under {ITS}.
TeX has also been a noteworthy example of free, shared, but high-quality software. Knuth offers monetary awards to people who find and report a bug in it: for each bug the award is doubled. (This has not made Knuth poor, however, as there have been very few bugs and in any case a cheque proving that the owner found a bug in TeX is rarely cashed). Though well-written, TeX is so large (and so full of cutting edge technique) that it is said to have unearthed at least one bug in every {Pascal} system it has been compiled with.
TeX fans insist on the correct (guttural) pronunciation, and the correct spelling (all caps, squished together, with the E depressed below the baseline; the mixed-case "TeX" is considered an acceptable {kluge} on {ASCII}-only devices). Fans like to proliferate names from the word "TeX" - such as TeXnician (TeX user), TeXhacker (TeX programmer), TeXmaster (competent TeX programmer), TeXhax, and TeXnique.
Several document processing systems are based on TeX, notably {LaTeX} Lamport TeX - incorporates document styles for books, letters, slides, etc., {jadeTeX} uses TeX as a backend for printing from {James' DSSSL Engine}, and {Texinfo}, the {GNU} document processing system. Numerous extensions to TeX exist, among them {BibTeX} for bibliographies (distributed with LaTeX), {PDFTeX} modifies TeX to produce {PDF} and {Omega} extends TeX to use the {Unicode} character set.
For some reason, TeX uses its own variant of the {point}, the {TeX point}.
See also {Comprehensive TeX Archive Network}.
{(ftp://labrea.stanford.edu/tex/)}.
E-mail: [tug@tug.org] (TeX User's group, Oregon, USA).
(2002-03-11)

tex point
TeX point
[unit, text] The variant of the {point} used by {TeX}, equal to 0.3514598035 mm, or 1/72.27 inch.
[Why yet another variant?]
(2002-03-11)

tex78
TeX-78
[language, text] The original version of {TeX}.
(1997-11-20)

tex82
TeX-82
[language, text] The version of {TeX} described in The TeXbook, Donald Knuth, A-W 1984.
(1997-11-20)

texas instruments
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
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, as of 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.
[{Jargon File}]
(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 Encoding Initiative
[text, project, standard] (TEI) A project working to establish a standard for interchanging {electronic text} for scholarly research. The TEI has adopted {SGML} and implemented the TEI standard as an SGML {Document Type Definition}.
The TEI was incorporated as a not-for-profit consortium in December 2000, with host sites in Bergen, Oxford, Virginia, and Providence RI, USA.
{Home (http://www.tei-c.org/)}.
See also {Corpus Processing}.
[Any connection with {Computational Linguistics} or {Natural Language Processing}?]
(2001-03-23)

text file
[file format] A {file} containing no "invisible" {control characters}, only {printable} letters, numbers and symbols, usually from the {ASCII} {character set}.
A text file can be produced with a {text editor} and can usually be imported into any {word processor} though it will probably appear unformatted.
Compare {binary file}, {flat file}, {rich text file}.
(1996-11-15)

text processing utility
Text Processing Utility
[language] (TPU) A {DEC} language for creation of text-processing interfaces, used to implement DEC's {Extensible VAX Editor} (EVE).
(2000-05-08)

text reckoning and compiling
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
Text To Speech
[application] (TTS) Automatic conversion of text streams to voice.
[Details?]
(1997-05-11)

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

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
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
TFTP
{Trivial File Transfer Protocol}

tg
[networking] The {country code} for Togo.
(1999-01-27)

tga
TGA
{Targa Graphics Adaptor}

tgen
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 systems
TGS Systems
[company] Suppliers of {Prograph}.
Telephone: +1 (902) 429 5642.
(1995-03-31)

tgsii
TGS-II
Translator Generator System. Contained {TRANDIR}.
[Sammet 1969, p. 640].

tgz
[filename extension, compression] (Or less often "taz", Tar GNU zip) A {filename extension} for a file or directory which has been archived with {tar} and then compressed with {gzip}. The full form ".tar.gz" is also common on proper {file systems} not limited to {8.3} file names.
(1996-11-03)

th
[networking] The {country code} for Thailand.
(1999-01-27)

thanks in advance
[jargon] (Usually "TIA") A conventional {Usenet} net.politeness ending a posted request for information or assistance. Sometimes written "advTHANKSance" or "aTdHvAaNnKcSe".
[{Jargon File}]
(1999-02-09)

thats not a bug thats a feature
That's not a bug, that's a feature!
The {canonical} first parry in a debate about a purported {bug}. The complainant, if unconvinced, is likely to retort that the bug is then at best a {misfeature}.
See also {feature}.
[{Jargon File}]
(1995-02-02)

the
T.H.E
[operating system] The {operating system} in which {semaphores} were first used.
[Details?]
(1999-10-12)

the cuckoos egg
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
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
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
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
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
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 manmonth
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
The Network
{network, the}

the realtime operating system nucleus
The Real-Time Operating System Nucleus
[project] (TRON) A project to develop an {operating system} and {man-machine interface} that can work with other operating systems to provide an environment for many small distributed computers to cooperate in {real time}. TRON is headed by Dr. Ken Sakamura of the {University of Tokyo} and supported by most of the major Japanese computer makers and {NTT}.
{(http://www.atip.org/public/atip.reports.91/tron.html)}.
(2003-05-23)

the story of mel a real programmer
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 backward, and, when the sense switch was turned on, the program would cheat, winning every time. Mel was delighted with this, claiming his subconscious was uncontrollably ethical, and adamantly refused to fix it.
After Mel had left the company for greener pa$ture$, the Big Boss asked me to look at the code and see if I could find the test and reverse it. Somewhat reluctantly, I agreed to look. Tracking Mel's code was a real adventure.
I have often felt that programming is an art form, whose real value can only be appreciated by another versed in the same arcane art; there are lovely gems and brilliant coups hidden from human view and admiration, sometimes forever, by the very nature of the process. You can learn a lot about an individual just by reading through his code, even in hexadecimal. Mel was, I think, an unsung genius.
Perhaps my greatest shock came when I found an innocent loop that had no test in it. No test. *None*. Common sense said it had to be a closed loop, where the program would circle, forever, endlessly. Program control passed right through it, however, and safely out the other side. It took me two weeks to figure it out.
The RPC-4000 computer had a really modern facility called an index register. It allowed the programmer to write a program loop that used an indexed instruction inside; each time through, the number in the index register was added to the address of that instruction, so it would refer to the next datum in a series. He had only to increment the index register each time through. Mel never used it.
Instead, he would pull the instruction into a machine register, add one to its address, and store it back. He would then execute the modified instruction right from the register. The loop was written so this additional execution time was taken into account -- just as this instruction finished, the next one was right under the drum's read head, ready to go. But the loop had no test in it.
The vital clue came when I noticed the index register bit, the bit that lay between the address and the operation code in the instruction word, was turned on-- yet Mel never used the index register, leaving it zero all the time. When the light went on it nearly blinded me.
He had located the data he was working on near the top of memory -- the largest locations the instructions could address -- so, after the last datum was handled, incrementing the instruction address would make it overflow. The carry would add one to the operation code, changing it to the next one in the instruction set: a jump instruction. Sure enough, the next program instruction was in address location zero, and the program went happily on its way.
I haven't kept in touch with Mel, so I don't know if he ever gave in to the flood of change that has washed over programming techniques since those long-gone days. I like to think he didn't. In any event, I was impressed enough that I quit looking for the offending test, telling the Big Boss I couldn't find it. He didn't seem surprised.
When I left the company, the blackjack program would still cheat if you turned on the right sense switch, and I think that's how it should be. I didn't feel comfortable hacking up the code of a Real Programmer."
[Posted to USENET by its author, Ed Nather [utastro!nather], on 1983-05-21].
{Was Mel, Mel Kaye? (http://www.foldoc.org/pub/MelKaye.txt)}.
[When did it happen? Did Mel use hexadecimal or octal?]
(2003-09-12)

the world of cryton
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
the X that can be Y is not the true X
Yet another instance of hackerdom's peculiar attraction to mystical references - a common humorous way of making exclusive statements about a class of things. The template is from the "Tao te Ching": "The Tao which can be spoken of is not the true Tao." The implication is often that the X is a mystery accessible only to the enlightened. See the {trampoline} entry for an example, and compare {has the X nature}.
[{Jargon File}]

theo
THEO
A {frame language}.
["Theo: A Framework for Self-Improving Systems", Mitchell et al, in Architectures for Intelligence, K. VanLehn ed, Erlbaum, 1989].
(1994-12-14)

theology
1. Ironically or humorously used to refer to {religious issues}.
2. Technical fine points of an abstruse nature, especially those where the resolution is of theoretical interest but is relatively {marginal} with respect to actual use of a design or system. Used especially around software issues with a heavy AI or language-design component, such as the smart-data vs. smart-programs dispute in AI.
[{Jargon File}]

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)

theres more than one way to do it
There's More Than One Way To Do It
[Perl, philosophy] One of the design principles of Perl. The Perl {man page} ends with a note:
The Perl motto is "There's more than one way to do it." Divining how many more is left as an exercise to the reader.
(2001-03-15)

theseus
Theseus
[language] A language based on {Euclid}, never implemented.
["Theseus - A Programming Language for Relational Databases", J.E. Shopiro, ACM Trans Database Sys 4(4):493-517, Mar 1979].
(1994-12-14)

thicket
[jargon] Multiple {files} output from some operation.
The term has been heard in use at {Microsoft} to describe the set of {files} output when {Microsoft Word} does "Save As a {Web} Page" or "Save as {HTML}". The process can result in a main {XML} or {HTML} {file}, a {graphic} {file} for each {image} in the original, a {CSS} {file}, etc.
This can be an issue as {XML} can be used as the default format in {Office 2000}, and {document management systems} can't yet cope with the relationship between the {files} in a thicket when checking in and out.
(2001-09-01)

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
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
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
Thinking Machines Corporation
[company] The company that introduced the {Connection Machine parallel computer} ca 1984. Four of the world's ten most powerful {supercomputers} are Connection Machines. Thinking Machines is the leader in scalable computing, with software and applications running on parallel systems ranging from 16 to 1024 processors. In developing the Connection Machine system, Thinking Machines also did pioneering work in parallel software.
The 1993 technical applications market for massively parallel systems was approximately $310 million, of which Thinking Machines Corporation held a 29 percent share. Thinking Machines planned to become a software provider by 1996, by which time the parallel computing market was expected to have grown to $2 billion.
Thinking Machines Corporation has 200 employees and offices worldwide.
Address: 245 First Street, Cambridge, MA 02142-1264, USA. Telephone: +1 (617) 234 1000. Fax: +1 (617) 234 4444.
(1994-12-01)

thinko
[jargon] /thing'koh/ (Or "braino", by analogy with "{typo}") A momentary, correctable {glitch} in mental processing, especially one involving recall of information learned by rote; a bubble in the stream of consciousness.
See also {brain fart}. Compare {mouso}.
[{Jargon File}]
(1996-04-20)

thinnet
{cheapernet}

third generation computer
[architecture] A computer built with small-scale integration {integrated circuits}, designed after the mid-1960s.
Third generation computers use {semiconductor} memories in addition to, and later instead of, {ferrite core memory}. The two main types of semiconductor memory are {Read-Only Memory} (ROM) and read-and-write memories called {Random Access Memory} (RAM).
A technique called {microprogramming} became widespread and simplified the design of the {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 cant happen
This can't happen
{can't happen}

this dictionary
{Free On-line Dictionary of Computing}

this time for sure
This time, for sure!
[exclamation] Ritual affirmation frequently uttered during protracted {debugging} sessions involving numerous small obstacles (e.g. attempts to bring up a {UUCP} connection). For the proper effect, this must be uttered in a fruity imitation of Bullwinkle J. Moose.
Also heard: "Hey, Rocky! Watch me pull a rabbit out of my hat!" The {canonical} response is, of course, "But that trick *never* works!"
See {hacker humour}.
[{Jargon File}]
(1995-09-27)

thn
{thumbnail}

thomas
Thomas
[language] A language compatible with the language {Dylan}(TM). Thomas is NOT {Dylan}(TM).
The first public release of a translator to {Scheme} by Matt Birkholz, Jim Miller, and Ron Weiss, written at {Digital Equipment Corporation}'s {Cambridge Research Laboratory} runs (slowly) on {MIT}'s {CScheme}, DEC's {Scheme-]C}, Marc Feeley's {Gambi}, {Macintosh}, {PC}, {Vax}, {MIPS}, {Alpha}, {680x0}.
{(ftp://gatekeeper.pa.dec.com/pub/DEC/Thomas)}.
Mailing list: [info-thomas@crl.dec.com].
["Dylan(TM) an object-oriented dynamic language", {Apple Computer}, Eastern Research and Technology, April 1992].
(1992-09-11)

thrash
To move wildly or violently, without accomplishing anything useful. {Paging} or {swapping} systems that are overloaded waste most of their time moving data into and out of {core} (rather than performing useful computation) and are therefore said to thrash. Thrashing can also occur in a {cache} due to {cache conflict} or in a {multiprocessor} (see {ping-pong}).
Someone who keeps changing his mind (especially about what to work on next) is said to be thrashing. A person frantically trying to execute too many tasks at once (and not spending enough time on any single task) may also be described as thrashing.
Compare {multitask}.
[{Jargon File}]

thrashing
{thrash}

thread
1. See {multithreading}.
2. See {threaded code}.
3. {topic thread}.
[{Jargon File}]

thread language zero
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)

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}

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

threefinger salute
three-finger salute
{Vulcan nerve pinch}

threeletter acronym
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)

threetier
three-tier
[architecture] A {client-server} architecture in which the {user interface}, functional process logic ("business rules") and data storage and access are developed and maintained as independent {modules}, most often on separate {platforms}.
Apart from the usual advantages of modular software with well defined interfaces, the three-tier architecture is intended to allow any of the three tiers to be upgraded or replaced independently as requirements or technology change. For example, an upgrade of desktop {operating system} from {Microsoft Windows} to {Unix} would only affect the {user interface} code.
Typically, the user interface runs on a desktop {PC} or {workstation} and uses a standard {graphical user interface}, functional process logic may consist of one or more separate modules running on a {workstation} or application {server}, and an {RDBMS} on a database server or {mainframe} contains the data storage logic. The middle tier may be multi-tiered itself (in which case the overall architecture is called an "n-tier architecture").
(1998-05-13)

throughput
1. The rate at which a processor can work expressed in instructions per second or jobs per hour or some other unit of performance.
2. [communications] {data transfer rate}.
(2001-05-22)

thud
1. Yet another {metasyntactic variable} (see {foo}). It is reported that at {CMU} from the mid-1970s the canonical series of these was "foo", "bar", "thud", "blat".
2. Rare term for the hash character, "#" (ASCII 35). See {ASCII} for other synonyms.
[{Jargon File}]

thumb
[jargon] The slider or "bubble" on a window system {scrollbar}. So called because moving it allows you to browse through the contents of a text window in a way analogous to thumbing through a book.
[{Jargon File}]
(1995-03-14)

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

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}.
[{Jargon File}]
(1997-10-11)

tia
TIA
1. [chat] Thanks in advance.
2. [body] {Telecommunications Industry Association}.
3. [software] The {Internet Adapter}.
4. [graphics, hardware] {Television Interface Adaptor}.
(1999-12-06)

tick
1. A {jiffy} (sense 1). 2. In simulations, the discrete unit of time that passes between iterations of the simulation mechanism. In AI applications, this amount of time is often left unspecified, since the only constraint of interest is the ordering of events. This sort of AI simulation is often pejoratively referred to as "tick-tick-tick" simulation, especially when the issue of simultaneity of events with long, independent chains of causes is {handwave}d. 3. In the FORTH language, a single quote character.
[{Jargon File}]

tickit
TickIT
A software industry quality assessment scheme.

tickle
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."
[{Jargon File}]

ticklist features
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
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.
[{Jargon File}]

tight loop
[programming] A {loop} of code that executes without releasing any resources to other programs or the {operating system}.
Consider the following pointless {BASIC} loop that counts upward indefinitely
10 i = i + 1 20 GOTO 10
Run on a single-user system such as {MS-DOS} this will not cause any problems. Run on a {cooperative multitasking} operating system such as {Windows 3}, the system would appear to freeze.
A {pre-emptive multitasking} operating system such as {UNIX} or {Windows NT} would "steal" cycles away from the program and continue to run other programs.
See also {busy-wait} and {multitasking}.
(1999-05-06)

tilde
[character] "~" {ASCII} character 126.
Common names are: {ITU-T}: tilde; squiggle; {twiddle}; not. Rare: approx; wiggle; {swung dash}; enyay; {INTERCAL}: sqiggle (sic).
Used as {C}'s prefix {bitwise negation} {operator}; and in {Unix} {csh}, {GNU Emacs}, and elsewhere, to stand for the current user's {home directory}, or, when prefixed to a {login name}, for the given user's home directory.
The "swung dash" or "approximation" sign is not quite the same as {tilde} in typeset material but the ASCII tilde serves for both (compare {angle brackets}).
[Has anyone else heard this called "tidal" (as in wave)?]
(1996-10-18)

tile forth
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: 2.1, as of 1991-11-13.
Availalbe via {FTP} from a {GNU archive site}.
(1991-11-13)

tim bernerslee
Tim Berners-Lee
[person] The man who invented the {World-Wide Web} while working at the Center for European Particle Research (CERN). Now Director of the {World-Wide Web Consortium}.
Tim Berners-Lee graduated from the Queen's College at Oxford University, England, 1976. Whilst there he built his first computer with a soldering iron, {TTL} gates, an {M6800} processor and an old television.
He then went on to work for {Plessey Telecommunications}, and D.G. Nash Ltd (where he wrote software for intelligent printers and a {multi-tasking} {operating system}), before joining CERN, where he designed a program called 'Enquire', which was never published, but formed the conceptual basis for today's {World-Wide Web}.
In 1984, he took up a fellowship at CERN, and in 1989, he wrote the first {World-Wide Web} {server}, "{httpd}", and the first client, "WorldWideWeb" a {hypertext} browser/editor which ran under {NEXTSTEP}. The program "WorldWideWeb" was first made available within CERN in December, and on the {Internet} as a whole in the summer of 1991.
In 1994, Tim joined the {Laboratory for Computer Science} (LCS) at the {Massachusetts Institute of Technology} (MIT). In 1999, he became the first holder of the {3Com} Founders chair. He is also the author of "Weaving the Web", on the past present and future of the Web.
In 2001, Tim was made a fellow of The Royal Society.
Tim is married to Nancy Carlson. They have two children, born 1991 and 1994.
{(http://www.w3.org/People/Berners-Lee/Longer.html)}.
(2001-06-17)

time bomb
[software, security] A subspecies of {logic bomb} that is triggered by reaching some preset time, either once or periodically. There are numerous legends about time bombs set up by programmers in their employers' machines, to go off if the programmer is fired or laid off and is not present to perform the appropriate suppressing action periodically.
Interestingly, the only such incident for which we have been pointed to documentary evidence took place in the Soviet Union in 1986! A disgruntled programmer at the Volga Automobile Plant (where the Fiat clones called Ladas were manufactured) planted a time bomb which, a week after he'd left on vacation, stopped the entire main assembly line for a day. The case attracted lots of attention in the Soviet Union because it was the first cracking case to make it to court there. The perpetrator got 3 years in jail.
[{Jargon File}]
(2001-09-15)

time complex simulator
Time Complex Simulator
[simulation] (Tcsim) {Complex arithmetic} version of {Tsim}.
Contact: {ZOLA Technologies}.
(1996-01-18)

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 division multiple access
{time division multiplexing}

time division multiplexing
[communications] (TDM) A type of {multiplexing} where two or more channels of information are transmitted over the same link by allocating a different time interval ("slot" or "slice") for the transmission of each channel. I.e. the channels take turns to use the link. Some kind of periodic synchronising signal or distinguishing identifier is usually required so that the receiver can tell which channel is which.
TDM becomes inefficient when traffic is intermittent because the time slot is still allocated even when the channel has no data to transmit. {Statistical time division multiplexing} was developed to overcome this problem.
Compare {wavelength division multiplexing}, {frequency division multiplexing}, {code division multiplexing}.
(2001-06-27)

time domain reflectometer
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)

time quantum
{time slice}

time sharing option
Time Sharing Option
[operating system] (TSO) System software from {IBM} that provides {time-sharing} on an IBM {mainframe} running in an {MVS} environment.
(2003-08-15)

time shifting
[programming] A technique used to work around problems due to the {Year 2000} and the "millennium bug". Time shifting involves translating date fields in a database back by a fixed number of years to avoid year 2000 problems with the {database management system}.
Typically dates are shifted back 28 years so that the occurrence of leap years and days of the week match with the actual year.
(2003-08-15)

time simulator
Time Simulator
[simulation] (Tsim) A {stack}-based {simulation} language.
Contact: {ZOLA Technologies}.
(1999-10-04)

time sink
(By analogy with "heat sink" or "current sink") A project that consumes unbounded amounts of time.
[{Jargon File}]
(1995-02-07)

time slice
[operating system] (Or "time quantum", "quantum") The period of time for which a process is allowed to run uninterrupted in a {pre-emptive multitasking} {operating system}.
The {scheduler} is run once every time slice to choose the next process to run. If the time slice is too short then the scheduler will consume too much processing time but if it is too long then processes may not be able to respond to external events quickly enough.
(1998-11-06)

time t
time T
/ti:m T/ An unspecified but usually well-understood time, often used in conjunction with a later time T+1. "We'll meet on campus at time T or at Louie's at time T+1" means, in the context of going out for dinner: "We can meet on campus and go to Louie's, or we can meet at Louie's itself a bit later." (Louie's was a Chinese restaurant in Palo Alto that was a favourite with hackers.) Had the number 30 been used instead of the number 1, it would have implied that the travel time from campus to Louie's is 30 minutes; whatever time T is (and that hasn't been decided on yet), you can meet half an hour later at Louie's than you could on campus and end up eating at the same time.
See also {since time T equals minus infinity}.
[{Jargon File}]
(1994-12-12)

time to live
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)

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)

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

timesordividedby
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.
[{Jargon File}]
(1995-02-07)

tinc
TINC
{There Is No Cabal}

tinman
Tinman
[language] The third of the series of DoD requirements that led to {Ada}. Written by HOLWG, DoD, Jan 1976.
See {Strawman}, {Woodenman}, {Ironman}, {Steelman}.
(1976-01-01)

tinman
+
Macro language for Apple II? Published in DDJ?

tint
TINT
Interpreted version of {JOVIAL}.
[Sammet 1969, p. 528].

tint
{hue}

tiny
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
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
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
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
TIP
1. {Texas Instruments Pascal}.
2. A {Unix} program for interactive communication via {serial line}s.
{Unix manual page}: tip(1).

tip of the icecube
tip of the ice-cube
[IBM] The visible part of something small and insignificant. Used as an ironic comment in situations where "tip of the iceberg" might be appropriate if the subject were at all important.
[{Jargon File}]

tipl
TIPL
1. Teach IPL. An interpretive {IPL} teaching system.
[Sammet 1969, p. 393].
2. A dialect of {IGL}.

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".
[{Jargon File}]
(1998-02-25)

tj
[networking] The {country code} for Tajikistan.
(1999-01-27)

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

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

tk95
TK-95
{TK-90X}

tksolver
TK!Solver
Software Arts 1983. Numerical constraint-oriented language. "The TK!Solver Book", M. Konopasek et al, McGraw-Hill 1984.

tl0
TL0
{Thread Language Zero}

tl1
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
TLA
{Three-Letter Acronym}

tlas
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
TLB
{Translation Look-aside Buffer}

tld
TLD
{top-level domain}

tli
TLI
{Transport Layer Interface}

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

tm
TM
1. {Turing Machine}.
2. A formal {database specification language}.
[{Jargon File}]

tm
[networking] The {country code} for Turkmenistan.
Heavily used for {vanity domains} because it looks like the abbreviation for "trademark".
(1999-01-27)

tm
(TM)
(Trademark) An {ASCII} rendition of the trademark-superscript symbol, appended to phrases that the author feels should be recorded for posterity.
It is sometimes used ironically as a form of protest against the recent spate of {software patents}, {algorithm} patents and "{look and feel}" lawsuits.
[{Jargon File}]
(1994-12-02)

tmdl
TMDL
{Target-Machine Description Language}

tmg
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
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).
[{Jargon File}]

tmrcie
TMRCie
/tmerk'ee/, (MIT) A denizen of {TMRC}.

tms 9900
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
TNC
[hardware] A threaded version of a {BNC}.
(1996-12-21)

tnstaafl
TNSTAAFL
{TANSTAAFL}

tnx
TNX
[chat] Thanks. Also "TNX 1.0E6" or "{TNXE6}" - thanks a million.
(1996-05-19)

tnxe6
TNXE6
Thanks a million. "E" is used in many programming languages to separate the mantissa and exponent of a {floating-point} constant so a number ending in "E6" means "times ten to the power six", i.e. times a million.

to
[networking] The {country code} for Tonga.
Heavily used for {vanity domains} because it looks like the English word "to".
(1999-01-27)

to a first approximation
1. When one is doing certain numerical computations, an approximate solution may be computed by any of several heuristic methods, then refined to a final value. By using the starting point of a first approximation of the answer, one can write an algorithm that converges more quickly to the correct result.
2. In jargon, a preface to any comment that indicates that the comment is only approximately true. The remark "To a first approximation, I feel good" might indicate that deeper questioning would reveal that not all is perfect (e.g. a nagging cough still remains after an illness).
[{Jargon File}]

to a zeroth approximation
[jargon] (From "to a first approximation") A *really* sloppy approximation; a wild guess.
Compare {social science number}.
[{Jargon File}]
(1994-12-12)

toast
[jargon] 1. Any completely inoperable system or component, especially one that has just crashed and burned: "Uh, oh ... I think the serial board is toast."
2. To cause a system to crash accidentally, especially in a manner that requires manual rebooting. "Rick just toasted the {firewall machine} again."
Compare {fried}.
(1995-05-01)

toaster
[jargon] 1. The archetypal really stupid {application} for an {embedded} {microprocessor} controller; often used in comments that imply that a scheme is inappropriate technology (but see {elevator controller}). "{DWIM} for an assembler? That'd be as silly as running {Unix} on your toaster!"
2. A very, very dumb computer. "You could run this program on any dumb toaster."
See {bitty box}, {Get a real computer!}, {toy}, {beige toaster}.
3. A {Macintosh}, especially the {Classic Mac}. Some hold that this is implied by sense 2.
4. A peripheral device. "I bought my box without toasters, but since then I've added two boards and a second disk drive".
This is not usually to be taken literally but, to show off the expansion capabilities of the {Risc PC}, {Acorn Computers Ltd.} built a seven-slice machine (which they called "the rocket-ship") and installed every imaginable peripheral. In a spare {drive bay} of the top slice they installed a toaster. This machine was exhibited at various shows where it attracted attention by occasionally ejecting a pizza.
[{Jargon File}]
(1997-07-18)

toasternet
[networking] 1. A low cost, low tech, publicly accessible local community {network}. This is probably an extension of the term "{toaster}" used to mean a small, cheap, slow computer.
{community networks (gopher://gopher.well.sf.ca.us/00/Community/communets/about.nets)}.
2. The title of some informal notes on {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)

toeprint
[jargon] A {footprint} of especially small size.
[{Jargon File}]
(1994-12-12)

toggle
To change a {bit} from whatever state it is in to the other state; to change from 1 to 0 or from 0 to 1. This comes from "toggle switches", such as standard light switches, though the word "toggle" actually refers to the mechanism that keeps the switch in the position to which it is flipped rather than to the fact that the switch has two positions. There are four things you can do to a bit: set it (force it to be 1), clear (or zero) it, leave it alone, or toggle it.
[{Jargon File}]
(1994-12-12)

tok
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
Tom Knight
[person] A noted {hacker} at {MIT}.
{(http://www.ai.mit.edu/people/tk/tk.html)}.
(1996-12-12)

tone
{brightness}

tony hoare
Tony Hoare
{Anthony Hoare}

tool
1. [tool] A program used primarily to create, manipulate, modify, or analyse other programs, such as a compiler or an editor or a cross-referencing program. Opposite: {app}, {operating system}.
2. A {Unix} {application program} with a simple, "transparent" (typically text-stream) interface designed specifically to be used in programmed combination with other tools (see {filter}, {plumbing}).
3. [jargon] ({MIT}: general to students there) To work; to study (connotes tedium). The {TMRC} Dictionary defined this as "to set one's brain to the grindstone". See {hack}.
4. [jargon, person] ({MIT}) A student who studies too much and hacks too little. MIT's student humour magazine rejoices in the name "Tool and Die".
[{Jargon File}]
(1996-12-12)

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.
Some {application programs} under some {operating systems} may allow the user to customise the functions accessible via toolbars, in others the choice is fixed by the programmer.
(2000-02-09)

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

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
Toolbuilder
{Tool Builder Kit}

tools
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".
[{Jargon File}]

top
TOP
{Technical/Office Protocol}

topdown design
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)

topdown model
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!"
[{Jargon File}]
(1996-05-29)

topic group
{forum}

topic map
[semantics] A collection of "topics", their relationships, and information sources. A topic map captures the subjects of which information sources speak, and the relationships between them, in a way that is implementation independent.
A topic is a symbol within the computer that represents something in the world such as the play Hamlet, the playwright William Shakespeare, or the "authorship" relationship.
Topics can have names. They can also have occurrences, that is, information resources that are considered to be relevant in some way to their subject. Topics can play roles in relationships.
Thus, topics have three kinds of characteristics: names, sources, and roles played in relationships. The assignment of such characteristics is considered to be valid within a certain scope, or context.
Topic maps can be merged. Merging can take place at the discretion of the user or application (at runtime), or may be indicated by the topic map's author at the time of its creation.
(2003-07-19)

topic thread
[{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.

toplevel domain
top-level domain
[networking] The last and most significant component of an {Internet} {fully qualified domain name}, the part after the last ".". For example, {host} wombat.doc.ic.ac.uk is in top-level domain "uk" (for United Kingdom).
Every other country has its own top-level domain, including ".us" for the U.S.A. Within the .us domain, there are subdomains for the fifty states, each generally with a name identical to the state's postal abbreviation. These are rarely used however. Within the .uk domain, there is a .ac.uk subdomain for academic sites and a .co.uk domain for commercial ones. Other top-level domains may be divided up in similar ways.
In the US and some other countries, the following top-level domains are used much more widely than the country code:
.com - commercial bodies .edu - educational institutions .gov - U. S. government .mil - U. S. armed services .net - network operators .org - other organisations
Since the rapid commercialisation of the Internet in the 1990s the ".com" domain has become particularly heavily populated with every company trying to register its company name as a subdomain of .com, e.g. "netscape.com" so as to make it easy for customers to guess or remember the {URL} of the comany's {home page}.
United Nations entities use the domain names of the countries where they are located. The UN headquarters facility in New York City, for example, is un.org.
Several new top-level domains are about to be added (Oct 1997): .nom - individual people .rec - recreational organisations .firm - businesses such as law, accounting, engineering .store - commercial retail companies .ent - entertainment facilities and organisations
(1997-10-08)

topology
1. [mathematics] The branch of mathematics dealing with {continuous transformations}.
2. [networking] Which {hosts} are directly connected to which other hosts in a {network}. {Network layer} processes need to consider the current network topology to be able to {route} {packets} to their final destination reliably and efficiently.
(2001-03-29)

tops10
TOPS-10
/tops-ten/ DEC's proprietary OS for the fabled {PDP-10} machines, long a favourite of hackers but now effectively extinct. A fountain of hacker folklore. See also {ITS}, {TOPS-20}, {TWENEX}, {VMS}, {operating system}. TOPS-10 was sometimes called BOTS-10 (from "bottoms-ten") as a comment on the inappropriateness of describing it as the top of anything.
[{Jargon File}]

tops20
TOPS-20
{TWENEX}

tornado
Tornado
[programming] The {software development environment} previously distributed with {VxWorks}.
(1996-11-29)

toronto euclid
Toronto Euclid
[language] The standard dialect of {Euclid}, as compared to {Ottawa Euclid}.
(1996-11-29)

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

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)

totally ordered
[mathematics] Having a {total ordering}.
(1997-01-10)

totally ordered set
[mathematics] A {set} with a {total ordering}.

toto
[programming] /toh-toh'/ The default scratch file name among French-speaking programmers - in other words, a francophone {foo}. The phonetic mutations "titi", "tata", and "tutu" canonically follow "toto", analogously to {bar}, {baz} and {quux} in English.
[{Jargon File}]
(1995-04-18)

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)

touchpad
[hardware] (Or "trackpad") A stationary {pointing device} used mainly on {laptop computers}. Touchpads provide a small, flat surface that you slide your finger over using the same movements as you would a {mouse}. They were originally developed to provide a more natural and intuitive connection for the computer user than the mouse.
Touchpads use a principle called coupling {capacitance}, and requires a {conductive} pointer such as a finger. They contain a two-layer grid of {electrodes} which are connected to an {integrated circuit} (IC) mounted under the pad. The upper layer contains vertical electrode strips while the lower layer is composed of horizontal electrode strips. Capacitance from each of the horizontal electrodes to each of the vertical electrodes is measured by the IC. A finger near the intersection of two electrodes modifies the capacitance between them, since a finger has very different {dielectric} properties than air. The position of the finger is precisely determined based on these changes at various locations.
According to one correspondent, you can use any part of your body, which is not surprising, but not a McDonalds Chicken McCrispy. You can use reheated Pizza Hut Christmas Pizza though.
{Synaptics (http://www.synaptics.com/product.htm)}.
(2000-11-01)

tourist
[jargon] A guest on the system, especially one who generally logs in over a network from a remote location for {comm mode}, {electronic mail}, {games} and other trivial purposes. A tourist is one step below a {luser}.
Hackers often spell this {turist}, perhaps by some sort of tenuous analogy with {luser} (this also expresses the {ITS} culture's penchant for six-letterisms).
Compare {twink}, {read-only user}.
[{Jargon File}]
(1995-03-10)

tourist information
Information in an on-line display that is not immediately useful, but contributes to a viewer's gestalt of what's going on with the software or hardware behind it. Whether a given piece of info falls in this category depends partly on what the user is looking for at any given time. The "bytes free" information at the bottom of an {MS-DOS} "dir" display is tourist information; so (most of the time) is the TIME information in a {Unix} "ps(1)" display.
[{Jargon File}]

tower technology corporation
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)

towers of hanoi
Towers of Hanoi
[games] A classic computer science problem, invented by Edouard Lucas in 1883, often used as an example of {recursion}.
"In the great temple at Benares, says he, beneath the dome which marks the centre of the world, rests a brass plate in which are fixed three diamond needles, each a cubit high and as thick as the body of a bee. On one of these needles, at the creation, God placed sixty-four discs of pure gold, the largest disc resting on the brass plate, and the others getting smaller and smaller up to the top one. This is the Tower of Bramah. Day and night unceasingly the priests transfer the discs from one diamond needle to another according to the fixed and immutable laws of Bramah, which require that the priest on duty must not move more than one disc at a time and that he must place this disc on a needle so that there is no smaller disc below it. When the sixty-four discs shall have been thus transferred from the needle on which at the creation God placed them to one of the other needles, tower, temple, and Brahmins alike will crumble into dust, and with a thunderclap the world will vanish."
The recursive solution is: Solve for n-1 discs recursively, then move the remaining largest disc to the free needle.
Note that there is also a non-recursive solution: On odd-numbered moves, move the smallest sized disk clockwise. On even-numbered moves, make the single other move which is possible.
["Mathematical Recreations and Essays", W W R Ball, p. 304]
{The rec.puzzles Archive (http://rec-puzzles.org/sol.pl/induction/hanoi)}.
(2003-07-13)

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!}.
[{Jargon File}]

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}.
[{Jargon File}]
(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}.
[{Jargon File}]

toy program
[programming] 1. A trivial program that can be readily comprehended.
2. A program for which the effort of initial coding dominates the costs through its {life cycle}.
See also {noddy}.
(1996-05-19)

toyada
Toy/Ada
[language] A {compiler} for a subset of {Ada}, written in {SML/NJ} by Amit Bhatiani at Rose-Hulman University.
{(ftp://master.cs.rose-hulman.edu/pub/)}.
(1992-04-08)

tp
[networking] The {country code} for East Timor.
(1999-01-27)

tpa
TPA
{Transient Program Area}

tpf
TPF
{Transaction Processing Facility}

tpix
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
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
TPO
{twisted pair only}

tps
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
TPU
{Text Processing Utility}

tpx
TPX
{Terminal Productivity eXecutive}

tr
[networking] The {country code} for Turkey.
(1999-01-27)

trac
TRAC
{Text Reckoning And Compiling}

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)

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.

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
TrackPoint
[hardware] (Or "pointing stick", "nipple") A small knob found in the middle of some {keyboards} that works like a very short {isometric joystick}. Pressing it toward or away from you or from side to side moves the {pointer} on the screen. Ted Selker brought the concept of an in-keyboard pointing device to {IBM} in September 1987. TrackPoint was introduced in 1992 on the {IBM} {ThinkPad} and later on some {desktops}.
It takes up virtually no extra room on the box or the work area and also requires minimal movement of the hands from the keyboard.
Many imitations of highly variable quality appeared. Pointing sticks have also been used in many other {notebook} brands, including {TI}, {HP}, {Compac}, {Dell}, but NOT {Toshiba} or {AST}.
"TrackPoint" and "Trackpoint" are IBM trademarks.
{(http://www.research.ibm.com/mathsci/cmc/trackpoint.htm)}.
[INTERACT'90, North Holland Pub Co, pp. 700-706].
(2003-06-26)

tractor feed
{sprocket feed}

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

trafolah
Trafola-H
A specification language for program transformations. Functional, statically typed, polymorphic, with extended constructs for pattern-matching. "Trafola-H Reference Manual", R. Heckmann et al, U Saarlandes, Saarbrucken 1991.

trampoline
An incredibly {hairy} technique, found in some {HLL} and program-overlay implementations (e.g. on the Macintosh), that involves on-the-fly generation of small executable (and, likely as not, self-modifying) code objects to do indirection between code sections. These pieces of {live data} are called "trampolines". Trampolines are notoriously difficult to understand in action; in fact, it is said by those who use this term that the trampoline that doesn't bend your brain is not the true trampoline. See also {snap}.
[{Jargon File}]
(2003-03-26)

trandir
TRANDIR
TRANslation DIRector. A language for syntax-directed compiling. Sammet 1969, p.640.

tranquil
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
TRANS
TRAffic Network Simulation Language. "A Model for Traffic Simulation and a Simulation Language for the General Transportation Problem", Proc FJCC 37 (1970).

transaction
A unit of interaction with a {DBMS} or similar system. It must be treated in a coherent and reliable way independent of other transactions. See {atomic}.

transaction application language
Transaction Application Language
[language, Tandem] (TAL) Not "Tandem Application Language". A {block-structured}, {procedural} language optimised for use on {Tandem} {hardware}. TAL is a cross between {C} and {Pascal} and is the primary system programming language on {Tandem} computers. Tandem has no {assembler} and originally had no C or Pascal.
[Was TAL derived from HP's System Programming Language?]
(2001-07-09)

transaction processing facility
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
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}.
(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
1. [electronics] A sudden, brief increase in {current} or {voltage} in a circuit that can damage sensitive components and instruments.
(2003-06-12)
2. [software] A software object with a short and limited lifetime which is not saved for later reuse.
(1998-04-19)

transient program area
Transient Program Area
[operating system] (TPA) The region of memory {CP/M} set aside for user programs.
(2001-11-01)

transistor
[electronics] A three terminal {semiconductor} amplifying device, the fundamental component of most active electronic circuits, including digital electronics. The transistor was invented on 1947-12-23 at {Bell Labs}.
There are two kinds, the {bipolar transistor} (also called the junction transistor), and the {field effect transistor} (FET).
Transistors and other components are interconnected to make complex {integrated circuit}s such as {logic gate}s, {microprocessor}s and memory.
(1995-10-05)

transistortransistor logic
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
TRANSIT
[language] A subsystem of {ICES}.
[Sammet 1969, p.616].
(2003-07-12)

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)

transition ad
{interstitial}

transitive
A relation R is transitive if x R y & y R z =] x R z. Equivalence relations, pre-, partial and total orders are all transitive.

transitive closure
The transitive closure R* of a relation R is defined by
x R y =] x R* y x R y and y R* z =] x R* z
I.e. elements are related by R* if they are related by R directly or through some sequence of intermediate related elements.
E.g. in graph theory, if R is the relation on nodes "has an edge leading to" then the transitive closure of R is the relation "has a path of zero or more edges to". See also Reflexive transitive closure.

translation lookaside buffer
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
Transmission Control Protocol
[networking, protocol] (TCP) The most common {transport layer} {protocol} used on {Ethernet} and the {Internet}. It was developed by {DARPA}.
TCP is the {connection-oriented} protocol built on top of {Internet Protocol} (IP) and is nearly always seen in the combination {TCP/IP} (TCP over IP). It adds {reliable communication} and {flow-control} and provides {full-duplex}, process-to-process connections.
TCP is defined in {STD 7} and {RFC} 793.
{User Datagram Protocol} is the other, connectionless, protocol that runs on top of IP.
(2001-06-14)

transparent
1. [jargon] Not visible, hidden; said of a system which functions in a manner not evident to the user. For example, the {Domain Name System} transparently resolves a {fully qualified domain name} into an {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)

transparent audio coding
[audio, compression] A {lossy audio compression} {algorithm} is transparent if the original and decoded signal are indistinguishable to the human ear. The bit rate depends on the {codec} and the audio material. Some codecs (e.g. {AAC}, {MP3}) are optimized for transparent coding at a low data rate, others (e.g. {VQF}, {MP3Pro}, {AAC}+{SBR}, {WMA}) for distinguisable but pleasant reproduction at lower bit rates.
Typical data rates in {kbps} for different codecs are:
MP1 288-320 MP2 224-256 MP3 160-224 MPEG-2 AAC 128-160 MPEG-4 AAC 112-144 MPEGplus 160-200
(2001-12-23)

transport driver interface
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
Transport Layer Interface
[networking, programming] (TLI, or "Transport Level Interface") A {protocol}-independent interface for accessing network facilities, modelled after the {ISO} {transport layer} (level 4), that first appeared in {Unix SVR3}.
TLI is defined by {SVID} as transport mechanism for networking interfaces, in preference to {sockets}, which are biased toward {IP} and friends. A disavantage is that a process cannot use read/write directly, but has to use backends using {stdin} and {stdout} to communicate with the network connection. TLI is implemented in SVR4 using the {STREAMS} interface. It adds no new {system calls}, just a library, libnsl_s.a. The major functions are t_open, t_bind, t_connect, t_listen, t_accept, t_snd, t_rcv, read, write.
According to the {Solaris} t_open {man page}, XTI (X/OPEN Transport Interface) evolved from TLI, and supports the TLI {API} for compatibility, with some variations on semantics.
(1999-06-10)

transport level interface
Transport Level Interface
{Transport Layer Interface}

transport service access point
Transport Service Access Point
[networking] (TSAP) Part of the {OSI} {IP Presentation Addressing schema}.
A TSAP identifes the {service access point} between the {session layer} and the {transport layer}.
(1999-08-01)

transputer
[processor, parallel] (Note lower case) A family of {microprocessors} from {Inmos} with interprocessor links, programmable in {occam}.
[More details?]
(1994-11-18)

transuse
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).
[{Jargon File}]

trap door
Or "trapdoor" 1. {back door}.
2. {trap-door function}

trapdoor function
trap-door function
[cryptography, mathematics] A special class of {one-way function}, which is reversible if you know a certain secret associated with the function.
{(http://www.rsasecurity.com/rsalabs/faq/2-3-2.html)}. {(http://www.ieor.berkeley.edu/~jshu/knapsack/Review/OverviewPK.html)}.
(2003-05-22)

trash
To destroy, e.g. the contents of a data structure. The most common of the family of near-synonyms including {mung}, {mangle}, and {scribble}.
[{Jargon File}]
(1994-11-03)

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

traversal
[data] Processing {nodes} in a {graph} one at a time, usually in some specified order. Traversal of a tree is {recursive}ly defined to mean visiting the {root node} and traversing its children. Visiting a node usually involves transforming it in some way or collecting data from it.
In "pre-order traversal", a node is visited _before_ its children. In "post-order" traversal, a node is visited _after_ its children. The more rarely used "in-order" traversal is generally applicable only to binary trees, and is where you visit first a node's left child, then the node itself, and then its right child.
For the binary tree:
T / \ I S / \ D E
A pre-order traversal visits the nodes in the order T I D E S. A post-order traversal visits them in the order D E I S T. An in-order traversal visits them in the order D I E T S.
(2001-10-01)

traverse
{traversal}

trawl
To sift through large volumes of data (e.g. {Usenet} postings, FTP archives, or the {Jargon File}) looking for something of interest. [{Jargon File}]

tree
[mathematics, data] A {directed acyclic graph}; i.e. a {graph} wherein there is only one route between any pair of {nodes}, and there is a notion of "toward top of the tree" (i.e. the {root node}), and its opposite direction, toward the {leaves}. A tree with n nodes has n-1 edges.
Although maybe not part of the widest definition of a tree, a common constraint is that no node can have more than one parent. Moreover, for some applications, it is necessary to consider a node's {daughter} nodes to be an ordered {list}, instead of merely a {set}.
As a data structure in computer programs, trees are used in everything from {B-trees} in {databases} and {file systems}, to {game trees} in {game theory}, to {syntax trees} in a human or computer {languages}.
(1998-11-12)

tree transformation language
Tree Transformation Language
[functional language, rule-based language] (TXL) A hybrid {functional language} and {rule-based language} by Jim R. Cordy [cordy@cs.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 is written in {ANSI C}.
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}.
Latest version: 7.4, as of 1993-08-04.
{(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)

treekiller
tree-killer
[jargon, abuse] (Sun) 1. A printer.
2. A person who wastes paper. This epithet should be interpreted in a broad sense; "wasting paper" includes the production of {spiffy} but {content-free} documents. Thus, most {suits} are tree-killers.
This term may derive from {J.R.R. Tolkien's "Lord of the Rings"
(http://sf.www.lysator.liu.se/sf_archive/sf-texts/SF_resource_guide/sfrgft.htm)}. in which Treebeard the Ent uses it to refer to the orcs' master, Saruman of Isengard. Saruman represents, among other things, technology at its most misguided.
See also: {dead tree}.
[{Jargon File}]
(1999-11-03)

treet
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
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}.
[{Jargon File}]
(1999-01-15)

trellis
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
Trellis Code Modulation
(TCM) A modulation technique with hardware {error detection and correction}.
[Details?]
(1995-02-22)

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)

trident
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
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
Trilogy
[language] A {strongly typed} {logic programming} language with numerical {constraint}-solving over the {natural numbers}, developed by Paul Voda [voda@voda.ii.fmph.uniba.sk] at {UBC} in 1988. Trilogy is syntactically a blend of {Prolog}, {Lisp}, and {Pascal}. It contains three types of {clauses}: {predicates} ({backtracking} but no assignable variables), procedures (if-then-else but no backtracking; assignable variables), and {subroutines} (like procedures, but with input and {system calls}; callable only from top level or from other subroutines).
Development of Trilogy I stopped in 1991. Trilogy II, developed by Paul Voda 1988-92, was a {declarative} general purpose programming language, used for teaching and to write {CL}.
{(http://www.fmph.uniba.sk/~voda)}.
["The Constraint Language Trilogy: Semantics and Computations", P. Voda, Complete Logic Systems, 741 Blueridge Ave, North Vancouver BC, V7R 2J5].
(2000-04-08)

triple des
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)

trit
[unit] /trit/ (By analogy with "{bit}") One base-3 digit; the amount of information conveyed by a selection among one of three equally likely outcomes. Trits arise, for example, in the context of a {flag} that should actually be able to assume *three* values - such as yes, no, or unknown. Trits are sometimes jokingly called "3-state bits". A trit may be semi-seriously referred to as "a bit and a half", although it is linearly equivalent to 1.5849625 bits (that is, log2(3) bits).
[{Jargon File}]
(1995-05-11)

triton
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
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
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
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
TRO
{tail recursion optimisation}

troff
[text, tool] /T'rof/ or /trof/ The grey eminence of {Unix} text processing; a formatting and phototypesetting program, written originally in {PDP-11} {assembly code} and then in barely-structured early {C} by the late Joseph Ossanna, modelled after the earlier {ROFF} which was in turn modelled after {Multics}' {RUNOFF} by Jerome Saltzer (*that* name came from the expression "to run off a copy"). A companion program, {nroff}, formats output for terminals and line printers.
In 1979, Brian Kernighan modified troff so that it could drive phototypesetters other than the Graphic Systems CAT. His paper describing that work ("A Typesetter-independent troff", AT&T CSTR #97) explains troff's durability. After discussing the program's "obvious deficiencies - a rebarbative input syntax, mysterious and undocumented properties in some areas, and a voracious appetite for computer resources" and noting the ugliness and extreme hairiness of the code and internals, Kernighan concludes:
None of these remarks should be taken as denigrating Ossanna's accomplishment with TROFF. It has proven a remarkably robust tool, taking unbelievable abuse from a variety of preprocessors and being forced into uses that were never conceived of in the original design, all with considerable grace under fire.
The success of {TeX} and desktop publishing systems have reduced troff's relative importance, but this tribute perfectly captures the strengths that secured troff a place in hacker folklore; indeed, it could be taken more generally as an indication of those qualities of good programs that, in the long run, hackers most admire.
{groff} is {GNU}'s implementation of {roff} in {C++}.
[{Jargon File}]
(1995-03-21)

troglodyte
[jargon] (Commodore) 1. A hacker who never leaves his cubicle. The term "Gnoll" (from Dungeons & Dragons) is also reported.
2. A curmudgeon attached to an obsolescent computing environment. The combination "ITS troglodyte" was flung around some during the {Usenet} and {e-mail} wringle-wrangle attending the 2.x.x revision of the {Jargon File}; at least one of the people it was intended to describe adopted it with pride.
[{Jargon File}]
(1995-01-11)

troglodyte mode
[jargon] (Rice University) Programming with the lights turned off, sunglasses on, and the terminal inverted (black on white) because you've been up for so many days straight that your eyes hurt (see {raster burn}). Loud music blaring from a stereo stacked in the corner is optional but recommended.
See {larval stage}, {hack mode}.
[{Jargon File}]
(1995-03-21)

trojan horse
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}.
[{Jargon File}]
(1995-03-21)

troll
TROLL
An {array} language for {continuous simulation}, econometric modelling or statistical analysis.
["TROLL Reference Manual", D0062, Info Proc Services, MIT (1973-76)].

troll
An {electronic mail} message, {Usenet} posting or other (electronic) communication which is intentionally incorrect, but not overtly controversial (compare {flame bait}), or the act of sending such a message. Trolling aims to elicit an emotional reaction from those with a hair-trigger on the reply key. A really subtle troll makes some people lose their minds.
(1994-10-17)

tron
TRON
1. [project] {The Real-Time Operating System Nucleus}.
2. [language, programming, testing, tool] (TRace ON) A {command} used when {debugging} {programs} written in early {line-numbered} {BASIC} that contained {GOTO} and {GOSUB} statements.
When the TRON command had been {executed}, the program ran with a {window} open indicating the line number being executed at that instant.
The {TROFF} (an abbreviation for "TRace OFF") command turned the {tracing} off.
(2003-02-02)

tron
[jargon] ({NRL}, {CMU}, probably from the film "Tron") To become inaccessible except via {electronic mail} or {talk} especially when one is normally available via telephone or in person.
Compare {spod}.
[{Jargon File}]
(1994-11-03)

trouble came back
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
TRS
{term rewriting system}

trs80
TRS-80
[computer] A series of {personal computers} sold by {Tandy Radio Shack}. The '80' refers to the use of {Zilog Z-80} processor (NOT {Intel 80x8x}).
There were 7.5 computers in the TRS-80 line: Models I, II, III, 4, 100, 102, 200. The Model 4P was a portable version of the Model 4 with no tape drive -- only 2 1/2-height single sided disk drives.
Later models that Radio Shack produced were not TRS-80 machines -- they were based on the {Intel 80x8x} architecture. These included Tandy 1000, Tandy 2000, Tandy 3000, and others. The 1000 had a proprietary Color card. The 2000 was a powerful machine for its time, but was based on the {Intel 80186}, so when {IBM} didn't build a computer based on this chip, it failed. It was used to design a boat for the America's Cup.
The TRS-80 {GUI}, DeskMate, was proprietary, but no more than {Windoze} at the time.
Many joke about "{TRaSh-80}" machines but several models were in fact classics of their time.
(1996-02-18)

truchet point
Truchet point
[unit, text] An obsolete variant of the {point}, equal to 0.188 mm.
(2002-03-11)

true basic
True BASIC
[language] A compiled {BASIC}, by John Kemeny and Thomas E. Kurtz, requiring no {line numbers}.
(1996-03-24)

true colour
[graphics] A system where the red, green, and blue components of a colour are stored in {display memory}, as opposed to storing {logical colours} and using a {colour palette} to convert them to red, green, blue components.
The advantage of true colour over a palette is that it does not restrict the range of colours which can be displayed on screen simultaneously. For example, if eight bits are used to store each component of each {pixel} then a total of 2^24 (about 17 million) different colours can be displayed at once which would require a (very expensive) palette with 3 * 2^24 bytes (about 50 megabytes) of memory.
The disadvantage of true colour is that image transformations which would normally be done by changing the palette must be done to every pixel of the image which can be much slower.
Compare {high colour}.
(1996-03-24)

true hacker
[person] (By analogy with "trufan" from SF fandom) One who exemplifies the primary values of hacker culture, especially competence and helpfulness to other hackers. A high compliment. "He spent 6 hours helping me bring up UUCP and netnews on my FOOBAR 4000 last week - manifestly the act of a true-hacker".
Compare {demigod}, opposite: {munchkin}.
[{Jargon File}]
(1996-01-07)

truetype
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
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
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
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
TSAP
{Transport Service Access Point}

tsee
TSEE
Technical and Engineering Environment: part of the RTEE toolset.

tsia
TSIA
[messaging] Title Says It All. Something to put in the body of a {electronic mail} message or {bulletin board} posting when no body is really necessary because the title or subject header contains the whole message.
(2000-02-10)

tsim
Tsim
{Time Simulator}

tsl1
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
TSO
{Time Sharing Option}

tsp
TSP
{travelling salesman problem}

tsr
TSR
{Terminate and Stay Resident}

tsv
TSV
{tab-separated values}

tt
[networking] The {country code} for Trinidad and Tobago.
(1999-01-27)

ttd
TTD
{Telecommunications Device for the Deaf}

ttfn
TTFN
[chat] ta-ta for now - goodbye for now. Used in the UK, USA and probably elsewhere.
(1998-07-02)

ttl
TTL
1. {transistor-transistor logic}.
2. {Time to Live}.

tts
TTS
{Text To Speech}

tty
[hardware] /tit'ee/ ({ITS} pronunciation, but some {Unix} people say it this way as well; this pronunciation is not considered to have sexual undertones), /T T Y/
1. {teletypewriter}.
2. (Especially {Unix}) Any terminal at all; sometimes used to refer to the particular terminal controlling a given job (it is also the name of a Unix command which outputs the name of the current controlling terminal).
3. ({Unix}) Any {serial port}, whether or not the device connected to it is a terminal; so called because under Unix such devices have names of the form tty*. Ambiguity between senses 2 and 3 is common but seldom bothersome.
4. A {TDD}.
[{Jargon File}]
(1995-11-23)

ttyl
TTYL
[chat] talk to you later.
(1998-01-18)

tub
TUB
{Technische Universita't Berlin}. (Berlin technical university).

tuba
TUBA
[networking, protocol] An {Internet} {protocol}, described in {RFC 1347}, {RFC 1526} and {RFC 1561}, and based on the {OSI} {Connectionless Network Protocol} (CNLP).
TUBA is one of the proposals for {Internet Protocol Version 6}.
(1995-04-03)

tube
1. [hardware] A {CRT} terminal. Never used in the mainstream sense of TV; real hackers don't watch TV, except for Loony Toons, Rocky & Bullwinkle, Trek Classic, the Simpsons, and the occasional cheesy old swashbuckler movie.
2. [electronics] {electron tube}.
3. [jargon] (IBM) To send a copy of something to someone else's terminal. "Tube me that note."
[{Jargon File}]
(1996-02-05)

tube time
Time spent at a terminal or console. More inclusive than hacking time; commonly used in discussions of what parts of one's environment one uses most heavily. "I find I'm spending too much of my tube time reading mail since I started this revision."
[{Jargon File}]

tuckals
Tuckals
An old statistical package still in use on some {VM} computers.
(1995-11-28)

tui
Tui
[language] A {functional programming language}.
["Tui Language Manual", B. Boutel, TR CSD-8-021, Victoria U of Wellington, 1988].
(2002-07-16)

tukey john
Tukey, John
{John Tukey}

tuki
Tuki
An intermediate code for functional languages. "Another Implementation Technique for Applicative Languages", H. Glaser et al, ESOP86, LNCS 213, Springer 1986.

tunafish
[humour, operating system] In hackish lore, refers to the mutated punchline of an age-old joke to be found at the bottom of the manual pages of "tunefs(8)" in the original {4.2BSD} distribution. The joke was removed in later releases once commercial sites started using 4.2. Tunefs relates to the "tuning" of {file-system} parameters for optimum performance, and at the bottom of a few pages of wizardly inscriptions was a "BUGS" section consisting of the line "You can tune a file system, but you can't tunafish". Variants of this can be seen in other BSD versions, though it has been excised from some versions by humourless management droids. The [nt]roff source for SunOS 4.1.1 contains a comment apparently designed to prevent this: "Take this out and a Unix Demon will dog your steps from now until the "time_t's wrap around."
[{Jargon File}]
(1997-01-12)

tune
[jargon] (From musical, possibly via automotive, usage) To {optimise} a program or system for a particular environment, especially by adjusting numerical parameters designed as {hooks} for tuning, e.g. by changing "#define" lines in C. One may "tune for time" (fastest execution), "tune for space" (least memory use), or "tune for configuration" (most efficient use of hardware).
See {bum}, {hot spot}, {hand-hacking}.
[{Jargon File}]
(1999-06-05)

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
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
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
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
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
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
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
Turing
1. {Alan Turing}.
2. R.C. Holt [holt@csri.toronto.edu] & J.R. Cordy [cordy@cs.queensu.ca], U Toronto, 1982. Descendant of Concurrent Euclid, an airtight super-Pascal. Used mainly for teaching programming at both high school and university level.
Available from Holt Software Assocs, Toronto.
Versions for Sun, {MS-DOS}, Mac, etc.
E-mail: [distrib@turing.toronto.edu].
["Turing Language Report", R.C. Holt & J.R. Cordy, Report CSRI-153, CSRI, U Toronto, Dec 1983].
["The Turing Programming Language", R.C. Holt & J.R. Cordy, CACM 31(12) (Dec 1988)].

turing machine
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)

turing plus
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 tarpit
Turing tar-pit
A place where anything is possible but nothing of interest is practical. {Alan M. Turing} helped lay the foundations of computer science by showing that all machines and languages capable of expressing a certain very primitive set of operations are logically equivalent in the kinds of computations they can carry out, and in principle have capabilities that differ only in speed from those of the most powerful and elegantly designed computers. However, no machine or language exactly matching Turing's primitive set has ever been built (other than possibly as a classroom exercise), because it would be horribly slow and far too painful to use.
A "Turing tar-pit" is any computer language or other tool that shares this property. That is, it's theoretically universal but in practice, the harder you struggle to get any real work done, the deeper its inadequacies suck you in. Compare {bondage-and-discipline language}.
A tar pit is a geological occurence where subterranean tar leaks to the surface, creating a large puddle (or pit) of tar. Animals wandering or falling in get stuck, being unable to extricate themselves from the tar. La Brea, California, has a museum built around the fossilized remains of mammals and birds found in such a tar pit.
[{Jargon File}]
(1998-06-27)

turing test
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)

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

turist
/too'rist/ Variant spelling of {tourist}. Possibly influenced by {luser} and "{Turing}".
[{Jargon File}]

turn
TURN
[messaging, protocol] An {SMTP} command with which a {client} asks the {server} to open an SMTP connection to the client, thus reversing their roles.
Superseded by {ETRN}.
(1997-11-21)

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

turtle graphics
[graphics] The line drawings produced by programs in {LOGO}.
(2003-05-04)

tutor
TUTOR
A Scripting language on {PLATO} systems from {CDC}.
["The TUTOR Language", Bruce Sherwood, Control Data, 1977].

tuxedo
Tuxedo
[database, networking] {Cross-platform} distributed {transaction monitor} {middleware} marketed by {BEA systems}. Tuxedo supports the production of {scalable} {client-server} applications and the coordination of {transactions} spanning heterogeneous {databases}, {operating systems}, and {hardware}.
{BEA Home (http://www.beasys.com/)}.
[Connection with {Novell, Inc.}?]
(2003-01-08)

tv
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
TWAIN
[graphics, standard] An {image capture} {API} for {Microsoft Windows} and {Apple Macintosh} {operating systems}. The standard was first released in 1992, and is currently ratified at version 1.9 as of January 2000. TWAIN is typically used as an interface between {image processing} software and a {scanner} or {digital camera}.
The word TWAIN is from Kipling's "The Ballad of East and West" - "...and never the twain shall meet...", reflecting the difficulty, at the time, of connecting scanners and personal computers. It was up-cased to TWAIN to make it more distinctive. This led people to believe it was an acronym, and then to a contest to come up with an expansion. None were selected, but the entry "Technology Without An Interesting Name" continues to haunt the standard.
{Home (http://www.twain.org/)}.
(2000-02-25)

tweak
1. To change slightly, usually in reference to a value. Also used synonymously with {twiddle}. If a program is almost correct, rather than figure out the precise problem you might just keep tweaking it until it works. See {frobnicate} and {fudge factor}; also see {shotgun debugging}.
2. To {tune} or {bum} a program; preferred usage in the UK.
[{Jargon File}]

tweening
[graphics] An {interpolation} technique where an {animation} program generates extra frames between the key frames that the user has created. This gives smoother animation without the user having to draw every frame.
A scene is described by a mathematical model - a set of two- or three-dimensional objects whose positions in are given by sets of coordinates. Tweening uses mathematical formulae to generate these coordinates at a sequence of discrete times. The simplest system would move each point at a constant rate in a straight line between its initial and final positions, though other kinds of path are possible. The coordinates at each time step are used to generate (or "render") a two-dimensional image of the scene which forms one "frame" of the animation.
Tweening is similar to {morphing} except that morphing is usually performed by interpolating between corresponding points marked by the user on two images, rather than between two configurations of a model.
(1995-04-04)

tweeter
{woofer}

twenex
TWENEX
[operating system] /twe'neks/ The TOPS-20 {operating system} by {DEC} - the second proprietary OS for the {PDP-10} - preferred by most PDP-10 hackers over TOPS-10 (that is, by those who were not {ITS} or {WAITS} partisans). TOPS-20 began in 1969 as {Bolt, Beranek & Newman}'s {TENEX} operating system using special paging hardware. By the early 1970s, almost all of the systems on the {ARPANET} ran TENEX. DEC purchased the rights to TENEX from BBN and began work to make it their own. The first in-house code name for the operating system was VIROS (VIRtual memory Operating System); when customers started asking questions, the name was changed to SNARK so DEC could truthfully deny that there was any project called VIROS. When the name SNARK became known, the name was briefly reversed to become KRANS; this was quickly abandoned when someone objected that "krans" meant "funeral wreath" in Swedish (though some Swedish speakers have since said it means simply "wreath"; this part of the story may be apocryphal).
Ultimately DEC picked TOPS-20 as the name of the operating system, and it was as TOPS-20 that it was marketed. The hacker community, mindful of its origins, quickly dubbed it TWENEX (a contraction of "twenty TENEX"), even though by this point very little of the original TENEX code remained (analogously to the differences between AT&T V6 Unix and BSD). DEC people cringed when they heard "TWENEX", but the term caught on nevertheless (the written abbreviation "20x" was also used). TWENEX was successful and very popular; in fact, there was a period in the early 1980s when it commanded as fervent a culture of partisans as Unix or ITS - but DEC's decision to scrap all the internal rivals to the VAX architecture and its relatively stodgy VMS OS killed the DEC-20 and put a sad end to TWENEX's brief day in the sun. DEC attempted to convince TOPS-20 users to convert to {VMS}, but instead, by the late 1980s, most of the TOPS-20 hackers had migrated to Unix.
[{Jargon File}]
(1995-04-01)

twente compiler generator system
Twente Compiler Generator System
[language, tool] (TCGS) A {compiler generator} developed at the {University of Twente}, The Netherlands.
(1998-04-27)

twentel
Twentel
A {functional language}.
["The TWENTEL System (Version 1).", H. Kroeze, CS Dept TR, U Twente, 1986].

twiddle
1. [character] The {tilde} character.
2. [jargon] (To make) a small or insignificant change. E.g. twiddling a program often fixes one bug and generates several new ones (see also {shotgun debugging}). Bits are often twiddled. Twiddling a switch or knob implies much less sense of purpose than toggling or {tweak}ing it; see {frobnicate}. {Bit twiddling} connotes aimlessness, and at best doesn't specify what you're doing to the bit; to "{toggle} a bit" has a more specific meaning.
[{Jargon File}]
(1995-01-31)

twig
TWIG
Tree-Walking Instruction Generator.
A {code generator} language. {ML-Twig} is an {SML/NJ} variant.
["Twig Language Manual", S.W.K. Tijang, CS TR 120, Bell Labs, 1986].
(1995-01-31)

twilight zone
[IRC] Notionally, the area of cyberspace where {IRC} operators live. An {op} is said to have a "connection to the twilight zone".
[{Jargon File}]

twin vector quantization
Twin Vector Quantization
[audio, compression] (VQF) Part of the {MPEG-4} {standard} dealing with time domain weighted interleaved {vector quantization}.
[Why "VQF"?]
(2001-12-17)

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/20 of a {Postscript point}, or 1/1440th of an inch. There are thus 1440 twips to an inch or about 567 twips to a centimeter.
Twips are used in {Microsoft} formats and products, notably {Rich Text Format}, {Visual BASIC}, {Visual C++}, and {printer drivers}; and in {IBM} {AFP} products.
Twips were devised in the olden days to describe the sizes of characters produced by {dot matrix printers} that were constrained to multiples of either 12 or 10 dots per inch.
[Is it definitely relative to a _Postscript_ point, as opposed to one of the other definitions of {point}?]
(2002-03-11)

twirling baton
[graphics] The overstrike sequence -/|\-/|\- which produces an animated twirling baton. If you output it with a single backspace between characters, the baton spins in place. If you output the sequence BS SP between characters, the baton spins from left to right. If you output BS SP BS BS between characters, the batton spins from right to left.
The twirling baton was a popular component of animated signature files on the pioneering {PLATO} educational {time-sharing} system. The "{archie}" {Internet} service is perhaps the best-known baton program today; it uses the twirling baton as an idler indicating that the program is working on a query.
[{Jargon File}]
(1995-02-23)

twisted pair
[hardware] A type of cable in which pairs of conductors are twisted together to randomise possible {cross-talk} from nearby wiring. Inadequate twisting is detectable using modern cable testing instruments.
(1995-02-23)

twisted pair only
[networking] (TPO) A network connection to an {Ethernet} {PCMCIA} card using {twisted pair} cable.
[Other options?]
(1997-05-12)

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
.twmrc
[operating system] (Tab Window Manager run commands) The configuration file for {twm}.
See also {rc}.
(1996-04-09)

twobinary onequaternary
two-binary, one-quaternary
[communications] (2B1Q) A {physical layer} encoding used for {Integrated Services Digital Network} {basic rate interface}. 2B1Q represents two {bit}s (2B - a "dibit") using one of four signal levels (1Q - a "quadratude"). The first bit of the dibit is indicated by polarity: positive indicates a binary 1 and negative indicates a 0. The second half of the dibit is indicated by voltage magnitude: 1 Volt indicates a binary 1 and 3 Volts indicates binary 0.
(2003-01-10)

twonkie
/twon'kee/ The software equivalent of a Twinkie (a variety of sugar-loaded junk food, or (in gay slang) the male equivalent of "chick"); a useless "feature" added to look sexy and placate a {marketroid}.
Compare {Saturday-night special}.
The term may also be related to "The Twonky", title menace of a classic SF short story by Lewis Padgett (Henry Kuttner and C. L. Moore), first published in the September 1942 "Astounding Science Fiction" and subsequently much anthologised.
[{Jargon File}]
(1994-10-20)

twophase commit
two-phase commit
[database] A technique for maintaining {integrity} in distributed {databases}. Where a system uses two or more database, a transaction among the distibuted database should be {atomic} ("all or nothing"). This is done by handling the transaction in two phases. First the databases prepare the transaction, confirm that it is possible to process it, and lock the relevant record.
Once all the required databases confirm that the transaction is viable, the system instructs them all to {commit} it - i.e. to make it permanent. If it is not possible to process it, the system will instruct the databases to {rollback} (undo) the transaction.
(2000-02-28)

twos complement
[data] A system used in some computers to represent negative numbers in {binary}. Each {bit} of the number is inverted (zeros are replaced with ones and vice versa), as for {ones complement}, but then one (000...0001) is added (ignoring overflow). This avoids the two representations for zero found in ones complement by using all ones to represent -1.
... 000...00011 = +3 000...00010 = +2 000...00001 = +1 000...00000 = 0 111...11111 = -1 111...11110 = -2 111...11101 = -3 ...
This representation simplifies the logic required for addition and subtraction, at the expense of a little extra complexity for negation.
(1994-10-31)

twotothen
two-to-the-N
An amount much larger than {N} but smaller than {infinity}. "I have 2-to-the-N things to do before I can go out for lunch" means you probably won't show up.
Numbers of the form two-to-the-N are very important in computing because they represent the value of bit N of a binary number (counting from 0) and the number of things you can count with an N bit number.
[{Jargon File}]
(1994-12-06)

twovalued logic
two-valued logic
[logic] (Commonly known as "{Boolean algebra}") A mathematical system concerning the two {truth values}, TRUE and FALSE and the functions {AND}, {OR}, {NOT}. Two-valued logic is one of the cornerstones of {logic} and is also fundamental in the design of {digital electronics} and {programming languages}.
The term "Boolean" is used here with its common meaning - two-valued, though strictly {Boolean algebra} is more general than this.
Boolean functions are usually represented by {truth tables} where "0" represents "false" and "1" represents "true". E.g.:
A | B | A AND B --+---+-------- 0 | 0 | 0 0 | 1 | 0 1 | 0 | 0 1 | 1 | 1
This can be given more compactly using "x" to mean "don't care" (either true or false):
A | B | A AND B --+---+-------- 0 | x | 0 x | 0 | 0 1 | 1 | 1
Similarly:
A | NOT A A | B | A OR B --+------ --+---+-------- 0 | 1 0 | 0 | 0 1 | 0 x | 1 | 1 1 | x | 1
Other functions such as {XOR}, {NAND}, {NOR} or functions of more than two inputs can be constructed using combinations of AND, OR, and NOT. AND and OR can be constructed from each other using {DeMorgan's Theorem}:
A OR B = NOT ((NOT A) AND (NOT B)) A AND B = NOT ((NOT A) OR (NOT B))
In fact any Boolean function can be constructed using just NOR or just NAND using the identities:
NOT A = A NOR A A OR B = NOT (A NOR B)
and {DeMorgan's Theorem}.
(2003-06-18)

tx0
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
TXL
{Tree Transformation Language}

tymcomx
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
TYMNET
[networking, history] A United States-wide commercial computer network, created by {Tymshare, Inc.} some time before 1970, and used for {remote login} and file transfer. The network public went live in November 1971.
In its original implementation, it consisted of fairly simple circuit-oriented {nodes}, whose circuits were created by central network supervisors writing into the appropriate nodes' "permuter tables". The supervisors also performed login validations as well as circuit management. Circuits were character oriented and the network was oriented toward interactive character-by-character {full-duplex} communications circuits.
The network had more than one supervisor running, but only one was active, the others being put to sleep with "sleeping pill" messages. If the active supervisor went down, all the others would wake up and battle for control of the network. After the battle, the supervisor with the highest pre-set priority would dominate, and the network would then again be controlled by only one supervisor. (During the takeover battle, the net consisted of subsets of itself across which new circuits could not be built). Existing circuits were not affected by supervisor switches.
There was a clever scheme to switch the echoing function between the local node and the host based on whether or not a special character had been typed by the user. Data transfers were also possible via "auxiliary circuits".
The Tymshare hosts (which ran customer code) were {SDS 940}, {DEC} {PDP-10}, and eventually {IBM 370} computers. {Xerox} {XDS 940} might have been used if Xerox, who bought the design for the SDS 940 from Scientific Data Systems, had ever built any.
The switches were originally {Varian Data Machines} 620i. The {Interdata 8/32} was never used because the performance was disappointing. The TYMNET Engine, based loosely on the Interdata 7/32, was developed instead to replace the Varian 620i. in the early 1990s, newer "Turbo" nodes based on the {Motorola 68000} began to replace the 7/32s. These were later replaced with {SPARC}s.
PDP-10s supported (and still do in 1999) cross-platform development and billing.
{Tymshare, Inc.} originally wrote and implemented TYMNET to provide nationwide access for their {time-sharing} customers.
La Roy Tymes booted up the public TYMNET in November of 1971 and, as of March 2002, it had been running ever since without a single system crash.
TYMNET was the largest commercial network in the United States in its heyday, with nodes in every major US city and a few overseas as well. Tymshare acquired a French subsidiary, {SLIGOS}, and had TYMNET nodes in Paris, France.
Tymshare sold the TYMNET network software to {TRW}, who created their own private network (which was not called TYMNET). In about 1979, TYMNET Inc. was spun off from Tymshare, Inc. to continue administration and development of the network.
TYMNET outlived its parent company Tymshare and was acquired by {MCI}. As of May 1994 they still ran three {DEC KL-10}s under {TYMCOM-X}, although they planned to decommission them soon.
The original creators of TYMNET included: Ann Hardy, Norm Hardy, Bill Frantz. La Roy Tymes (who always insisted that his name was NOT the source of the name) wrote the first supervisor which ran on the 940. Joe Rinde made many significant technical and marketing contributions. La Roy wrote most of the code of the network proper. Several others wrote code in support of development and administration. Just recently (1999) La Roy, on contract, wrote a version of the supervisor to run on {SPARC} hardware.
The name TYMNET was suggested by Vigril Swearingen in a weekly meeting between Tymshare technical and marketing staff in about 1970.
{(http://cap-lore.com/ETH.html)}.
[E-mail from La Roy Tymes]
(2002-11-26)

tymshare inc
Tymshare, Inc.
[company] The US company that created the {TYMNET} network.
(1999-03-17)

type
[theory, programming] (Or "data type") A set of values from which a variable, constant, function, or other expression may take its value. A type is a classification of data that tells the {compiler} or {interpreter} how the programmer intends to use it. For example, the process and result of adding two variables differs greatly according to whether they are integers, floating point numbers, or strings.
Types supported by most programming languages include {integers} (usually limited to some range so they will fit in one {word} of storage), {Booleans}, {floating point numbers}, and characters. {Strings} are also common, and are represented as {lists} of characters in some languages.
If s and t are types, then so is s -] t, the type of {functions} from s to t; that is, give them a term of type s, functions of type s -] t will return a term of type t.
Some types are {primitive} - built-in to the language, with no visible internal structure - e.g. Boolean; others are composite - constructed from one or more other types (of either kind) - e.g. lists, {structures}, {unions}.
Some languages provide {strong typing}, others allow {implicit type conversion} and/or {explicit type conversion}.
(2002-02-22)

type assignment
[theory] A mapping of the {free variables} of some expression E to types. This is used in {type inference} to deduce the type of E and its subexpressions.
(2002-02-22)

type class
A set of types for which certain operations or {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}.

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)

typeahead
type-ahead
[operating system] The facility where the user can type more characters before the system has fully responded to those already typed. Type-ahead is common on most current systems. It allows the user to type without worrying that the computer may miss input because it is temporarily busy, e.g. reformating a page, checking spelling, or simply suffering from network latency. There is usually some limit to the amount of input the system can buffer, beyond which it _will_ lose input.
[Equivalent term for {speech recognition}?]
(2003-06-15)

typeahead search
type-ahead search
{incremental search}

typed lambdacalculus
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
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)

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
TYPOL
A specialised {logic programming} language.
["TYPOL: A Formalism to Implement Natural Semantics", T. Despeyroux, RR 94, INRIA, 1988].
(1994-10-31)

tz
[networking] The {country code} for Tanzania.
(1999-01-27)

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

ua
[networking] The {country code} for the Ukraine.
(1999-01-27)

uan
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
UART
{Universal Asynchronous Receiver/Transmitter}

uaw
UAW
[spelling] Misspelling of "{IAW}"?

ubasic
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
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
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
UCB
{University of California at Berkeley}

ucode
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
UCS
{Universal Character Set}

ucs transformation format
UCS transformation format
[standard, character] (UTF) A set of standard {character encodings} in accordance with {ISO 10646}.
One of a set of standard character encodings, the most widely used of which are UTF-8, UTF-16, and UTF-32. The code tables in ISO 10646 and in the {Unicode} standard are identical, although the Unicode standard includes additional material.
UTF-8 is the most widely used encoding, at least on {Unix} systems. Since it does not include any bytes like '\0' or '/' which have a special meaning in filenames and other {C} library function parameters, and 7-bit ASCII characters have the same encoding under both {ASCII} and UTF-8, the required changes to existing software are minimised.
Other UTFs: UTF-1 and UTF-7 are not widely used.
{UTF-8 and Unicode FAQ for Unix/Linux (http://www.cl.cam.ac.uk/~mgk25/unicode.html#ucs)}.
(2002-01-15)

ucsd pascal
UCSD Pascal
{Pascal-P}

ucx
UCX
{Universal Communications X}

udb
{Universal Debugger}

uddi
UDDI
{Universal Description, Discovery, and Integration}

udf
UDF
{Universal Disk Format}

udma
UDMA
{ATA-4}

udp
UDP
{User Datagram Protocol}

uemacs
{MicroEmacs}. ("u" looks a bit like the Greek letter micro).

ufo
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
UGLIAC
AN early system on the {Datatron 200} series.
[Listed in CACM 2(5):16 (May 1959)].

uhelp
UHELP
A {linear programming} system.
["UHELP User's Manual", D. Singh, Indus Eng Dept, U Houston (Oct 1969)].

ui
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
UIDL
{Unique ID Listing}

uil
UIL
{User Interface Language}

uims
UIMS
User Interface Management System: a system supporting the development and execution of user interfaces, usually on top of windowing systems.

uimx
UIMX
An interface builder for Motif from Visual Edge.

uis
UIS
[graphics, programming] A {VMS} graphics programming interface package for {VAXstations}.
(1998-10-25)

uk
[networking] The {country code} for United Kingdom.
(1999-01-27)

ukc
UKC
{University of Kent at Canterbury}

ukerna
UKERNA
{United Kingdom Education and Research Networking Association}

ukuug
UKUUG
{United Kingdom Unix Users Group}

ulcc
ULCC
{University of London Computing Centre}

ulms modula2 system
Ulm's Modula-2 System
[language] A {Modula-2} {compiler}, library and tools by Andreas Borchert [borchert@mathematik.uni-ulm.de]. The compiler is derived from the {ETHZ} compiler for the {Lilith} system. Version 2.2.1 conforms to {PIM3}. It requires {gas} version 1.36 (to be found in the same directory). Commercial use requires a licence. It runs on {Sun-3}, {Nixdorf} {Targon}/31, {Concurrent} 3200 Series.

{(ftp://titania.mathematik.uni-ulm.de/pub/soft/modula/ulm/sun3/modula-2.2.1.tar.Z)}.
(1992-03-02)

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

ultra dma
Ultra DMA
{ATA-4}

ultra64
Ultra64
[hardware, games] A {Nintendo} games machine, unveiled in May 1995.
[Details?]
(1995-05-10)

ultraata
Ultra-ATA
{ATA-4}

ultrascsi
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
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
UMB
1. {Upper Memory Block}.
2. A university(?).
(1996-01-10)

umb scheme
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
UMDL
{University of Michigan Digital Library Project}

uml
UML
{Unified Modeling Language}

uml
uML
{Micro ML}

umts
UMTS
{Universal Mobile Telecommunications System}

unary
1. [programming] (or "{monadic}") A description of a {function} or {operator} which takes one {argument}, e.g. the unary minus operator which negates its argument. The term is part of the same sequence as {nullary} and {binary}.
2. [data, humour] Base one. A number base with only one digit, namely zero, and which can therefore only be used to express the number zero. Attempting to add one to zero results in an infinite sequence of carries. Numbers in unary notation can be represented particularly efficiently however since each digit requires no storage.
(2001-02-25)

unc
UNC
[networking] {Uniform Naming Convention}.
(1995-11-09)

uncl
UNCL
{Universal Naming Code Locater}

uncol
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.
[{Jargon File}]

under the hood
[hot-rodder talk] 1. The underlying implementation of a product (hardware, software, or idea). Implies that the implementation is not intuitively obvious from the appearance, but the speaker is about to enable the listener to {grok} it. "Let's now look under the hood to see how ...."
2. Can also imply that the implementation is much simpler than the appearance would indicate: "Under the hood, we are just fork/execing the shell."
3. Inside a chassis, as in "Under the hood, this baby has a 40MHz 68030!"
[{Jargon File}]

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

undocumented feature
See {feature}.

unet limited
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}

unfoldfold
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
UNI
1. [standard, body] {Ente Nazionale Italiano di Unificazione}.
2. [networking] {User Network Interface}.
(1999-02-01)

unicode
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 Jurgen Bettels and F. Avery Bishop's paper {Unicode: A universal character code (http://research.compaq.com/wrl/DECarchives/DTJ/DTJB02/DTJB02SC.TXT)}.
(2002-08-06)
2. [language] Pre-{Fortran} on the {IBM 1103}, similar to {MATH-MATIC}.
[Sammet 1969, p.137].
(1997-11-15)

unicomal
UniCOMAL
{COMmon Algorithmic Language}

unicos
A {Unix} variant for {Cray} computers.
[More details?]
(1994-12-06)

uniface
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
Unified Han
{Han character}

unified modeling language
Unified Modeling Language
[language] (UML) A non-proprietary, third generation {modelling language}. The Unified Modeling Language is an open method used to specify, visualise, construct and document the artifacts of an {object-oriented} software-intensive system under development. The UML represents a compilation of "best engineering practices" which have proven successful in modelling large, complex systems.
UML succeeds the concepts of {Booch}, {OMT} and {OOSE} by fusing them into a single, common and widely usable modelling language. UML aims to be a standard modelling language which can model {concurrent} and distributed systems.
UML is not an {industry standard}, but is taking shape under the auspices of the {Object Management Group} (OMG). OMG has called for information on object-oriented methodologies, that might create a rigorous software modelling language. Many industry leaders have responded in earnest to help create the standard.
See also: {STP}, {IDE}.
{OMG UML Home (http://www.uml.org/)}.
{Rational UML Resource Center (http://www.rational.com/uml/index.jsp)}.
(2002-01-03)

unifier
The unifier of a set of expressions is a set of substitutions of terms for variables such that the expressions are all equal.
See also {most general unifier}, {unification}.
(1994-12-06)

uniform
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
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
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 Locater
{Uniform Resource Locator}

uniform resource locator
Uniform Resource Locator
[World-Wide Web] (URL, previously "Universal") A {standard} way of specifying the location of an object, typically a {web page}, on the {Internet}. Other types of object are described below. URLs are the form of address used on the {World-Wide Web}. They are used in {HTML} documents to specify the target of a {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://www.foldoc.org/?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:fred@doc.ic.ac.uk news:alt.hypertext telnet://dra.com
The part before the first colon specifies the access scheme or {protocol}. Commonly implemented schemes include: {ftp}, {http} (World-Wide Web), {gopher} or {WAIS}. The "file" scheme should only be used to refer to a file on the same host. Other less commonly used schemes include {news}, {telnet} or mailto ({e-mail}).
The part after the colon is interpreted according to the access scheme. In general, two slashes after the colon introduce a {hostname} (host:port is also valid, or for {FTP} user:passwd@host or user@host). The {port} number is usually omitted and defaults to the standard port for the scheme, e.g. port 80 for HTTP.
For an HTTP or FTP URL the next part is a {pathname} which is usually related to the pathname of a file on the server. The file can contain any type of data but only certain types are interpreted directly by most {browsers}. These include {HTML} and images in {gif} or {jpeg} format. The file's type is given by a {MIME} type in the HTTP headers returned by the server, e.g. "text/html", "image/gif", and is usually also indicated by its {filename extension}. A file whose type is not recognised directly by the browser may be passed to an external "viewer" {application}, e.g. a sound player.
The last (optional) part of the URL may be a query string preceded by "?" or a "fragment identifier" preceded by "#". The later indicates a particular position within the specified document.
Only alphanumerics, reserved characters (:/?#"[]%+) used for their reserved purposes and "$", "-", "_", ".", "&", "+" are safe and may be transmitted unencoded. Other characters are encoded as a "%" followed by two {hexadecimal} digits. Space may also be encoded as "+". Standard {SGML} "&[name];" character entity encodings (e.g. "é") 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)}.
(2000-02-17)

uniform resource name
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
Uniform Resource Number
Former name for {Uniform Resource Name}.

unify
Unify
[database, product] A {relational database} produced by {Unify Corporation}.
(1995-03-15)

unify
[algorithm] To perform {unification}.
(1995-03-15)

unify corporation
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
Unihan
{Han character}

uninstaller
[operating system] A {utility} program to remove another {application program} from a computer's disks.
Most commonly found on {IBM PCs}, as applications tend to leave files in various places on the {hard disc}, so special software is required to tidy up after them.
Ken Spreitzer [ken@maximized.com] claims to have written the original PC program called "UnInstaller", first licensed to {MicroHelp} and now (Feb 1998) sold by {CyberMedia}.
Compare with {installer}.
(1998-02-09)

uninteresting
[jargon] 1. Said of a problem that, although {nontrivial}, can be solved simply by throwing sufficient resources at it.
2. Also said of problems for which a solution would neither advance the state of the art nor be fun to design and code.
Hackers regard uninteresting problems as intolerable wastes of time, to be solved (if at all) by lesser mortals. *Real* hackers (see {toolsmith}) generalise uninteresting problems enough to make them interesting and solve them - thus solving the original problem as a special case (and, it must be admitted, occasionally turning a molehill into a mountain, or a mountain into a tectonic plate).
See {WOMBAT}, {SMOP}. Compare {toy problem}. Oppose {interesting}.
[{Jargon File}]
(1995-03-10)

uninterruptible power supply
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)

union
1. [set theory] An operation on two {sets} which returns the set of all elements that are a member of either or both of the argument sets; normally written as an infix upper-case U symbol. The operator generalises to zero or more sets by taking the union of the current partial result (initially the empty set) with the next argument set, in any order.
For example, (a, b, c) U (c, d, e) = (a, b, c, d, e)
2. [programming] A {type} whose values may be of one of a number of other types, thet current type depending on conditions that are only known at {run-time}. A {variable} of union type must be allocated sufficient storage space to hold the largest component type. Some unions include extra information to say which type of value the union currently has (a "tagged union"), others rely on the program to keep track of this independently.
A union contrasts with a {structure} or {record} which stores values of all component types at once.
3. [database] An {SQL} {operator} that concatenates two result sets, that must have the same number and types of {columns}. The operator may be followed by the word "ALL" to indicate that results that appear in both sets should appear twice in the output.
(2002-02-26)

unipalm group plc
Unipalm Group plc
[company] A company floated in March 1994.
{Home (http://www.unipalm.co.uk/index.html)}.
(1996-12-11)

unipress software inc
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
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
Unique ID Listing
[messaging] (UIDL) A system used by {POP3} {electronic mail} {servers} to uniquely identify a mail message. Normally, a message is identified by its position in the list of messages but this will change when an earlier message is deleted. The UIDL is a fixed string of characters which is unique to the message. The UIDL of a message never changes and will never be reused, even when the message has been deleted from the user's {mailbox}.
{RFC 1725 (http://ds0.internic.net/rfc/rfc1725.txt)}.
(1997-04-16)

unique key
[database] A {key} which identifies only one body of information out of several.
(1997-04-26)

unique sales point
[product] (USP) A feature that the salesman hopes will convince you to buy his product instead of another.
(1999-10-21)

unir tech
Unir Tech
[company] The company with the exclusive license from {Bell Labs} to distribute {C+@}. Unir is owned and operated by well-known anti-{IETF} ranter, Jim Fleming.
Telephone: +1 (800) 222-8647.
(2002-05-19)

unisap
UNISAP
An early system on {UNIVAC} I or II.
[Listed in CACM 2(5):16 (May 1959)].
(1994-11-22)

unisys corporation
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)

unit separator
Unit Separator
[character] (US) {ASCII} character 31.
(1996-06-29)

unit testing
[testing] The type of {testing} where a developer (usually the one who wrote the code) proves that a code module (the "unit") meets its requirements.
(2003-09-24)

united kingdom unix users group
United Kingdom Unix Users Group
[Unix, body] (UKUUG)
{UKUUG Home (http://www.ukuug.org/)}.
(2002-01-02)

united technologies research cente
United Technologies Research Cente
(UTRC) {http://utrcwww.utc.com/}.
(1994-11-29)

unity
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
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
Universal algebra
[logic] The {model theory} of {first-order} {equational logic}.
(1997-02-25)

universal asynchronous receivertransmitter
Universal Asynchronous Receiver/Transmitter
[communications, hardware] (UART) An {integrated circuit} used for serial communications, containing a transmitter (parallel-to-serial converter) and a receiver (serial-to-parallel converter), each clocked separately.
The parallel side of a UART is usually connected to the {bus} of a computer. When the computer writes a byte to the UART's transmit data register (TDR), the UART will start to transmit it on the serial line. The UART's status register contains a {flag} bit which the computer can read to see if the UART is ready to transmit another byte. Another status register bit says whether the UART has received a byte from the {serial line}, in which case the computer should read it from the receive data register (RDR). If another byte is received before the previous one is read, the UART will signal an "overrun" error via another status bit.
The UART may be set up to {interrupt} the computer when data is received or when ready to transmit more data.
The UART's serial connections usually go via separate {line driver} and {line receiver} {integrated circuits} which provide the power and voltages required to drive the serial line and give some protection against noise on the line.
Data on the {serial line} is formatted by the {UART} according to the setting of the UART's control register. This may also determine the transmit and receive baud rates if the UART contains its own clock circuits or "{baud} rate generators". If incorrectly formated data is received the UART may signal a "{framing error}" or "{parity} error".
Often the clock will run at 16 times the baud rate (bits per second) to allow the receiver to do {centre sampling} - i.e. to read each bit in the middle of its allotted time period. This makes the UART more tolerant to variations in the {clock rate} ("jitter") of the incoming data.
An example of a late 1980s UART was the {Intel 8450}. In the 1990s, newer UARTs were developed with on-chip {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}.
The term "Serial Communications Interface" (SCI) was first used at {Motorola} around 1975 to refer to their start-stop asyncronous serial interface device, which others were calling a UART.
See also {bit bang}.
[Is this the same as an {ACIA}?]
(2003-07-13)

universal character set
Universal Character Set
[character, standard] (UCS, ISO/IEC 10646) A 1993 {ISO} and {IEC} standard {character set}, also known as "Universal Multiple-Octet Coded Character Set".
UCS comes in a 16-bit variant called UCS-2 and a 32-bit variant called UCS-4, which is composed of 16-bit UCS-2 "planes". So far only one 16-bit plane has been defined, which is known as the {Basic Multilingual Plane}.
The implementation of UCS is still in its infancy, though some moves, such as the {Java} language defining a character to be 16 bits, are suggestive.
[Relationship with {Unicode}?]
(1997-07-04)

universal communications x
Universal Communications X
[communications] (UCX) A software implementation of the ubiquitous {TCP/IP} suite of {communications} {protocols} for {Digital Equipment Corporation}'s {OpenVMS} {operating system}.
Users of the {UCX} product can connect to heterogeneous {networks} to access and {download} files, send {electronic mail}, run and develop {applications}, and monitor activity.
{"Software Product Description, DIGITAL TCP/IP Services for OpenVMS, Version 4.2", (http://www.digital.com/info/QAW009/QAW009HM.HTM)}.
(2000-12-15)

universal debugger
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 description discovery and integration
Universal Description, Discovery, and Integration
[standard, protocol] (UDDI) The service discovery {protocol} for {Web Services} through which companies can find one another to conduct business. This standard was unveiled by {Ariba}, {IBM}, {Microsoft}, and 33 other companies in September 2000.
(2002-06-28)

universal disk format
Universal Disk Format
[storage, standard] (UDF) A {CD-ROM} {file system} {standard} that is required for {DVD ROMs}. UDF is the {OSTA}'s replacement for the {ISO 9660} file system used on CD-ROMs, but will be mostly used on DVD. {DVD multimedia} disks use UDF to contain {MPEG} {audio} and {video} {streams}.
To read DVDs you need a DVD drive, the {kernel} driver for the drive, MPEG video support, and a UDF driver. DVDs containing both UDF filesystems and ISO 9660 filesystems can be read without UDF support.
UDF can also be used by {CD-R} and {CD-RW} recorders in {packet writing} mode.
(1999-09-01)

universal quantifier
{quantifier}

universal resource identifier
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
Universal Resource Locator
{Uniform Resource Locator}

universal serial bus
Universal Serial Bus
[hardware, standard] (USB) An external {peripheral} interface {standard} for communication between a computer and external {peripherals} over an inexpensive cable using {biserial} transmission.
USB is intended to replace existing {serial ports}, {parallel ports}, {keyboard}, and {monitor} connectors and be used with {keyboards}, {mice}, {monitors}, {printers}, and possibly some low-speed {scanners} and removable {hard drives}. For faster devices existing {IDE}, {SCSI}, or emerging {FC-AL} or {FireWire} interfaces can be used.
USB works at 12 Mbps with specific consideration for low cost peripherals. It supports up to 127 devices and both {isochronous} and {asynchronous} data transfers. Cables can be up to five metres long and it includes built-in power distribution for low power devices. It supports {daisy chaining} through a tiered star multidrop topology. A USB cable has a rectangular "Type A" plug at the computer end and a square "Type B" plug at the peripheral end.
Before March 1996 Intel started to integrate the necessary logic into {PC} {chip sets} and encourage other manufacturers to do likewise. It was widely available by 1997. Later versions of {Windows 95} included support for it. It was standard on {Macintosh} computers in 1999.
{USB 2.0} is a much faster enhanced version.
{usb.org (http://www.usb.org/)}.
(2002-01-01)

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
Universal Time
[time, standard] (UT) The mean solar time along the prime meridian (0 longitude) that runs through the Greenwich Observatory outside of London, UK, where the current system originated. UT is tied to the rotation of the Earth in respect to the fictitious "mean Sun".
{Greenwich Mean Time} (GMT) was measured from Greenwich mean midday until 1925 when the reference point was changed from noon to midnight and the name changed to "Universal Time".
There are three separate definitions, UT0, UT1, and UT2, depending on which corrections have been applied to the Earth's motion. {Coordinated Universal Time} is kept within 0.9 seconds of UT1, by addition of leap seconds to {International Atomic Time}.
(2001-08-02)

universal time coordinated
Universal Time Coordinated
[time, standard] An incorrect term for {Coordinated Universal Time}.
(2001-08-01)

university of arizona
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
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
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
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
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
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
University of Iceland
[body, education] The Home of {Fjolnir}.
H�sk�li �slands.
{Home (http://www.rhi.hi.is/)}.
(1995-03-17)

university of london computing centre
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
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
University of Michigan Digital Library Project
[project] (UMDL) The {University of Michigan}'s part of the {Digital Library Initiative}.

university of minnesota
University of Minnesota
[body, education] The home of {Gopher}.
{Home (http://www.umn.edu/)}.
Address: Minneapolis, Minnesota, USA.
(1995-01-30)

university of nijmegen
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
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
University of Tasmania
[body, education]
{Home (ftp://ftp.utas.edu.au/)}.
(1995-01-25)

university of twente
University of Twente
[body, education] A university in the east of The Netherlands for technical and social sciences. It was founded in 1961, making it one of the youngest universities in The Netherlands. It has 7000 students studying Applied Educational Science; Applied Mathematics; Applied Physics; Chemical Technology; Computer Science; Electrical Engineering; Mechanical Engineering; Philosophy of science, Technology and Society; Educational Technology.
{Home (http://www.nic.utwente.nl/uthomuk.htm)}.
(1995-04-16)

unix
Unix
[operating system] /yoo'niks/ (Or "UNIX", in the authors' words, "A weak pun on Multics") Plural "Unices". An interactive {time-sharing} {operating system} invented in 1969 by {Ken Thompson} after {Bell Labs} left the {Multics} project, originally so he could play games on his scavenged {PDP-7}. {Dennis Ritchie}, the inventor of {C}, is considered a co-author of the system.
The turning point in Unix's history came when it was reimplemented almost entirely in C during 1972 - 1974, making it the first {source-portable} OS. Unix subsequently underwent mutations and expansions at the hands of many different people, resulting in a uniquely flexible and {developer}-friendly environment.
By 1991, Unix had become the most widely used {multi-user} general-purpose operating system in the world. Many people consider this the most important victory yet of hackerdom over industry opposition (but see {Unix weenie} and {Unix conspiracy} for an opposing point of view).
Unix is now offered by many manufacturers and is the subject of an international standardisation effort [called?]. Unix-like operating systems include {AIX}, {A/UX}, {BSD}, {Debian}, {FreeBSD}, {GNU}, {HP-UX}, {Linux}, {NetBSD}, {NEXTSTEP}, {OpenBSD}, {OPENSTEP}, {OSF}, {POSIX}, {RISCiX}, {Solaris}, {SunOS}, {System V}, {Ultrix}, {USG Unix}, {Version 7}, {Xenix}.
"Unix" or "UNIX"? Both seem roughly equally popular, perhaps with a historical bias toward the latter. "UNIX" is a registered trademark of {The Open Group}, however, since it is a name and not an acronym, "Unix" has been adopted in this dictionary except where a larger name includes it in upper case. Since the OS is {case-sensitive} and exists in many different versions, it is fitting that its name should reflect this.
{The UNIX Reference Desk (http://www.geek-girl.com/unix.html)}.
{Spanish fire extinguisher
(ftp://linux.mathematik.tu-darmstadt.de/pub/linux/people/okir/unix_flame.gif)}.
[{Jargon File}]
(2001-05-14)

unix box
Unix box
{box}

unix brain damage
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.
[{Jargon File}]

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

unix man page
Unix man page
{Unix manual page}

unix manual page
Unix manual page
[operating system] (Or "man page") A part of {Unix}'s extensive on-line documentation. To read a manual page, type
man [-s[section]] [page]
at a shell prompt, e.g. "man ftp" (the section number can usually be omitted). Pages are traditionally referred to using the notation "page(section)", e.g. ftp(1).
Under {SunOS} (which is fairly typical), Section 1 covers commands, 2 {system calls}, 3 C library routines, 4 devices and networks, 5 file formats, 6 games and {demos}, 7 miscellaneous, 8 system administration. Each section has an introduction which can be obtained with, e.g., "man 2 intro".
Manual pages are stored as {nroff} source files. Formatted versions are also usually cached.
{Unix manual page}: man(1).
{A Linux man gateway (http://www.foldoc.org/man.cgi)}.
{A Solaris man gateway (http://www.medsch.wisc.edu/cgi-bin/pdm/man.pl)}.
(2000-03-13)

unix system v
Unix System V
{System V}

unix to unix copy
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)

unix weenie
Unix weenie
[jargon] ({ITS}) 1. A derogatory play on "{Unix wizard}", common among hackers who use {Unix} by necessity but would prefer alternatives. The implication is that although the person in question may consider mastery of Unix arcana to be a wizardly skill, the only real skill involved is the ability to tolerate (and the bad taste to wallow in) the incoherence and needless complexity that is alleged to infest many Unix programs. "This shell script tries to parse its arguments in 69 bletcherous ways. It must have been written by a real Unix weenie."
2. A derogatory term for anyone who engages in uncritical praise of {Unix}. Often appearing in the context "stupid Unix weenie".
See {Weenix}, {Unix conspiracy}, {weenie}.
[{Jargon File}]
(1995-02-27)

unix wizard
Unix wizard
[job] Someone with a deep understanding of {Unix}.
See {wizard}.
(1995-05-11)

unixism
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}.
[{Jargon File}]
(1995-02-27)

unixware
UnixWare
[operating system] {Novell}'s implementation of {Unix} {System 5} heavily based on Release 4.2 but with enhancements and new bundled products.
In 1993 Novell acquired {Unix Systems Laboratories} from {AT&T} along with the Unix trademark. UnixWare was the result of Novell's efforts to make Unix interoperable with {Novell NetWare}.
In 1995 Novell sold UnixWare and the rights to the Unix operating system to {SCO} at a time when UnixWare was gainnig popularity. It was later the first 64-bit operating system on the {Intel} {platform}, and, in 1999, is the world's fastest-growing commercial operating system.
[Any connection with {X/Open}? URL?]
(1999-11-10)

unnormalised
{normalisation}

unproto
A translator from {ANSI C} to {K&R C} by Wietse Venema [wietse@wzv.win.tue.nl].
{(ftp://ftp.win.tue.nl/pub/Unix/unproto4.shar.Z)}.

unshar
A {Unix} utility that removes {e-mail} and {news} {header} lines from its input, and feeds the remainder (which is presumed to be a {shar file}) to /bin/sh to unpack it. unshar is designed for unpacking archives directly from the news or mail systems simply by {piping} a message into it.

unshielded twisted pair
[hardware] (UTP) Normal telephone wire (in the USA). It may be used for computer to computer communications, e.g. using a version of {Ethernet} or {localtalk}. It is much cheaper than standard "full-spec" Ethernet cable. It comes in five "catagories":
cat. wires transmission 1 two voice no data (telephone cable) 2 four data up to 4 Mbps 3 four data up to 10 Mbps 4 four data up to 16 Mbps 5 four data up to 100 Mbps
(2003-07-04)

unswizzle
The opposite of {swizzle}.
[{Jargon File}]
(1995-02-15)

unwind the stack
During the execution of a {procedural} language, one is said to "unwind the stack" from a called {procedure} up to a caller when one discards the {stack frame} and any number of frames above it, {pop}ping back up to the level of the given caller. In {C} this is done with "{longjmp}"/"{setjmp}", in {Lisp} with "{throw}/{catch}". See also {smash the stack}.
[{Jargon File}]

unwindprotect
unwind-protect
({MIT}) A {Lisp} operator which evaluates an expression and then, even if that expression causes a {non-local exit}, evaluates zero or more other expressions. This can be used to ensure that essential "clean-up" operations are performed even in the presence of errors.
[{Jargon File}]
(1994-11-03)

unx
UN*X
[operating system, convention] Used to refer to the {Unix} {operating system} (a trademark of {AT&T}) in writing, but avoiding the need for the ugly (TM) typography. Also used to refer to any or all varieties of Unixoid operating systems. Ironically, lawyers now say that the requirement for the TM-postfix has no legal force, but the asterisk usage is entrenched anyhow.
It has been suggested that there may be a psychological connection to practice in certain religions (especially Judaism) in which the name of the deity is never written out in full, e.g. "YHWH" or "G--d" is used.
See also {glob}.
(1998-04-17)

unzip
1. [tool, compression] To extract files from an archive created with {PKWare}'s {PKZIP} archiver.
2. [tool, compression] A program to list, test, or extract files from a {ZIP} archive, commonly found on {MS-DOS} systems. zip, creates ZIP archives; both programs are compatible with archives created by {PKWARE}'s {PKZIP} and {PKUNZIP} for {MS-DOS}.
(1995-03-06)

up
[jargon] Working, in order. E.g. "The down escalator is up."
Opposite: {down}.
[{Jargon File}]
(1995-03-06)

uparrow
[character] The graphic which the 1963 version of {ASCII} had in place of the {caret} character, {ASCII} 94.
(1995-03-06)

uparrow
\uparrow
[character] An upward pointing arrow in {LaTeX}.
See {closure}.
(1995-03-16)

upenn
UPenn
{University of Pennsylvania}

upgradability
[jargon] (Or "upgradeability") How easily {upgrades} to a system can be produced and applied. E.g. "Buying a PC with more {PCI} slots gives you increased upgradeability."
(1999-10-11)

upgrade
1. A new or better version of some {hardware} or {software}.
Often used in {marketroid}-speak to mean "{bug fix}".
2. The act of developing or installing a new version.
(1995-03-14)

upgradeability
{upgradability}

upload
/uhp'lohd/ To transfer programs or data over a digital communications link from a smaller or peripheral "client" system to a larger or central "host" one.
Opposite: {download}.
[{Jargon File}]
(1994-10-27)

upmail tricia prolog
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
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 sideband modulation
Upper Side-Band modulation
[communications] (USB) A kind of {modulation} applied to a sinusoidal {carrier}.
[Details?]
(1997-07-16)

upright database technology ab
Upright Database Technology AB
[company] The Swedish company that developed the {Mimer SQL} database.
(2002-06-03)

ups
UPS
1. {uninterruptible power supply}.
2. A source level {C} debugger that runs under {X11} or {SunView} by Mark Russell [mtr@ukc.ac.uk]. Ups includes a {C} {interpreter} which allows you to add fragments of code simply by editing them into the source window. Version 2.1.
Ported to {Sun}, {DECstation}, {VAX} {Ultrix}, {HLH} {Clipper}.
{(ftp://export.lcs.mit.edu/contrib/)}. Mailing list: ups-users-request@ukc.ac.uk.
Unofficial enhancements by Rod Armstrong [rod@sj.ate.slb.com] {(ftp://sj.ate.slb.com/misc/Unix/ups/contrib/rob)}.
(1991-05-20)

upstream
[networking] Fewer {network} {hops} away from a {backbone} or {hub}. For example, a small {ISP} that connects to the {Internet} through a larger ISP that has their own connection to the backbone is {downstream} from the larger ISP, and the larger ISP is {upstream} from the smaller ISP.
(1999-08-05)

upthread
Earlier in the discussion (see {thread}), i.e. "above". See also {followup}.
[{Jargon File}]

upward closure
See {closure}.

uranus
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
URC
{Uniform Resource Citation} (previously Universal).

urchin
See {munchkin}.
[{Jargon File}]

uri
URI
{Universal Resource Identifier}

url
URL
{Uniform Resource Locator}

url forwarding
URL forwarding
{URL redirection}

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
URN
{Uniform Resource Name} (previously Uniform/Universal Resource Number).

uroulette
URouLette
(After {URL} and roulette, the gambling game) A {World-Wide Web} service which selects other web pages at random.

{(http://kuhttp.cc.ukans.edu/cwis/organizations/kucia/uroulette/uroulette.html)}.
(1994-11-24)

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

us robotics
US Robotics
{U.S. Robotics, Inc.}

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

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

usanet
usa.net
{Internet Express}

usascii
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
USB
1. [architecture] {Universal Serial Bus}.
2. [communications] {Upper Side-Band modulation}.
(1997-07-16)

usb adapter card support
USB Adapter Card Support
[communications, software] A set of software extensions that provide support for {USB} adapter cards installed in the {PCI} bus or {Cardbus} slots in {Macintosh} computers that do not have built-in USB ports.
(2001-11-28)

use
USE
An early system on the {IBM 1103} or 1103A.
[Listed in CACM 2(5):16 (May 1959)].
(1994-11-11)

use the source luke
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)

usenet
Usenet
[messaging] /yoos'net/ or /yooz'net/ (Or "Usenet news", from "Users' Network") A distributed {bulletin board} system and the people who post and read articles thereon. Originally implemented in 1979 - 1980 by Steve Bellovin, Jim Ellis, Tom Truscott, and Steve Daniel at Duke University, and supported mainly by {Unix} machines, it swiftly grew to become international in scope and, before the advent of the {World-Wide Web}, probably the largest decentralised information utility in existence.
Usenet encompasses government agencies, universities, high schools, businesses of all sizes, and home computers of all descriptions. In the beginning, not all Usenet hosts were on the Internet. As of early 1993, it hosted over 1200 {newsgroups} ("groups" for short) and an average of 40 megabytes (the equivalent of several thousand paper pages) of new technical articles, news, discussion, chatter, and {flamage} every day. By November 1999, the number of groups had grown to over 37,000.
To join in you originally needed a {news reader} program but there are now several web gateways such as {Deja (http://www.deja.com/)}. Several {web browsers} include news readers and {URL}s beginning "news:" refer to Usenet newsgroups.
{Network News Transfer Protocol} is a {protocol} used to transfer news articles between a news {server} and a {news reader}. The {uucp} {protocol} was sometimes used to transfer articles between servers, though this is probably rare now that most sites are on the {Internet}.
{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}].
(1999-12-17)

usenet news
Usenet news
{Usenet}

usenetter
Usenetter
[networking] A (regular) user of {Usenet}.
(1996-09-08)

usenix
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.
[{Jargon File}]
(1996-04-28)

user acceptance testing
[testing] The type of {testing} where monitored users determine whether a system meets all their requirements, and will support the business for which it was designed.
(2003-09-24)

user base
[jargon] The number of users of some product or standard.
This term typically arises in discussions of {backward compatibility} or {lock-in}.
(1998-01-15)

user brain damage
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
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 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
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
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)

userfriendly
user-friendly
Programmer-hostile. Generally used by hackers in a critical tone, to describe systems that hold the user's hand so obsessively that they make it painful for the more experienced and knowledgeable to get any work done. See {menuitis}, {drool-proof paper}, {Macintrash}, {user-obsequious}.
[{Jargon File}]

userobsequious
user-obsequious
[jargon] Emphatic form of {user-friendly}. Connotes a system so verbose, inflexible, and determinedly simple-minded that it is nearly unusable. "Design a system any fool can use and only a fool will want to use it."
See {WIMP}, {Macintrash}.
See also {user-unctuous}.
[{Jargon File}]
(1999-06-27)

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

usg unix
USG Unix
{operating system} /U-S-G yoo'niks/ Refers to AT&T {Unix} commercial versions after {Version 7}, especially System III and System V releases 1, 2, and 3. So called because during most of the lifespan of those versions AT&T's support crew was called the "Unix Support Group".
Compare {BSD}.
[{Jargon File}]
(1997-02-20)

usim
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
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
USP
{unique sales point}

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

ussa
USSA
Object-oriented state language by B. Burshteyn, Pyramid, 1992.
{Documentation (ftp://primost.cs.wisc.edu/pub/ussa.ps.Z)}.

utc
UTC
{Coordinated Universal Time}

utf
UTF
{UCS transformation format}

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

utilitycoder
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
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
UTP
{unshielded twisted pair}

utrc
UTRC
{United Technologies Research Cente}

utsl
UTSL
[humour] {Use the Source Luke}
[{Jargon File}]
(1996-01-02)

uucp
{Unix to Unix Copy}

uucpnet
UUCPNET
The international {store and forward} network consisting of all the world's connected {Unix} machines (and others running some clone of the {UUCP} software). Any machine reachable only via a {bang path} is on UUCPNET. See {network address}.
[{Jargon File}]

uudecode
A Unix program to convert the ASCII output of uuencode back to binary. See uuencode for details.

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

v10
V.10
[communications, standard] An {ITU-T} recommendation on electrical characteristics for {unbalanced} {double-current interchange circuits} operating at {data signalling rates} nominally up to 100 kbps. This recommendation is also included but not published in {ITU-T} X series under alias number X.26. The circuit defined in this standard is used in other {serial line} standards such as {EIA-232} and {EIA-423}, that implement {single ended} communication.
(2002-10-05)

v11
V.11
[communications, standard] An {ITU-T} recommendation on electrical characteristics for {balanced} {double-current} {interchange circuits} operating at {data signalling rates} up to 10 Mbps. V.11 is also included but not published in the as {ITU-T} X.27. V.11 is used in other {serial line} standards such as {EIA-422} and {EIA-485}, that implement {differential line} communication.
(2003-04-06)

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

v22
V.22
An {ITU-T} {modem} {protocol} which allowed data rates of 1200 bits per second. {V.22bis} doubled this.

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

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

v24
V.24
[standard] The {ITU-T} {standard} defining interchange circuits between {DTE} and {DCE}. V.24 is the {ITU-T} equivalent of {EIA} standard {EIA-232C}.
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)

v25
V.25
[communications, standard] A {standard} allowing an {auto-answer} {modem} to determine the correct {modulation} standard to use.
(2001-04-06)

v28
V.28
[communications, standard] An {ITU-T} physical interface standard for {serial} data communications equipment, formally titled "Electrical Characteristics for Unbalanced Double-Current Interchange Circuits". The combination of V.28 and {V.24) is equivalent to the {EIA}'s {RS-232} and uses the same 25-pin connectors.
(2001-04-06)

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

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

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

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

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

v42
V.42
An {ITU-T} standard {protocol} for {error correction} between {modem}s which includes {MNP} up to level 4.

v42bis
V.42bis
An extension of the {ITU-T} {V.42} standard {modem} {protocol} to included {compression}.
[Details? On-line spec?]

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

v91
V.91
[protocol] An all-digital version of the {V.90} {protocol}, undergoing {ITU-T} approval.
(1999-01-13)

va
[networking] The {country code} for the Vatican.
(1999-01-27)

vacuum tube
{electron tube}

vadding
[games] /vad'ing/ (From VAD, a permutation of ADV, i.e. {ADVENT}, used to avoid a particular {admin}'s continual search-and-destroy sweeps for the game) A leisure-time activity of certain hackers involving the covert exploration of the "secret" parts of large buildings - basements, roofs, freight elevators, maintenance crawlways, steam tunnels, and the like. A few go so far as to learn locksmithing in order to synthesise vadding keys. The verb is "to vad" (compare {phreaking}; see also {hack}, sense 9). This term dates from the late 1970s, before which such activity was simply called "hacking"; the older usage is still prevalent at {MIT}.
Vadding (pronounced /vay'ding/) was also popular {CMU}, at least as early as 1986. People who did it every night were called the "vaders," possibly after "elevator," which was one of the things they played with, or "invader," or "Darth Vader". This game was usually played along with no-holds-barred hide-and-seek. CMU grad students were the known to pry open the inner doors of elevators between floors to see the graffiti on the inside of the outer doors.
The most extreme and dangerous form of vadding is "elevator rodeo", also known as "elevator surfing", a sport played by wrasslin' down a thousand-pound elevator car with a 3-foot piece of string, and then exploiting this mastery in various stimulating ways (such as elevator hopping, shaft exploration, rat-racing, and the ever-popular drop experiments). Kids, don't try this at home!
See also {hobbit}.
[{Jargon File}]
(1996-01-07)

val
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
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
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
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
VAN
{Value Added Network}

vanilla
1. (Default flavour of ice cream in the US) Ordinary {flavour}, standard. When used of food, very often does not mean that the food is flavoured with vanilla extract! For example, "vanilla wonton soup" means ordinary wonton soup, as opposed to hot-and-sour wonton soup. Applied to hardware and software, as in "Vanilla {Version 7} {Unix} can't run on a vanilla {PDP 11}/34." Also used to orthogonalise chip nomenclature; for instance, a 74V00 means what TI calls a 7400, as distinct from a 74LS00, etc. This word differs from {canonical} in that the latter means "default", whereas vanilla simply means "ordinary". For example, when hackers go to a chinese restaurant, hot-and-sour wonton soup is the {canonical} wonton soup to get (because that is what most of them usually order) even though it isn't the vanilla wonton soup.
[{Jargon File}]
(1994-11-04)
2. {Snobol4} by {Catspaw, Inc.} for {MS-DOS}.
{(ftp://cs.arizona.edu/snobol4/vanilla.arc)}.
(1992-02-05)

vanity domain
[networking] A {domain} you register for the sole purpose of having your own domain so you can have an easily remembered {URL} and {e-mail} address. The domain is usually served (often {vhost}ed) off someone else's machines.
This is as opposed to a domain you register because you have machines of your own which are already on the Internet and which you want to make addressable via something other than {dot address}es.
Whereas vanity domains were almost unheard-of in 1980s, since the invention and popularisation of the {Web} in the mid-1990s and the desire for {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
[jargon] /van'*-var/ A bogus technological prediction or a foredoomed engineering concept, especially one that fails by implicitly assuming that technologies develop linearly, incrementally, and in isolation from one another when in fact the learning curve tends to be highly nonlinear, revolutions are common, and competition is the rule. The prototype was Vannevar Bush's prediction of "electronic brains" the size of the Empire State Building with a Niagara-Falls-equivalent cooling system for their tubes and relays, a prediction made at a time when the semiconductor effect had already been demonstrated. Other famous vannevars have included {magnetic-bubble memory}, {LISP machines}, {videotex}, and a paper from the late 1970s that computed a purported ultimate limit on areal density for {integrated circuits} that was in fact less than the routine densities of 5 years later.
[{Jargon File}]
(2000-02-29)

vannevar bush
Vannevar Bush
[person] Dr. Vannevar Bush, 1890-1974. The man who invented {hypertext}, which he called {memex}, in the 1930s.
Bush did his undergraduate work at Tufts College, where he later taught. His masters thesis (1913) included the invention of the Profile Tracer, used in surveying work to measure distances over uneven ground. In 1919, he joined {MIT}'s Department of Electrical Engineering, where he stayed for twenty-five years. In 1932, he was appointed vice-president and dean. At this time, Bush worked on optical and photocomposition devices, as well as a machine for rapid selection from banks of microfilm.
Further positions followed: president of the Carnegie Institute in Washington, DC (1939); chair of National Advisory Committee for Aeronautics (1939); director of Office of Scientific Research and Development. This last role was as presidential science advisor, which made him personally responsible for the 6,000 scientists involved in the war effort. During World War II, Bush worked on radar antenna profiles and the calculation of artillery firing tables. He proposed the development of an {analogue computer}, which later became the {Rockefeller Differential Analyser}.
Bush is the pivotal figure in hypertext research. His ground-breaking 1945 paper, "As We May Think," speculated on how a machine might be created to assist human reasoning, and introduced the idea of an easily accessible, individually configurable storehouse of knowledge. This machine, which he dubbed "memex," in various ways anticipated {hypermedia} and the {World Wide Web} by nearly half a century.
{Electronic Labyrinth article (http://jefferson.village.virginia.edu/elab/hfl0034.html)}.
{Bush's famous article, "As We May Think" (http://www.theatlantic.com/unbound/flashbks/computer/bushf.htm)}.
(2001-06-17)

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 applied by {Infoworld} to {Microsoft}'s continuous lying about {Microsoft Windows}.
See also {brochureware}.
[{Jargon File}]
(1996-09-30)

var
VAR
1. {Value Added Reseller} (or retailer).
2. /veir/ or /var/ Short for "variable". Compare {arg}, {param}.
[{Jargon File}]

variational graphics extended
Variational Graphics eXtended
[software] (VGX) {Software} developed by {SDRC} for use in 3D {CAD} {solid modelling}.
(1998-02-06)

vax
VAX
[computer] /vaks/ (Virtual Address eXtensio) The most successful {minicomputer} design in industry history, possibly excepting its immediate ancestor, the {PDP-11}. Between its release in 1978 and its eclipse by {killer micros} after about 1986, the VAX was probably the {hacker}'s favourite machine, especially after the 1982 release of {4.2BSD} {Unix}. Especially noted for its large, {assembly code}-programmer-friendly {instruction set} - an asset that became a liability after the {RISC} revolution.
VAX is also a British brand of {carpet cleaner (http://www.vax.co.uk/)} whose advertising slogan, "Nothing sucks like a VAX!" became a battle-cry of RISC partisans. It is even sometimes claimed that DEC actually entered a licencing deal that allowed them to market VAX computers in the UK in return for not challenging the carpet cleaner trademark in the US.
The slogan originated in the late 1960s as "Nothing sucks like Electrolux", Electrolux AB being a rival Swedish company. It became a classic textbook example of the perils of not knowing the local idiom, which is ironic because, according to the Electrolux press manager in 1996, the double entendre was intentional. VAX copied the slogan in their promotions in 1986-1987, and it surfaced in New Zealand TV ads as recently as 1992!
[{Jargon File}]
(2000-09-28)

vax document
VAX DOCUMENT
A document preparation system from {DEC}.

vax mips
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)

vaxectomy
VAXectomy
[jargon] /vak-sek't*-mee/ (By analogy with "vasectomy") Removal of a {VAX}. {DEC}'s {Microvax}en, especially, are much slower than newer {RISC}-based {workstations} such as the {SPARC}. Thus, if one knows one has a replacement coming, VAX removal can be cause for celebration.
[{Jargon File}]
(1995-02-20)

vaxen
VAXen
/vak'sn/ (From "oxen", perhaps influenced by "vixen") The plural canonically used among hackers for the {DEC} {VAX} computers. "Our installation has four PDP-10s and twenty vaxen."
See {boxen}.
[{Jargon File}]
(1995-02-20)

vaxherd
/vaks'herd/ ["oxherd"] An operator who tends one or more {VAXen}.
[{Jargon File}]

vaxism
/vak'sizm/ A piece of code that exhibits {vaxocentrism} in critical areas. Compare {PC-ism}, {Unixism}.

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.
[{Jargon File}]

vaxset
VAXset
A set of software development tools from DEC, including a language-sensitive editor, compilers etc.

vaxstation
VAXstation
A family of {workstation}s from {DEC} based on their {VAX} computer architecture.
(1995-02-03)

vaxvms
VAX/VMS
{VMS}

vb
VB
{Visual BASIC}

vba
VBA
{Visual Basic for Applications}

vbell
{visible bell}

vbscript
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
VCC filtering
[electronics] A technique for reducing the amount of {Radio Frequency Interference} spread via power supply connections. {VCC} is a common name for the non-{ground} power supply line in circuits based on {bipolar transistors}.
When part of a circuit generates lots of radio-frequency noise, that portion of the {power plane} can be isolated from the rest of the circuit and power delivered to it via a {low pass filter}, usually a {PI filter}, as shown in the diagram below.
source ________inductor_________ load | | capacitor capacitor | | ground ground
This helps to shield the rest of the circuit from the noise generated by the load.
(1998-01-26)

vcid
VCID
{Virtual Circuit Identifier}

vcl
VCL
{Visual Component Library}

vcode
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
VCPI
{Virtual Control Program Interface}

vcr
VCR
{Video Cassette Recorder}

vdiff
/vee'dif/ Visual diff. The operation of finding differences between two files by {eyeball search}. The term "optical diff" has also been reported, and is sometimes more specifically used for the act of superimposing two nearly identical printouts on one another and holding them up to a light to spot differences. Though this method is poor for detecting omissions in the "rear" file, it can also be used with printouts of graphics, a claim few if any diff programs can make. See {diff}.
[{Jargon File}]

vdl
VDL
{Vienna Definition Language}

vdm
VDM
1. Vienna Definition Method
2. {Virtual Device Metafile}.

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

vdmsl
VDM-SL
{Vienna Development Method Specification Language}

vdsl
VDSL
{Very high bit-rate Digital Subscriber Line}

vdt
VDT
{video display terminal}

vdu
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
Vector C
[language] A variant of {C} from {CMU}(?), similar to {ACTUS}.
(1996-09-30)

vector font
{outline font}

vector graphics
[graphics] (Sometimes called "object-oriented" graphics, though it's nothing to do with {object-oriented programming}). The representation of separate shapes such as lines, polygons and text, and groups of such objects, as opposed to {bitmaps}. The advantage of vector graphics ("drawing") programs over bitmap ("paint") editors is that multiple overlapping elements can be manipulated independently without using differenet layers for each one. It is also easier to render an object at different sizes and to transform it in other ways without worrying about image {resolution} and {pixels}.
(2001-02-06)

vector processor
{array processor}

vector space
[mathematics] An {additive group} on which some ({scalar}) {field} has an {associative} multiplicative action which distributes over the addition of the vector space and respects the addition of the (scalar) field: for vectors u, v and scalars h, k; h(u+v) = hu + hv; (h+k)u = hu + ku; (hk)u = h(ku).
[Simple example?]
(1996-09-30)

vectran
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
VEE
{HP VEE}

veeblefeetzer
{veeblefetzer}

veeblefester
[jargon, abuse] /vee'b*l-fes"tr/ (From "Born Loser" comix via {Commodore}; probably originally from "Mad" Magazine's "Veeblefeetzer" parodies ca. 1960) Any obnoxious person engaged in the (alleged) professions of marketing or management.
Antonym of {hacker}. Compare {suit}, {marketroid}. See also {veeblefetzer}.
[veeblefeetzer or veeblefetzer?]
[{Jargon File}]
(1996-03-31)

veeblefetzer
[jargon] /vee'b*l-fetz'*/ (Or "veeblefeetzer"?) A purposely nonsensical sounding word applied to any sort of obscure or complicated object, e.g. a piece of computer code, model railroad equipment, auto parts, etc.
The more immediate origin of the word is "Mad" Magazine. In the late 1950s and early 1960s it used the word along the same lines, especially in its send-ups of big business. "North American Veeblefetzer" was the subject of satires of an annual reports, an in-house newsletter, and more. A Veeblefetzer, in their case, was a robot-like device that did something or other.
The more distant source was probably a 19th century yiddish word, possibly with limited usage. In German, "Fetzer" is any contraption, while "Veeble" is a likely corruption of "Webel" -- meaning weaving. Textile mills of this period were crammed with very complicated, wildly active and very loud pieces of machinery.
See also {veeblefester}.
[veeblefeetzer or veeblefetzer?]
(1996-03-31)

vel
VEL
See {LISP70}.

vendor independent messaging
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
Ventura Publisher
{Corel VENTURA}

venus flytrap
Venus flytrap
[after the insect-eating plant] See {firewall machine}.
[{Jargon File}]

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.
[{Jargon File}]

verdi
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
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
Verilog SA
[company] A French {real-time software engineering} company.
(1999-04-16)

veronica
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
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
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}.
[{Jargon File}]
(1996-05-22)

vertical application
[application, jargon] An {application program} supporting one specific industry process, e.g. for {e-commerce} purchasing applications, the entire distribution process including order entry, shipping, and customer service.
Compare {horizontal application}.
(2000-03-28)

vertical bar
[character] The character "|", {ASCII} code 124.
Common names: bar; or; or-bar; v-bar; pipe; vertical bar. Rare: {ITU-T}: vertical line; gozinta; thru; pipesinta; {INTERCAL}: spike.
"Pipe", "gozinta", "thru" and "pipesinta" refer to the use of "|" in {Unix} shells to create a {pipe}.
Some keyboards show both a solid vertical bar (code 124) and a broken vertical bar (code 166).
[Does anyone call either kind of vertical bar "{pling}"? Other codes?]
(1998-09-20)

vertical encoding
[processor] An {instruction set} where a field (a bit or group of bits) of the instruction word is decoded (either by {hard-wired} {logic} or {microcode}) to generate signals to control the {functional 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 redundancy check
Vertical Redundancy Check
[storage, communications] (VRC) An {error checking} method performed on one 8-bit {ASCII} character, where the 8th bit is used as the {parity bit}.
The resulting parity bit is constructed by {XOR}ing the {word}. The result is a "1" if there is an odd number of 1s, and a "0" if there is an even number of 1s in the word. This method is unreliable because if an odd number of {bits} are distorted, the check will not detect the error. The {Longitudinal Redundancy Check} is an improvement.
(2001-04-28)

vertical refresh rate
[hardware] Synonym for {refresh rate}.
(1996-02-09)

vertical scan rate
[hardware] Synonym for {refresh rate}.
(1996-02-09)

very high bitrate digital subscriber line
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
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
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
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
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
Very Small Aperture Terminal
[communications] (VSAT) A kind of {ground station} used to contact a communications satellite such as INMARSAT.
(1995-03-28)

vesa
VESA
{Video Electronics Standards Association}

vesa local bus
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)

vfast
V.FAST
{V.34}

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

vfc
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
VGA
[hardware] {Video Graphics Array} (not "Adapter").
(1995-11-16)

vgqf
VGQF
A query language.

vgrep
[jargon] /vee'grep/ (Or "optical grep") Visual {grep}. Finding patterns in a file by eye rather than digitally.
Compare {vdiff}.
[{Jargon File}]
(1998-02-06)

vgx
VGX
{Variational Graphics eXtended}

vhdl
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
VHE
{Virtual Home Environment}

vhll
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
VHS
1. {Very High Speed}.
2. {storage} Video Home System.
JVC's video cassette format.
3. {Virtual Host Storage}.

vi
1. [tool] {Visual Interface}.
2. [networking] The {country code} for the U. S. Virgin Islands.
[{Jargon File}]
(1999-01-27)

vi improved
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)

vic20
VIC-20
[computer] A home computer made by {Commodore} with a {6502} {CPU}, similar in style to the {Commodore 64} and {Commodore C16}. The VIC-20 was released before the C64, and after the {Commodore PET}(?). It was intended to be more of a low-end home computer than the PET.
The VIC-20 had connectors for game cartridges and a {tape drive} (compatible with a C64). It came with five {kilobytes} of {RAM}, but 1.5 KB were used by the system for various things, like the video display (which had an unusual 22x20 char/line screen layout), and other dynamic aspects of the {operating system} (such as it was). The RAM was expandable with a plug-in cartridge which used the same expansion port as games. Port expander boxes were available to allow more than one cartridge to be connected at a time.
RAM cartridges were available in several sizes: 3K, 8K, 16K and 32K. The internal memory map was re-organised with the addition of each size cartridge, leading to the situation that some programs would only work if the right amount of memory was available. The 32K cartridges were all third-party and had switches to allow the RAM to be enabled in sections so that any expansion size could be achieved.
{BASIC} programs could use at most 24 KB of RAM. Any extra occupied the location usually used by ROM cartridges (i.e. games). This allowed people to copy ROM cartridges to tape and distribute them to their friends, who could load the tape into the top 8k of their 32k RAM packs.
The name "VIC" came from the Video Interface Chip that was also used in the other, later, Commodore 8-bit computers.
(2000-03-28)

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
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 Adapter
{Video Graphics Array}

video graphics adaptor
Video Graphics Adaptor
{Video Graphics Array}

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
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 RAM
{video random access memory}

video random access memory
[hardware] (VRAM) Fast memory designed for storing the image to be displayed on a computer's {monitor}. VRAM may be built from special memory {integrated circuits} designed to be accessed sequentially.
VRAM must be fast enough to supply data to the display electronics at the speed at which the screen is scanned. Thus for example, for a {resolution} of 1280x1024 eight-bit {pixels} at a {refresh rate} of 70 Hz, the {video memory} would need to supply 1280x1024x70 = 90 Mbyte/s or one byte every 11 ns. The VRAM may be {dual ported} in order to allow the display electronics and the {CPU} to access it at the same time.
In an {IBM PC} the VRAM is located on the display interface card and 0.5 - 2 MB is typical.
{A VRAM Song (http://www.fweep.com/vram.html)}!
(2001-02-14)

video terminal
{visual display unit}

videotex
An obsolete electronic service offering people the privilege of paying to read the weather on their television screens instead of having somebody read it to them for free while they brush their teeth. The idea bombed everywhere it wasn't government-subsidised, because by the time videotex was practical the installed base of personal computers could hook up to {time-sharing} services and do the things for which videotex might have been worthwhile better and cheaper. Videotex planners badly overestimated both the appeal of getting information from a computer and the cost of local intelligence at the user's end. Like the {gorilla arm} effect, this has been a cautionary tale to hackers ever since. See also {vannevar}.
[{Jargon File}]

vienna definition language
Vienna Definition Language
(VDL) IBM Vienna Labs. A language for formal, algebraic definition via operational semantics. Used to specify the semantics of PL/I. See also {VDM}.
["The Vienna Definition Language", P. Wegner, ACM Comp Surveys 4(1):5-63 (Mar 1972)].

vienna definition method
Vienna Definition Method
{Vienna Development Method}

vienna development method
Vienna Development Method
[programming, specification] (VDM) A program development method based on formal specification using the {Vienna Development Method Specification Language} (VDM-SL).
[Details?]
[Is there such a thing as "Vienna Definition Method"?]
(2000-11-02)

vienna development method specification language
Vienna Development Method Specification Language
[programming, specification] (VDM-SL, Meta-IV) A model-oriented {specification language}, upon which the {Vienna Development Method} is based. An {ISO} draft was released in April 1993.
Version: BSI/VDM.
{(ftp://gateway.dec.com/pub/vdmsl_standard)}.
["The Vienna Development Method: The Meta-Language", D. Bjorner et al eds, LNCS 61, Springer 1978].
["The VDM-SL Reference Guide", J. Dawes, Pitman 1991].
["Systematic Software Development Using VDM", C.B. Jones, P-H 1989].
(2000-11-02)

vienna fortran
Vienna Fortran
A {data-parallel} extension of {Fortran 77} for distributed memory multiprocessors by Hans Zima [zima@sophie.par.univie.ac.at], Vienna University.
["Programming In Vienna Fortran", B. Chapman et al, Scientific Programming 1(1):31-50 (Aug 1992)].

vietnamese
Vietnamese
[human language] An Asian language that, like other {CJKV} languages, requires 16-bit {character encodings} but, unlike them, does not use {Han characters}.
While normal Vietnamese has not used Han characters since the 18th century, the {standards} {TCVN 5773} and {TCVN 6056} contain Han characters and may be used by computers and academics.
(2001-01-01)

viewer
[tool] A program to allow a file to be read (or played) but not changed. Viewers are often freely distributable, even when the editor application is not. This allows you to create files with the editor and make the viewer available to other users to view your files, e.g. on a {web site}. Examples include the Word and Adobe Acrobat viewers.
(1997-08-29)

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

vim
VIM
1. [messaging] {Vendor Independent Messaging}.
2. [text, tool] {Vi Improved}.
(1999-06-15)

vine technology
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)

vines
[networking, product] A family of {local area network}ing products from {Banyan}.
(1995-03-01)

vint cerf
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
Vinton Cerf
{Vint Cerf}

viola
Viola
An experimental {hypercard}-like interpreted {hypertext} system by Pei Y. Wei of {Berkeley}.
(1994-11-30)

virgin
Unused; pristine; in a known initial state. "Let's bring up a virgin system and see if it crashes again." (Especially useful after contracting a {virus} through {SEX}.) Also, by extension, buffers and the like within a program that have not yet been used.
[{Jargon File}]
(1994-11-30)

virgule
[character] Rare, and ambiguous: {slash} or {comma}.
"Virgule" (or rather, Latin "virgula", meaning "little rod" or, vividly enough, "little penis") was the name of a punctuation character shaped like a small {slash} and used in the Latin writing system much like a modern {comma} -- hence the ambiguity of this term in modern English.
Compare French "virgule" and Italian "virgola", meaning "comma" (not "slash"); Italian "doppia virgola" and "virgoletta", both meaning "{double quote}".
(1997-04-08)

viron
Viron
["Five Paradigm Shifts in Programming Language Design and Their Realisation in Viron, a Dataflow Programming Environment", V. Pratt, 10th POPL, ACM 1983, pp. 1-9].
(1994-11-30)

virtual
[jargon, architecture] (Via the technical term {virtual memory}, probably from the term "virtual image" in optics) 1. Common alternative to {logical}; often used to refer to the artificial objects (like addressable {virtual memory} larger than physical memory) created by a computer system to help the system control access to shared resources.
2. Simulated; performing the functions of something that isn't really there. An imaginative child's doll may be a virtual playmate.
Opposite of {real} or physical.
[{Jargon File}]
(1994-11-30)

virtual 86 mode
[processor, programming] (Or "virtual mode" or "virtual 8086 mode") An operating mode provided by the {Intel 80386} and later processors to allow {real mode} programs to run under {operating 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. [architecture] A memory location accessed by an {application program} in a system with {virtual memory} such that intervening hardware and/or software maps the virtual address to real ({physical}) memory. During the course of execution of an application, the same virtual address may be mapped to many different {physical addresses} as data and programs are {paged out} and {paged in} to other locations.
2. In {IBM}'s {VM} {operating system}, {Virtual Device Location}.
(2001-01-02)

virtual cache
A {cache} which uses {virtual address}, i.e. it is between the processor and the {memory management unit}. A virtual cache cannot recognise external access to physical address, e.g. from {DMA}. The whole cache must be flushed when swapping between tasks which share same virtual {address space}.
(1994-11-30)

virtual circuit
[networking] A {connection-oriented} {network} service which is implemented on top of a network which may be either connection-oriented or {connectionless} ({packet switching}).
The term "switched virtual circuit" was coined needlessly to distinguish an ordinary virtual circuit from a {permanent virtual circuit}. (One of the perpetrators of this confusion appears to be ["Networking Essentials", 1996, Microsoft Press, ISBN 1-55615-806-8], a book aimed at people preparing for the {MCSE} exam on {LANs} and {WANs}).
Not to be confused with {switched virtual connection}.
(2001-10-26)

virtual circuit identifier
Virtual Circuit Identifier
[networking] (VCID) An identifier used for the {routing} of a {virtual circuit}. An {ATM} {switch} may route according to a Virtual Circuit Identifier, a {Virtual Path Identifier}, or a combination.
(2001-05-16)

virtual connection
[networking] 1. (VC) A connection or a path through an {ATM} network. The word "{virtual}" indicates that the connection is {logical} rather than {physical}.
Nothing to do with a {virtual circuit} on a {packet switching} network.
[Fred Halsall, "Data Communications, Computer Networks and Open Systems", 1996, Addison Wesley].
2. A communications link that appears to be a direct connection between sender and receiver, although physically the link can be routed through a more circuitous path, running over {virtual circuits} instead of a private network built primarily with {dedicated lines}.
A virtual connection can provide full-time connection among many sites, including those configured for {SNA}/{SDLC} {protocol}. A virtual connection can handle any transmission protocol and is supported worldwide. It can provide high throughput and low delay for {LAN} and {Internet} applications, peer-to-peer connectivity, client-server computing, and other distributed processing applications.
[Same as {virtual circuit}?]
(2001-10-26)

virtual control program interface
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
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
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
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
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
Virtual Loadable Module
[networking] (VLM) {Novell}'s term for software modules that can be dynamically loaded to extend the functionality of the "VLM" {NetWare Requester} for {MS-DOS} that became standard beginning with {Novell NetWare} 4.
(1995-01-11)

virtual local area network
Virtual Local Area Network
[networking] (VLAN) A logical grouping of two or more {nodes} which are not necessarily on the same physical {network segment} but which share the same {IP} {network number}. This is often associated with {switched Ethernet}.
IEEE 802.1Q is a VLAN standard.
[Confirm? Better description? Reference?]
(2002-08-30)

virtual machine
1. An {abstract machine} for which an {interpreter} exists. Virtual machines are often used in the implementation of portable executors for {high-level languages}. The HLL is compiled into code for the virtual machine (an {intermediate language}) which is then executed by an {interpreter} written in {assembly language} or some other portable language like {C}.
Examples are {Core War}, {Java Virtual Machine}, {OCODE}, {OS/2}, {POPLOG}, {Portable Scheme Interpreter}, {Portable Standard Lisp}, {Parallel Virtual Machine}, {Sequential Parlog Machine}, {SNOBOL Implementation Language}, {SODA}, {Smalltalk}.
2. A software emulation of a physical computing environment.
The term gave rise to the name of {IBM}'s {VM} {operating system} whose task is to provide one or more simultaneous execution environments in which operating systems or other programs may execute as though they were running "on the bare iron", that is, without an eveloping Control Program. A major use of VM is the running of both outdated and current versions of the same operating system on a single {CPU} complex for the purpose of system migration, thereby obviating the need for a second processor.
(2002-04-15)

virtual machine
Virtual Machine
[operating system] (VM) An {IBM} pseudo-{operating system} {hypervisor} running on {IBM 370}, {ESA} and {IBM 390} architecture computers.
VM comprises CP ({Control Program}) and CMS ({Conversational Monitor System}) providing Hypervisor and personal computing environments respectively. VM became most used in the early 1980s as a Hypervisor for multiple {DOS/VS} and {DOS/VSE} systems and as IBM's internal operating system of choice. It declined rapidly following widespread adoption of the {IBM PC} and hardware partitioning in {microcode} on IBM {mainframes} after the {IBM 3090}.
VM has been known as VM/SP (System Product, the successor to {CP/67}), VM/XA, and currently as VM/ESA (Enterprise Systems Architecture). VM/ESA is still in used in 1999, featuring a {web} interface, {Java}, and {DB2}. It is still a major IBM operating system.
{Home (http://vmdev.gpl.ibm.com/)}.
["History of VM"(?), Melinda Varian, Princeton University].
(1999-10-31)

virtual machine environment
Virtual Machine Environment
[operating system] (VME) {ICL}'s {mainframe} {operating system}.
(1995-06-28)

virtual machineconversational monitor system
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 machineesa
Virtual Machine/ESA
{Virtual Machine}

virtual machinesystem product
Virtual Machine/System Product
{Virtual Machine}

virtual machinexa
Virtual Machine/XA
{Virtual Machine}

virtual memory
[memory management] A system allowing a computer program to behave as though the computer's memory was larger than the actual {physical} {RAM}. The excess is stored on {hard disk} and copied to RAM as required.
Virtual memory is usually much larger than physical memory, making it possible to run programs for which the total code plus data size is greater than the amount of RAM available. This is known as "{demand paged} virtual memory". A page is copied from disk to RAM ("paged in") when an attempt is made to access it and it is not already present. This paging is performed automatically by collaboration between the {CPU}, the {memory management unit} (MMU), and the {operating system} {kernel}. The program is unaware of virtual memory, it just sees a large {address space}, only part of which corresponds to physical memory at any instant.
The virtual {address space} is divided into {pages}. Each {virtual address} output by the {CPU} is split into a (virtual) {page} number (the most significant bits) and an offset within the page (the N least significant bits). Each page thus contains 2^N {bytes} (or whatever the unit of addressing is). The offset is left unchanged and the {memory management unit} (MMU) maps the virtual page number to a {physical} page number. This is recombined with the offset to give a {physical address} - a location in {physical memory} ({RAM}).
The performance of a program will depend dramatically on how its memory access pattern interacts with the paging scheme. If accesses exhibit a lot of {locality of reference}, i.e. each access tends to be close to previous accesses, the performance will be better than if accesses are randomly distributed over the program's {address space} thus requiring more paging.
In a {multitasking} system, physical memory may contain pages belonging to several programs. Without {demand paging}, an OS would need to allocate physical memory for the whole of every active program and its data. Such a system might still use an {MMU} so that each program could be located at the same {virtual address} and not require run-time relocation. Thus virtual addressing does not necessarily imply the existence of virtual memory. Similarly, a {multitasking} system might load the whole program and its data into physical memory when it is to be executed and copy it all out to disk when its {timeslice} expired. Such "swapping" does not imply virtual memory and is less efficient than paging.
Some {application programs} implement virtual memory wholly in software, by translating every virtual memory access into a file access, but efficient virtual memory requires hardware and operating system support.
(2002-11-26)

virtual memory system
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 PoP
{virtual point of presence}

virtual private network
Virtual Private Network
[networking, security] (VPN) The use of {encryption} in the lower {protocol layers} to provide a secure connection through an otherwise insecure network, typically the {Internet}. VPNs are generally cheaper than real private networks using private lines but rely on having the same encryption system at both ends. The encryption may be performed by {firewall} software or possibly by {routers}.
Link-level (layer 2 and 3) encryption provides extra protection by encrypting all of each {datagram} except the link-level information. This prevents a listener from obtaining information about network structure. While link-level encryption prevents traffic analysis (a form of attack), it must encrypt/decrypt on every {hop} and every path.
Protocol-level encryption (layer 3 and 4) encryption encrypts protocol data but leaves protocol and link headers clear. While protocol-level encryption requires you to encrypt/decrypt data only once, and it encrypts/decrypts only those sessions that need it, headers are sent as clear text, allowing traffic analysis.
Application (layer 5 up) encryption is based on a particular application and requires that the application be modified to incorporate encryption.
{Cisco
(http://www.cisco.com/univercd/cc/td/doc/product/lan/cat5000/cnfg_nts/rsm/rsm_pa/4801encr.htm)}.
(1999-11-15)

virtual reality
(VR)
1. [application] Computer simulations that use 3D graphics and devices such as the {data glove} to allow the user to interact with the simulation.
2. [games] A form of network interaction incorporating aspects of role-playing games, interactive theater, improvisational comedy, and "true confessions" magazines. In a virtual reality forum (such as {Usenet}'s {news:alt.callahans} newsgroup or the {MUD} experiments on {Internet} and elsewhere), interaction between the participants is written like a shared novel complete with scenery, "foreground characters" that may be personae utterly unlike the people who write them, and common "background characters" manipulable by all parties. The one iron law is that you may not write irreversible changes to a character without the consent of the person who "owns" it, otherwise, anything goes.
See {bamf}, {cyberspace}.
[{Jargon File}]
(1995-01-30)

virtual reality modeling language
Virtual Reality 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
Virtual Sequential Access Method
{Virtual Storage Access Method}

virtual server
[World-Wide Web] A configuration of a {World-Wide Web} {server} that appears to {clients} as an independent server but which is actually running on a computer that is shared by any number of other virtual servers. Each virtual server can be configured as an independent {web site}, with its own {hostname}, content, and security settings.
{DNS} maps the hostnames of all virtual servers on one physical server to its {IP address}. The web server software then uses the "Host" header in the {HTTP} request to determine which virtual server the request was for, and then processes the request using that virtual server's configuration.
Virtual servers allow {Internet Service Providers} to share one computer between multiple {web sites} while allowing the owner of each web site to use and administer the server as though they had complete control.
(2003-06-23)

virtual shredder
The jargon equivalent of the {bit bucket} at shops using {IBM}'s {VM/CMS} {operating system}. VM/CMS officially supports a whole bestiary of virtual card readers, virtual printers, and other phantom devices; these are used to supply some of the same capabilities {Unix} gets from {pipe}s and {I/O redirection}.
[{Jargon File}]
(1995-01-30)

virtual software factory
Virtual Software Factory
[programming, tool] (VSF) A product from {Systematica} which allows users to develop {CASE} tools appropriate to any software engineering methodology.
(1997-06-09)

virtual storage access method
Virtual Storage Access Method
[database] (VSAM) An {IBM} disk file storage scheme first used in {S/370} and virtual storage. VSAM comprises three access methods: {Keyed Sequenced Data Set} (KSDS), {Relative Record Data Set} (RRDS), and {Entry Sequenced Data Set} (ESDS).
Both {IMS/DB} and {DB2} are implemented on top of VSAM and use its underlying data structures.
["Storage" or "Sequential"?]
(2002-07-26)

virtual storage extended
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
Virtual Telecommunications Access Method
(VTAM) A data communications access method compatible with {IBM}'s {Systems Network Architecture}.
[More detail?]
(1995-01-30)

virus
[security] (By analogy with biological viruses, via SF) A program or piece of code written by a {cracker} that "infects" one or more other programs by embedding a copy of itself in them, so that they become {Trojan horses}. When these programs are executed, the embedded virus is executed too, thus propagating the "infection". This normally happens invisibly to the user.
A virus has an "engine" - code that enables it to propagate and optionally a "payload" - what it does apart from propagating. It needs a "host" - the particular hardware and software environment on which it can run and a "trigger" - the event that starts it running.
Unlike a {worm}, a virus cannot infect other computers without assistance. It is propagated by vectors such as humans trading programs with their friends (see {SEX}). The virus may do nothing but propagate itself and then allow the program to run normally. Usually, however, after propagating silently for a while, it starts doing things like writing "cute" messages on the terminal or playing strange tricks with the display (some viruses include {display hacks}). Viruses written by particularly antisocial {crackers} may do irreversible damage, like deleting files.
By the 1990s, viruses had become a serious problem, especially among {IBM PC} and {Macintosh} users (the lack of security on these machines enables viruses to spread easily, even infecting the operating system). The production of special {antivirus software} has become an industry, and a number of exaggerated media reports have caused outbreaks of near hysteria among users. Many {lusers} tend to blame *everything* that doesn't work as they had expected on virus attacks. Accordingly, this sense of "virus" has passed into popular usage where it is often incorrectly used for a {worm} or {Trojan horse}.
See {boot virus}, {phage}. Compare {back door}. See also {Unix conspiracy}.
[{Jargon File}]
(2003-06-20)

viruses
{virus}

visible bell
[communications] (Or "visual bell") A program option (whether in a terminal program, {termcap} setting, or as a {stand-alone} program) which outputs the {bell} {character code} as a visual signal (e.g., a flashing status bar or menu bar).
Generally intended for deaf or hearing-disabled users who couldn't hear the normal auditory beep; also widely used by users who simply don't want their machines {feep}ing at them or disturbing other users.
[Implementations?]
(1997-04-07)

visicalc vizicalk
VisiCalc /vi'zi-calk/
[application, tool, business, history] The first {spreadsheet} program, conceived in 1978 by {Dan Bricklin}, while he was an MBA student at Harvard Business School. Inspired by a demonstration given by {Douglas Engelbart} of a {point-and-click} {user interface}, Bricklin set out to design an {application} that would combine the intuitiveness of pencil and paper calculations with the power of a {programmable pocket calculator}.
Bricklin's design was based on the (paper) financial spreadsheet, a kind of document already used in business planning. (Some of Bricklin's notes for VisiCalc were scribbled on the back of a spreadsheet pad.) VisiCalc was probably not the first application to use a spreadsheet model, but it did have a number of original features, all of which continue to be fundamental to spreadsheet software. These include {point-and-type} editing, {range} {replication}, and formulas that update automatically with changes to other {cells}.
VisiCalc is widely credited with creating the sudden demand for desktop computers that helped fuel the {microcomputer} boom of the early 1980s. Thousands of business people with little or no technical expertise found that they could use VisiCalc to create sophisticated financial programs. This makes VisiCalc one of the first {killer apps}.
{Dan Bricklin's Site (http://www.bricklin.com/visicalc.htm)}.
(2003-07-05)

visionary
1. One who hacks vision, in the sense of an Artificial Intelligence researcher working on the problem of getting computers to "see" things using TV cameras. (There isn't any problem in sending information from a TV camera to a computer. The problem is, how can the computer be programmed to make use of the camera information? See {SMOP}, {AI-complete}.)
2. [IBM] One who reads the outside literature. At IBM, apparently, such a penchant is viewed with awe and wonder.
[{Jargon File}]

visit
[programming] To process a {node} while {traversing} a {graph}.
(2001-09-30)

visual basic
Visual BASIC
[language] (VB) A popular {event-driven} {visual programming} system from {Microsoft Corporation} for {Microsoft Windows}. VB is good for developing Windows interfaces, it invokes fragments of {BASIC} code when the user performs certain operations on graphical objects on-screen. It is widely used for in-house {application program} development and for prototyping. It can also be used to create {ActiveX} and {COM} components.
Version 1 was released in 1991 [by Microsoft?].
Current version: 6, as of 1999-11-26.
{Home (http://msdn.microsoft.com/vbasic/)}. {History (http://www.iessoft.com/scripts/vbhistry.asp)}. {Strollo Software (http://www.op.net/~jstrollo/vblinks.html)}. {Books (http://www.wrox.com/Consumer/Default.asp?Category=Visual+Basic)}.
(1999-11-26)

visual basic for applications
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
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
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
Visual Component Library
[programming] {VCL} A {application framework} library for {Microsoft Windows} and {Borland Software Corp.}'s {Delphi} and {C++Builder} {rapid application development} software. VCL was originally designed for Delphi but is now also used for C++Builder. This replaces {OWL} {Object Windows Library} as Borland's Windows C++ framework of choice. VCL encapsulates the C-based {Win32 API} into a much easier to use, {object-oriented} form. Like its direct rival, {Microsoft Foundation Class Library} (MFC), VCL includes classes to create Windows programs.
The VCL component class can be inherited to create new VCL components, which are the building blocks of Delphi and C++Builder applications. VCL components are somewhat in competition with {ActiveX} controls, though a VCL wrapper can be created to make an ActiveX control seem like a VCL component.
{Home (http://www.borland.com/bcppbuilder/productinfo/feaben/visual.html)}.
(2001-07-09)

visual dbase
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
Visual Display Unit
[hardware] (VDU, or "video terminal", "video display terminal", VDT, "display terminal") A device incorporating a {cathode ray tube} (CRT) display, a keyboard and a {serial port}. A VDU usually also includes its own display electronics which store the received data and convert it into electrical waveforms to drive the CRT.
VDUs fall into two categories: {dumb terminals} and {intelligent terminals} (sometimes called "programmable terminals").
Early VDUs could only display characters in a single preset {font}, and these were confined to being layed out in a rectangular grid, reproducing the functionality of the paper-based {teletypes} they were designed to replace.
Later models added graphics facilities but were still driven via serial communications, typically with several VDUs attached to a single multi-user computer. This contrasts with the much faster single {bitmap displays} integrated into most modern single-user {personal computers} and {workstations}.
The term "Display Screen Equipment" (DSE) is used almost exclusively in connection with the health and safety issues concerning VDUs.
{Working with VDUs - UK Heath and Safety Executive (http://www.hse.gov.uk/pubns/indg36.pdf)}.
(2002-11-09)

visual foxpro
Visual FoxPro
[database] A {Microsoft} {database} derived from {Fox Software}'s {FoxPRO}.
Latest version: 5.0, as of 2000-06-21.
{Home (http://msdn.microsoft.com/vfoxpro/)}.
[Features? Dates?]
(2000-08-06)

visual interface
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)

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)

visualisation
[graphics] Making a visible presentation of numerical data, particularly a graphical one. This might include anything from a simple X-Y graph of one dependent variable against one independent variable to a {virtual reality} which allows you to fly around the data.
{Gnuplot} is the {Free Software Foundation}'s utility for producing various kinds of graphs.
{Usenet} newsgroup: {news:comp.graphics}.
The {Computer Graphics Resource Listing} contains pointers to several visualisation tools.
{comp.graphics FAQ (ftp://src.doc.ic.ac.uk/usenet/news-info/comp.graphics/)}.
{Electronic Visualization Laboratory, University of Illinois at Chicago (http://www.ncsa.uiuc.edu/EVL/docs/Welcome.html)}.
(2002-02-21)

visualworks
VisualWorks
[language] A modern commercial implementation of the {Smalltalk} programming language. VisualWorks descends directly from the original {Smalltalk-80} by {Xerox PARC} and was originally developed (for some time under the name Objectworks\Smalltalk) by {ParcPlace Systems}. VisualWorks relies on {dynamic translation} as its {virtual machine} technology.
{VisualWorks Wiki (http://wiki.cs.uiuc.edu/VisualWorks)}.
(2003-05-15)

vital
VITAL
A {semantics} language using {FSL}, developed by Mondshein in 1967.
[Sammet 1969, p. 641].
(1995-02-23)

vivid
VIVID
A numerical {constraint}-oriented language.
["VIVID: The Kernel of a Knowledge Representation Environment Based on the Constraints Paradigm of Computation", J. Maleki, Proc 20th Annual Hawaii Intl Conf on System Sciences (Jan 1987) pp.591-597].
(1995-02-23)

viz
A {visual language} for specification and programming.
["viz: A Visual Language Based on Functions", C.M. Holt, 1990 IEEE Workshop on Visual Langs, Oct 1990, pp.221-226].
(1995-02-23)

vlan
VLAN
{Virtual Local Area Network}

vlb
VLB
{VESA local bus}

vldb
VLDB
{Very Large DataBase}
[How large?]
(1996-12-21)

vlisp
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
VLIW
{Very Long Instruction Word}

vlm
VLM
1. [architecture] {Very Large Memory}.
2. [networking] {Virtual Loadable Module}.
(1998-02-24)

vlsi
VLSI
{Very Large Scale Integration}

vlsm
VLSM
{Variable Length Subnet Masks}

vm
VM
{Virtual Machine}

vmcms
VM/CMS
{Virtual Machine/Conversational Monitor System}

vme
VME
1. [hardware] {Versa Module Europa}.
See {VMEbus}.
2. [operating system] {Virtual Machine Environment}.

vme microsystems international corporation
VME Microsystems International Corporation
[company] (VMIC)
Address: Huntsville, AL, USA.
Telephone: +1 800 322 3616.
(1995-06-01)

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

vmesa
VM/ESA
{Virtual Machine}

vml
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
VMS
{Virtual Memory System}

vmsp
VM/SP
{Virtual Machine}

vmxa
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
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 over ip
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}

voicenet
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}.
[{Jargon File}]
(1995-02-16)

voip
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
Volume Table Of Contents
[storage] (VTOC) /V-tock/ A special {file} on a {disk}, which contains a list of all the ordinary files on the disk and their {addresses}. Also called a {directory}.
The term is used mostly with large {mainframe} {disk drives}. Storage administrators will often refer to the VTOC to obtain information on the number of files stored on a disk.
(1997-04-15)

von neumann architecture
von Neumann architecture
[architecture, computability] A computer {architecture} conceived by mathematician {John von Neumann}, which forms the core of nearly every computer system in use today (regardless of size). In contrast to a {Turing machine}, a von Neumann machine has a {random-access memory} (RAM) which means that each successive operation can read or write any memory location, independent of the location accessed by the previous operation.
A von Neumann machine also has a {central processing unit} (CPU) with one or more {registers} that hold data that are being operated on. The CPU has a set of built-in operations (its {instruction set}) that is far richer than with the Turing machine, e.g. adding two {binary} {integers}, or branching to another part of a program if the binary integer in some register is equal to zero ({conditional branch}).
The CPU can interpret the contents of memory either as instructions or as data according to the {fetch-execute cycle}.
Von Neumann considered {parallel computers} but recognized the problems of construction and hence settled for a sequential system. For this reason, parallel computers are sometimes referred to as non-von Neumann architectures.
A von Neumann machine can compute the same class of functions as a universal {Turing machine}.
[Reference? Was von Neumann's design, unlike Turing's, originally intended for physical implementation? How did they influence each other?]
{(http://www.salem.mass.edu/~tevans/VonNeuma.htm)}.
(2003-05-16)

von neumann integer
von Neumann integer
[mathematics] A {finite} {von Neumann ordinal}.
The von Neumann integer N is a {finite} set with N elements which are the von Neumann integers 0 to N-1. Thus
0 = {} = {} 1 = {0} = {{}} 2 = {0, 1} = {{}, {{}}} 3 = {0, 1, 2} = {{}, {{}}, {{}, {{}}}} ...
The set of von Neumann integers is {infinite}, even though each of its elements is finite.
[Origin of name?]
(1995-03-30)

von neumann john
von Neumann, John
{John von Neumann}

von neumann machine
von Neumann machine
{von Neumann architecture}

von neumann ordinal
von Neumann ordinal
[mathematics] An implementation of {ordinals} in {set theory} (e.g. {Zermelo Frankel set theory} or {ZFC}). The von Neumann ordinal alpha is the {well-ordered set} containing just the ordinals "shorter" than alpha.
"Reasonable" set theories (like ZF) include Mostowski's Collapsing Theorem: any {well-ordered set} is {isomorphic} to a von Neumann ordinal. In really screwy theories (e.g. NFU -- New Foundations with Urelemente) this theorem is false.
The finite von Neumann ordinals are the {von Neumann integers}.
(1995-03-30)

voodoo programming
[jargon] (From George Bush's "voodoo economics") The use by guess or cookbook of an obscure or {hairy} system, feature, or algorithm that one does not truly understand. The implication is that the technique may not work, and if it doesn't, one will never know why. Almost synonymous with {black magic}, except that black magic typically isn't documented and *nobody* understands it.
Compare {magic}, {deep magic}, {heavy wizardry}, {rain dance}, {cargo cult programming}, {wave a dead chicken}.
[{Jargon File}]
(1995-03-10)

voronoi diagram
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
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
VOS
[operating system] An {operating system} used in {Stratus} computers.
See also {FTX}.
[Details?]
(1998-07-06)

voters telecommunications watch
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)

vpcm
V.pcm
{V.90}

vpl
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
VPN
{Virtual Private Network}

vpplanner
VP-Planner
[tool, product] A {spreadsheet} from {Paperback Software}. It has a graph menu within the spreadsheet program (with {CGA} graphics). The graphs are updated every time the graph screen is activated.
(1995-03-28)

vqf
VQF
{Twin Vector Quantization}

vr
VR
{virtual reality}

vram
VRAM
{video random access memory}

vrc
VRC
{Vertical Redundancy Check}

vrml
VRML
{Virtual Reality Modeling Language}

vrtx
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
VSAM
{Virtual Storage Access Method}

vsat
VSAT
[communications] {Very Small Aperture Terminal}.

vscm
VSCM
[language, LISP] A highly {portable} implementation of {Scheme}, written in {ANSI C} and {Scheme}. VSCM features {exception} and {interrupt} handling, executable portable memory images, {coroutines} and {continuations} with multiple arguments.
Portability is achieved by exclusive use of legal ANSI C features.
Version II Nov9 by Matthias Blume [blume@cs.princeton.edu] included {run-time support} and a {bytecode compiler}. It conforms to R4RS and IEEE P1178 and runs on {Unix} and {Macintosh}.
VSCM is no longer actively developed - the author recommends {StandardML}.
{Home (http://www.cs.princeton.edu/~blume/vscm/)}.
(2001-01-02)

vse
VSE
{Virtual Storage Extended}

vsf
VSF
{Virtual Software Factory}

vsp
VSP
Very Simple Prolog+.

vsta
VSTa
[operating system] {Valencia Simple Tasker}.

vsx
VSX
Verification Suite for {X/open}.

vt
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
VTAM
{Virtual Telecommunications Access Method}

vtc
VTC
{video teleconferencing}

vtoc
VTOC
{Volume Table Of Contents}

vts
VTS
A suite of test programs for Motif from {OSF}.

vtw
VTW
{Voters Telecommunications Watch}

vu
[networking] The {country code} for Vanuatu.
(1999-01-27)

vue
VUE
Visual User Environment: a desktop manager for Unix from Hewlett-Packard.

vuit
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
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
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
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]! Silicon Graphics users are obviously the most dextrous however, as these machines use the five-finger combination: Left Shift/Left Ctrl/Left Alt/Keypad Divide/F12.
Compare {quadruple bucky}.
[{Jargon File}]
(2000-04-04)

vulture capitalist
[abuse] A pejorative hackerism for "venture capitalist", deriving from the common practice of pushing contracts that deprive inventors of control over their own innovations and most of the money they ought to have made from them.
[{Jargon File}]
(1995-04-14)

vup
VUP
{VAX MIPS}

vxd
VxD
{Virtual Device Driver}

vxi
VXI
{VMEbus Extension for Instrumentation}

vxworks
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: 5.3, as of 1996-11-28.
(1996-11-29)

w2k
W2K
{Windows 2000}

w3
W3
A {World-Wide Web} {browser} for {Emacs} by William M. Perry [wmperry@indiana.edu].
(1994-12-16)

w3 consortium
W3 Consortium
{World Wide Web Consortium}

w3c
W3C
{World Wide Web Consortium}

wa12
WA-12
Workflow Analysis in 12 different organisations. A project from the Department of Computer Science from the {University of Twente}, Enschede, The Netherlands. The final report of this project is available to the public (ISBN 90-365-0683-2).

wabbit
/wab'it/ [almost certainly from Elmer Fudd's immortal line "You wascawwy wabbit!"] 1. A legendary early hack reported on a System/360 at RPI and elsewhere around 1978; this may have descended (if only by inspiration) from hack called RABBITS reported from 1969 on a Burroughs 55000 at the University of Washington Computer Center. The program would make two copies of itself every time it was run, eventually crashing the system.
2. By extension, any hack that includes infinite self-replication but is not a {virus} or {worm}. See {fork bomb} and {rabbit job}, see also {cookie monster}.
[{Jargon File}]

wabi
Wabi
{Windows Application Binary Interface}

wabiserver
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
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
WAFL
WArwick Functional Language. Warwick U, England. LISP-like.

wais
WAIS
{Wide Area Information Servers}

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)

waits
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.
[{Jargon File}]

waldo
/wol'doh/ [Robert A. Heinlein's story "Waldo"] 1. A mechanical agent, such as a gripper arm, controlled by a human limb. When these were developed for the nuclear industry in the mid-1940s they were named after the invention described by Heinlein in the story, which he wrote in 1942. Now known by the more generic term "telefactoring", this technology is of intense interest to NASA for tasks like space station maintenance.
2. At Harvard (particularly by Tom Cheatham and students), this is used instead of {foobar} as a metasyntactic variable and general nonsense word. See {foo}, {bar}, {foobar}, {quux}.
[{Jargon File}]

walk
[programming] To Traverse a data structure, especially an {array} or {linked-list} in {core}.
See also {codewalker}, {silly walk}, {clobber}.
(2001-04-12)

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

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.
[{Jargon File}]

wall
{Unix}'s "write all" command which sends a message to everyone currently logged in.
[{Jargon File}]

wall clock time
[software] The elapsed time between when a {process} starts to run and when it is finished. This is usually longer than the {processor time} consumed by the process because the {CPU} is doing other things besides running the {process} such as running other user and {operating system} processes or waiting for disk or {network} {I/O}.
(1998-03-13)

wall follower
[robotics] A person or {algorithm} that compensates for lack of sophistication or native stupidity by efficiently following some simple procedure shown to have been effective in the past. Used of an algorithm, this is not necessarily pejorative; it recalls "Harvey Wallbanger", the winning robot in an early AI contest (named, of course, after the cocktail). Harvey successfully solved mazes by keeping a "finger" on one wall and running till it came out the other end. This was inelegant, but it was mathematically guaranteed to work on simply-connected mazes - and, in fact, Harvey outperformed more sophisticated robots that tried to "learn" each maze by building an internal representation of it. Used of humans, the term *is* pejorative and implies an uncreative, bureaucratic, by-the-book mentality.
See also {code grinder}.
[{Jargon File}]
(2003-02-03)

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).
[{Jargon File}]

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)

wam
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
WAN
{Wide Area Network}

wang laboratories
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."
[{Jargon File}]

wank
/wangk/ [Columbia University: probably by mutation from Commonwealth slang "wank", to masturbate] Used much as {hack} is elsewhere, as a noun denoting a clever technique or person or the result of such cleverness. May describe (negatively) the act of hacking for hacking's sake ("Quit wanking, let's go get supper!") or (more positively) a {wizard}. "wanky" describes something particularly clever (a person, program, or algorithm). Conversations can also get wanky when there are too many wanks involved. This excess wankiness is signalled by an overload of the "wankometer" (compare {bogometer}). When the wankometer overloads, the conversation's subject must be changed, or all non-wanks will leave. Compare "neep-neeping" (under {neep-neep}). Usage: US only. In Britain and the Commonwealth this word is *extremely* rude and is best avoided unless one intends to give offense.

wannabee
/won'*-bee/ (Or, more plausibly, spelled "wannabe") [Madonna fans who dress, talk, and act like their idol; probably originally from biker slang] A would-be {hacker}. The connotations of this term differ sharply depending on the age and exposure of the subject. Used of a person who is in or might be entering {larval stage}, it is semi-approving; such wannabees can be annoying but most hackers remember that they, too, were once such creatures. When used of any professional programmer, CS academic, writer, or {suit}, it is derogatory, implying that said person is trying to cuddle up to the hacker mystique but doesn't, fundamentally, have a prayer of understanding what it is all about. Overuse of hacker terms is often an indication of the {wannabee} nature. Compare {newbie}.
Historical note: The wannabee phenomenon has a slightly different flavour now (1993) than it did ten or fifteen years ago. When the people who are now hackerdom's tribal elders were in {larval stage}, the process of becoming a hacker was largely unconscious and unaffected by models known in popular culture - communities formed spontaneously around people who, *as individuals*, felt irresistibly drawn to do hackerly things, and what wannabees experienced was a fairly pure, skill-focussed desire to become similarly wizardly. Those days of innocence are gone forever; society's adaptation to the advent of the microcomputer after 1980 included the elevation of the hacker as a new kind of folk hero, and the result is that some people semi-consciously set out to *be hackers* and borrow hackish prestige by fitting the popular image of hackers. Fortunately, to do this really well, one has to actually become a wizard. Nevertheless, old-time hackers tend to share a poorly articulated disquiet about the change; among other things, it gives them mixed feelings about the effects of public compendia of lore like this one.
[{Jargon File}]

want list
{wish list}

wap
WAP
{Wireless Application Protocol}

wap forum
WAP Forum
[body] The official body developing {Wireless Application Protocol}.
{Home (http://www.wapforum.org/)}.
(2000-02-10)

warchalk
[networking] A system of runes and annotations chalked on walls or other surfaces to indicate to interested parties the presence of a {wireless} network {node} in the vicinity.
Warchalking was inspired by "hobo language" - the signs used by American itinerants during the Depression years to indicate where they might find a meal.
{Home (http://www.blackbeltjones.com/warchalking/)}.
(2002-06-26)

wardialer
[security] Almost certainly a shortened version of "WarGames dialer", from the film {WarGames}.
1. {carrier scanner}
2. A program which attempts to break a {password} of known length by iterating thru all possible combinations of characters that could make up that password.
This approach is not feasable for cracking most passwords these days. However, as late as the mid-1980s, some long-distance companies required only very short numeric access codes (e.g. five digits) to verify the identity of their customers. Wardialers were created which would, running unattended, call up long-distance providers' local connect numbers and iteratively try possible access codes. Codes which worked were logged for later illicit use.
These wardialers had a high success rate because of the small range of possibilities to iterate through, e.g. 10000 for a five digit access code, compared to hundreds of trillions of combinations for an eight-character alphanumeric code.
Long-distance providers soon required longer passwords and took advantage of technology for rapidly tracing the phone numbers that wardialers were being run from, such that running wardialers became pointless and dangerous.
(1997-03-16)

wardriving
[security] (From {wardialer} in the "carrier scanner" sense of that word) To drive around with a {laptop} with a {wireless card}, and an antenna, looking for accessible {wireless networks}.
(2003-06-24)

ware
-ware
["software"] Commonly used to form terms for classes of software. For examples, see {careware}, {crippleware}, {crudware}, {freeware}, {fritterware}, {guiltware}, {liveware}, {meatware}, {payware}, {psychedelicware}, {shareware}, {shelfware}, {vaporware}, {wetware}.
[{Jargon File}]

warez
/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
WarGames
[recreation] (Not "War Games") A 1983 film about a schoolboy {cracker} using a {wardialer} to try to break into a games company's computer and accidentally connecting to a {backdoor} into "Whopper", a ficticious {C3} computer at Norad (USAF). He then procedes to unwittingly initiate global thermonuclear warfare. Playing naughts and crosses finally teaches Whopper that the only way to win the game is never to play.
{IMDb (http://us.imdb.com/Title?WarGames+%281983%29)}.
(1999-03-08)

warlording
[jargon] The act of excoriating a bloated, ugly or derivative {sig block}. Common grounds for warlording include the presence of a signature rendered in a {BUAF}, over-used or cliched {sig quotes}, ugly {ASCII art}, or simply excessive size. The original "Warlord" was a {BIFF}-like {newbie} c. 1991 who featured in his sig a particularly large and obnoxious ASCII graphic resembling the sword of Conan the Barbarian in the 1981 John Milius movie; the group name alt.fan.warlord was sarcasm, and the characteristic mode of warlording is devastatingly sarcastic praise.
{Usenet} newsgroup: {news:alt.fan.warlord}.
[{Jargon File}]
(1994-11-29)

warm boot
[operating system] A {boot} from {power on}, where the {CPU} and {peripherals} are already powered up (warm).
A warm boot might be performed after a {software} {crash} or a {hardware} {reset}.
Contrast {cold boot}. See also {reboot}.
[{Jargon File}]
(1998-04-28)

warm silence software
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
Warp
{OS/2}

wart
A small, {crock}y {feature} that sticks out of an otherwise {clean} design. Something conspicuous for localised ugliness, especially a special-case exception to a general rule. For example, in some versions of "csh(1)", single quotes literalise every character inside them except "!". In ANSI C, the "?" syntax used for obtaining ASCII characters in a foreign environment is a wart. See also {miswart}.
[{Jargon File}]

washing machine
[storage] An old-style 14-inch {hard disk} in a floor-standing cabinet. So called because of the size of the cabinet and the "top-loading" access to the media packs - and, of course, they were always set on "spin cycle". The thick channel cables connecting these were called "{bit hoses}". The washing-machine idiom transcends language barriers; it is even used in Russian hacker jargon.
See also {walking drives}.
(1995-02-15)

wasserman
Wasserman
A.I. Wasserman (Tony), president of {IDE}.
(1995-02-15)

watbol
WATBOL
WATerloo COBOL.
A {COBOL} for {IBM} {MVS}.
(1995-02-15)

watcom cc
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
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
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 vxrexx
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)

water mips
water MIPS
[jargon] Large, water-cooled computers of either today's {ECL}-{supercomputer} flavour or yesterday's traditional {mainframe} type.
See {MIPS}
[{Jargon File}]
(1995-03-25)

waterfall model
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)

watfiv
WATFIV
WATerloo Fortran IV. U Waterloo, Canada. Student-friendly variant of Fortran IV.

watfor
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
WAVE
[language, robotics] A {robotics} language.
["WAVE: A Model-Based Language for Manipulator Control", R.P. Paul, Ind Robot 4(1):10-17, 1979].
(1996-09-08)

wave a dead chicken
[jargon] To perform a ritual in the direction of crashed software or hardware that one believes to be futile but is nevertheless necessary so that others are satisfied that an appropriate degree of effort has been expended. "I'll wave a dead chicken over the source code, but I really think we've run into an OS bug".
Compare {voodoo programming}, {rain dance}.
[{Jargon File}]
(1996-09-08)

wave division multiplexing
[spelling] A common misnomer for {wavelength division multiplexing}.
(2002-07-16)

waveform generation language
Waveform Generation Language
[testing] (WGL) A {data description language} for test program description.
[Reference? What kind of test programs?]
(2001-05-20)

wavelength division multiplexing
[communications] (WDM) {Multiplexing} several {Optical Carrier n} signals on a single {optical fibre} by using different wavelengths (colours) of {laser} light to carry different signals.
The device that joins the signals together is known as a {multiplexor}, and the one that splits them apart is a {demultiplexor}. With the right type of fibre you can have a device that does both and that ought to be called a "mudem" but isn't.
The first WDM systems combined two signals and appeared around 1985. Modern systems can handle up to 128 signals and can expand a basic 9.6 {Gbps} fibre system to a capacity of over 1000 Gbps.
WDM systems are popular with telecommunications companies because they allow them to expand the capacity of their fibre networks without digging up the road again. All they have to do is to upgrade the (de)multiplexors at each end. However these systems are expensive and complicated to run. There is currently no {standard}, which makes it awkward to integrate with older but more standard {SONET} systems.
Note that this term applies to an optical {carrier} (which is typically described by its wavelength), whereas {frequency division multiplexing} typically applies to a {radio} carrier (which is more often described by frequency). However, since wavelength and frequency are inversely proportional, and since radio and light are both forms of electromagnetic radiation, the distinction is somewhat arbitrary.
See also {time division multiplexing}, {code division multiplexing}.
[Is "wave division multiplexing", as in "dense wave division multiplexing" (DWDM) just a trendy abbreviation?]
(2002-07-16)

wavelet
[mathematics] A waveform that is bounded in both {frequency} and duration. Wavelet tranforms provide an alternative to more traditional {Fourier transforms} used for analysing waveforms, e.g. sound.
The {Fourier transform} converts a signal into a continuous series of {sine waves}, each of which is of constant frequency and {amplitude} and of infinite duration. In contrast, most real-world signals (such as music or images) have a finite duration and abrupt changes in frequency.
Wavelet transforms convert a signal into a series of wavelets. In theory, signals processed by the wavelet transform can be stored more efficiently than ones processed by Fourier transform. Wavelets can also be constructed with rough edges, to better approximate real-world signals.
For example, the United States Federal Bureau of Investigation found that Fourier transforms proved inefficient for approximating the whorls of fingerprints but a wavelet transform resulted in crisper reconstructed images.
{SBG Austria (http://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
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)

wbmp
WBMP
{wireless bitmap}

wbs
WBS
{Work Breakdown Structure}

wcl
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
WD
{Western Digital}

wdasm
WDASM
[tool] (Probably "Windows disassembler") An {interactive} {Intel 486} {disassembler} for {Windows 3.1} written by Eric Grass at the University of Missouri, St. Louis. WDASM supports multiple disassembly formats.
{(ftp://ftp.simtel.com/cica/win3/util/wdasm15.zip)}.
(1993-06-01)

wdm
WDM
{wavelength division multiplexing}

we
WE
A {hypertext} {authoring} system developed at the {University of North Carolina}.
(1994-11-07)

weak head normal form
Weak Head Normal Form
[reduction, lambda calculus] (WHNF) A {lambda expression} is in weak head normal form (WHNF) if it is a {head normal form} (HNF) or any {lambda abstraction}. I.e. the top level is not a {redex}.
The term was coined by {Simon Peyton Jones} to make explicit the difference between {head normal form} (HNF) and what {graph reduction} systems produce in practice. A lambda abstraction with a reducible body, e.g.
\ x . ((\ y . y+x) 2)
is in WHNF but not HNF. To reduce this expression to HNF would require reduction of the lambda body:
(\ y . y+x) 2 --] 2+x
Reduction to WHNF avoids the {name capture} problem with its need for {alpha conversion} of an inner lambda abstraction and so is preferred in practical {graph reduction} systems.
The same principle is often used in {strict} languages such as {Scheme} to provide {call-by-name} evaluation by wrapping an expression in a lambda abstraction with no arguments:
D = delay E = \ () . E
The value of the expression is obtained by applying it to the empty argument list:
force D = apply D () = apply (\ () . E) () = E
(1994-10-31)

weak typing
[programming] Strict enforcement of {type} rules but with well-defined exceptions or an explicit type-violation mechanism.
Weak typing is "friendlier" to the programmer than {strong typing}, but catches fewer errors at compile time.
{C} and {C++} are weakly typed, as they automatically {coerce} many types e.g. {ints} and {floats}. E.g.
int a = 5; float b = a;
They also allow ignore {typedefs} for the purposes of type comparison; for example the following is allowed, which would probably be disallowed in a strongly typed language:
typedef int Date; /* Type to represent a date */ Date a = 12345; int b = a; /* What does the coder intend? */
C++ is stricter than C in its handling of enumerated types:
enum animal {CAT=0,DOG=2,ANT=3}; enum animal a = CAT; /* NB The enum is optional in C++ */ enum animal b = 1; /* This is a warning or error in C++ */
(2000-07-04)

weakly typed
{weak typing}

weasel
[jargon, abuse] (Cambridge) A naive user, one who deliberately or accidentally does things that are stupid or ill-advised. Roughly synonymous with {loser}.
[{Jargon File}]
(1995-03-21)

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

web browser
[World-Wide Web] A {browser} for the {World-Wide Web}.
(1996-03-23)

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://www.foldoc.org/). It may also have individual home pages for each user with an account at the site.
(1999-03-21)

web request broker
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 services
Web Services
[standard, programming, software] A business and technology term encompassing the possibility of openly working with other business, {developers}, and {programs} through publicly-available open {APIs}.
See {UDDI}, {WSDL}, {Simple Object Access Protocol}.
{W3C Web Services Activity (http://www.w3.org/2002/ws)}.
(2002-06-28)

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)

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)

webcam
[World-Wide Web, hardware, video] (World-Wide Web camera) Any video camera whose output is available for viewing via the {Internet} or an {intranet}. Typically a webcam would be a slow-scan {CCD} video camera connected to a video capture card in a computer. Images from the camera are captured periodically and made available on a web page. In 1999 there are hundreds of webcams in operation around the world showing everything from bedrooms to traffic.
[List?]
(1999-01-11)

webcasting
[multimedia, World-Wide Web] (From "World-Wide Web" and "broadcast", sometimes just called "push") {Multicasting} on the {Internet}. Webcasting implies {real-time} {streaming} transmission of encoded {video} (or {audio}) under the control of the {server} to multiple recipients who all receive the same content at the same time. This is in contrast to normal web browsing which is controlled from the {browser} by individual users and may take arbitrarily long to deliver a complete document.
{Pointcast} and {Marimba} were early pioneers.
{International Webcasting Association (http://www.webcasters.org/)}.
(2003-07-08)

webcgm
WebCGM
[graphics, file format] A {Web}-oriented version of the {Computer Graphic Metafile} file format.
(1999-02-16)

webcomal
WebCOMAL
{COMmon Algorithmic Language}

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

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

websters dictionary
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.
[{Jargon File}]

wedgie
(Fairchild) A bug. Probably related to {wedged}.

wedgitude
/wedj'i-t[y]ood/ The quality or state of being {wedged}.
[{Jargon File}]

weeble
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}.
[{Jargon File}]

weenie
1. [on BBSes] Any of a species of {luser} resembling a less amusing version of {BIFF} that infests many {BBS}es. The typical weenie is a teenage boy with poor social skills travelling under a grandiose {handle} derived from fantasy or heavy-metal rock lyrics. Among {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
Weenix
/wee'niks/ An {ITS} fan's derogatory term for {Unix}, derived from {Unix weenie}. According to one noted ex-{ITS}er, it is "the operating system preferred by Unix Weenies: typified by poor modularity, poor reliability, hard file deletion, no file version numbers, case sensitivity everywhere, and users who believe that these are all advantages". Some {ITS} fans behave as though they believe Unix stole a future that rightfully belonged to them.
[{Jargon File}]
(1995-01-18)

weighted search
[information science] A search based on frequencies of the {search terms} in the documents being searched. Weighted search is often used by {search engines}. It produces a numerical score for each possible document. A document's score depends on the frequency of each {search term} in that document compared with the overall frequency of that term in the entire corpus of documents. A common approach is called tf.idf which stands for term frequency * inverse document frequency. Term frequency means "the more often a term occurs in a document, the more important it is in describing that document." {http://ciir.cs.umass.edu/cmpsci646/ir4/tsld034.htm} Inverse document frequency means the more documents a term appears in, the less important the term is.
A simple weighted search is just a list of search terms, for example: car automobile
Weighted search is often contrasted with {boolean search}. It is possible to have a search that syntactically is a boolean search but which also does a weighted search.
See also {query expansion}.
For a detailed technical discussion see Chapter 5, "Search Strategies", in the reference below.
[{"Information Retrieval", C. J. van Rijsbergen, (http://www.dcs.gla.ac.uk/Keith/Chapter.5/Ch.5.html)}].
(1999-08-28)

wellbehaved
well-behaved
1. [primarily {MS-DOS}] Said of software conforming to system interface guidelines and standards. Well-behaved software uses the {operating system} to do chores such as keyboard input, allocating memory and drawing graphics. Oppose {ill-behaved}.
2. Software that does its job quietly and without counterintuitive effects. Especially said of software having an interface spec sufficiently simple and well-defined that it can be used as a {tool} by other software. See {cat}.
[{Jargon File}]

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

wellknown port
well-known port
[networking] A {TCP or {UDP} {port} with a number in the range 0-1023 (originally 0-255). The well-known port numbers are assigned by the {IANA} and on most systems can only be used by system (or root) processes or by programs executed by privileged users.
(2002-10-06)

wellordered set
well-ordered set
[mathematics] A set with a {total ordering} and no infinite descending {chains}. A total ordering "[=" satisfies
x [= x
x [= y [= z =] x [= z
x [= y [= x =] x = y
for all x, y: x [= y or y [= x
In addition, if a set W is well-ordered then all non-empty subsets A of W have a least element, i.e. there exists x in A such that for all y in A, x [= y.
{Ordinals} are {isomorphism classes} of {well-ordered sets}, just as {integers} are {isomorphism classes} of finite sets.
(1995-04-19)

wesley clark
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
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
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?]
[{Jargon File}]
(1996-08-19)

wf
[networking] The {country code} for the Wallis and Futuna Islands.
(1999-01-27)

wfl
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
WfMC
{Workflow Management Coalition}

wfw
WFW
{Windows for Workgroups}

wfwg
WFWG
{Windows for Workgroups}

wg
WG
{Working Group}

wgl
WGL
{Waveform Generation Language}

whack
According to arch-hacker James Gosling, to "...modify a program with no idea whatsoever how it works." (See {whacker}.) It is actually possible to do this in nontrivial circumstances if the change is small and well-defined and you are very good at {glark}ing things from context. As a trivial example, it is relatively easy to change all "stderr" writes to "stdout" writes in a piece of C filter code which remains otherwise mysterious.
[{Jargon File}]

whacker
[University of Maryland: from {hacker}] 1. A person, similar to a {hacker}, who enjoys exploring the details of programmable systems and how to stretch their capabilities. Whereas a hacker tends to produce great hacks, a whacker only ends up whacking the system or program in question. Whackers are often quite egotistical and eager to claim {wizard} status, regardless of the views of their peers. 2. A person who is good at programming quickly, though rather poorly and ineptly.

whales
See {like kicking dead whales down the beach}.
[{Jargon File}]

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

what you get is what you never thought you had
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
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
What You See Is What You Get
[jargon] (WYSIWYG) /wiz'ee-wig/ Describes a user interface for a document preparation system under which changes are represented by displaying a more-or-less accurate image of the way the document will finally appear, e.g. when printed. This is in contrast to one that uses more-or-less obscure commands that do not result in immediate visual feedback.
True WYSIWYG in environments supporting multiple fonts or graphics is rarely-attained; there are variants of this term to express real-world manifestations including WYSIAWYG (What You See Is *Almost* What You Get) and WYSIMOLWYG (What You See Is More or Less What You Get). All these can be mildly derogatory, as they are often used to refer to dumbed-down {user-friendly} interfaces targeted at non-programmers; a hacker has no fear of obscure commands (compare {WYSIAYG}). On the other hand, {Emacs} was one of the very first WYSIWYG editors, replacing (actually, at first overlaying) the extremely obscure, command-based {TECO}.
See also {WIMP}.
(1999-03-03)

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)

whats a spline
What's a spline?
[XEROX PARC] This phrase expands to: "You have just used a term that I've heard for a year and a half, and I feel I should know, but don't. My curiosity has finally overcome my guilt." The PARC lexicon adds "Moral: don't hesitate to ask questions, even if they seem obvious."
[{Jargon File}]

wheel
[slang "big wheel" for a powerful person] A person who has an active {wheel bit}. "We need to find a wheel to unwedge the hung tape drives." (See {wedged}).
[{Jargon File}]

wheel bit
A privilege bit that allows the possessor to perform some restricted operation on a {time-sharing} system, such as read or write any file on the system regardless of protections, change or look at any address in the running monitor, crash or reload the system, and kill or create jobs and user accounts. The term was invented on the TENEX operating system, and carried over to TOPS-20, XEROX-IFS, and others. The state of being in a privileged logon is sometimes called "wheel mode". This term entered the Unix culture from TWENEX in the mid-1980s and has been gaining popularity there (especially at university sites). See also {root}.

wheel wars
[Stanford University] A period in {larval stage} during which student hackers hassle each other by attempting to log each other out of the system, delete each other's files, and otherwise wreak havoc, usually at the expense of the lesser users.
[{Jargon File}]

when its done
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
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
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)

whirlwind
Whirlwind
[computer] An early computer from the {MIT Research Laboratory for Electronics}.
Whirlwind used {electrostatic memory} and ran {Laning and Zierler} (1953); and {ALGEBRAIC}, {COMPREHENSIVE} and {SUMMER SESSION} (all 1959).
[Details, reference?]
(2002-06-03)

white book
White Book
1. [language, publication] {K&R}.
2. [language, publication, file format] The fourth book in {Adobe Systems, Inc.}'s {PostScript} series, describing the previously-secret format of {Type 1} {fonts}. The other three official guides are known as the {Blue Book}, the {Green Book}, and the {Red Book}.
["Adobe Type 1 Font Format, version 1.1", Addison-Wesley, 1990 (ISBN 0-201-57044-0)].
3. [hardware, standard] {White book CD-ROM}.
[{Jargon File}]
(1996-12-03)

white book cdrom
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
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)

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)

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)

whnf
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
Whopper
{WarGames}

whql
WHQL
{Windows Hardware Quality Labs}

wibni
WIBNI
({Bell Labs}) Wouldn't It Be Nice If.
What most requirements documents and specifications consist entirely of.
Compare {IWBNI}.
[{Jargon File}]
(1994-11-24)

wide area information servers
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
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)

wide scsi
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)

wideband atm
Wideband ATM
[networking] An enhanced form of {ATM} networking that transfers digital data over {local area networks}, originally at 0.96 {Gbps}, now (Aug 1996) at 1.0 Gbps.
(1996-08-23)

widget
1. A meta-thing. Used to stand for a real object in didactic examples (especially database tutorials). Legend has it that the original widgets were holders for buggy whips. "But suppose the parts list for a widget has 52 entries..."
2. [possibly evoking "window gadget"] In graphical user interfaces, a combination of a graphic symbol and some program code to perform a specific function. E.g. a scroll-bar or button. Windowing systems usually provide widget libraries containing commonly used widgets drawn in a certain style and with consistent behaviour.
[{Jargon File}]

wifi
wi-fi
[networking] Either of two different incompatible radio-based {LAN} {protocols}, namely {802.11b} (which speaks {DSSS} at 2.4GHz) and {802.11a} (which speaks {OFDM} at 5GHz).
The term was invented by the marketing departments of wi-fi equipment manufacturers. It is, notionally, short for "wireless fidelity", on the analogy of hi-fi for "high fidelity" audio.
(2003-09-02)

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.

wilan
WiLAN
{wireless local area network}

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)

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

william gibson
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
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
William Joy
[person] (Bill Joy) Author of the {C shell} and {vi}, he was also one of the people at the {University of California at Berkeley} responsible for the {Berkeley Software Distribution} of {Unix}. He also wrote a book on {Unix}.
He was a co-founder of {Sun Microsystems, Inc.}, where he is still (1997) Vice-President of Research. Among his many projects for Sun have been helping to design the {Network File System} and the {SPARC} architechture.
{Biography (http://www.sun.com/aboutsun/media/ceo/mgt_joy.html)}.
See also {dinosaur}.
[Book ref? E-mail?]
(2000-10-30)

wimp
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 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}.
[{Jargon File}]
(1996-09-08)

win 95
Win 95
{Windows 95}

win 98
Win 98
{Windows 98}

win2k
Win2K
{Windows 2000}

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

winchester
[hardware] An informal generic term for {floating-head} {magnetic disk} drives in which the read-write head planes over the disk surface on an air cushion.
The name arose because the original 1973 engineering prototype for what later became the {IBM 3340} featured two 30-megabyte volumes; 30--30 became "Winchester" when somebody noticed the similarity to the common term for a famous Winchester rifle (in the latter, the first 30 referred to caliber and the second to the grain weight of the charge).
[{Jargon File}]
(1994-12-06)

wind river systems
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)

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 RAM
{Window Random Access Memory}

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)

window shopping
[jargon] A term used among users of {WIMP} environments like the {X Window System} or the {Macintosh} at the US Geological Survey for extended experimentation with new window colours, {fonts}, and {icon} shapes. This activity can take up hours of what might otherwise have been productive working time. "I spent the afternoon window shopping until I found the coolest shade of green for my active window borders --- now they perfectly match my medium slate blue background." Serious window shoppers will spend their days with bitmap editors, creating new and different icons and background patterns for all to see. Also: "window dressing", the act of applying new fonts, colours, etc.
See {fritterware}, compare {macdink}.
[{Jargon File}]
(1996-07-08)

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

windowing system
{window system}

windows
Windows
[operating system] See {Microsoft Windows}, {Windows NT}.
(1997-11-23)

windows 1
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
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
Windows 2000
[operating system] (Win2k, W2k, NT5, Windows NT 5.0) An {operating system} developed by {Microsoft Corporation} for {PCs} and {servers}, as the successor to {Windows NT 4}.0. Early {beta} versions were referred to as "Windows NT 5.0". Windows 2000 was officially released on 2000-02-17.
Windows 2000 is most commonly used on {Intel} {x86} and {Pentium} processors, with a {DEC Alpha} version rumoured. Unlike Windows NT 4.0, Windows 2000 is not available for {PowerPC} or {MIPS}.
Windows 2000's {user interface} is very similar to {Windows 95} or Windows NT 4.0 with integrated {Internet Explorer}, or to {Windows 98}.
It is available in four flavours:
- Professional: the {client} version, meant for desktop {workstations}, successor to Windows NT Workstation.
- Server: "entry-level" server, designed for small deployments, and departmental file, print, or {intranet} servers.
- Advanced Server: high throughput, larger scale servers and applications, and small to medium scale {web sites}.
- Data Center Server: software for large-scale server {clusters} (in development as of 2000-03-14).
New features in Windows 2000 include:
- {Active Directory}.
- Greatly improved built-in security mechanisms, including {Kerberos}-based {authentication}, {public key} support, an {encrypting} {file system}, and {IPsec} support.
- Integrated {web browser} - {Internet Explorer} 5.0.
- Integrated {web server} - {IIS} 5.0
- Terminal services for displaying application interfaces on remote computers (similar to {X-Windows}).
- File protection that prevents user programs from accidentally deleting or overwriting critical system files.
- Improved hardware support, including {Plug-and-Play}, {DVD}, {IEEE-1394} (FireWire), {USB}, {infra-red}, {PCMCIA}, {ACPI}, {laptop computers}.
- Improved user interface, including a single point to control the entire system.
- Improved management tools, including remote administration.
Minimum system requirements, according to Microsoft, are {Pentium}-133 {MHz} {CPU}, 64 {MB} {RAM}, 650 {MB} of {hard disk} space. These are for W2K Professional, others require more.
Many {operating systems} compete with Windows 2000, including the {Apple} {MacOS}, {Linux}, {FreeBSD}, {OpenBSD}, {NetBSD}, {Sun} {Solaris}, {IBM} {AIX}, {Hewlett-Packard} {HP-UX}, {SGI} {Irix}. Novell's NDS also provides a service similar to Active Directory.
Windows 2000 will be followed by {Windows XP} Professional and {Windows 2002}.
{Home (http://www.microsoft.com/windows2000/)}.
{Usenet} newsgroups: {(news:microsoft.public.windows2000)}, {(news:comp.os.ms-windows)}.
(2002-01-28)

windows 2k
Windows 2K
{Windows 2000}

windows 30
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 31
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 311
Windows 3.11
[operating system] A free minor bug-fix for {Windows 3.1}.
(1996-07-08)

windows 4gl
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
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
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
Windows 98
[operating system] {Microsoft}'s 1998 update to {Windows 95} that adds:
* Hardware support for {Universal Serial Bus} (USB).
* Internet Connection Sharing (IGC) - multiple PCs share a single connection to the Internet.
* Microsoft {WebTV} for Windows - watch TV on your PC.
* Support for new graphic, sound, and multimedia formats.
* {Internet Explorer} release 5.
* Windows 98 {Service Pack} - {year 2000} updates.
Windows 98 was followed logically by {Windows ME} but chronologically by {Windows 2000 Professional Edition}.
{Home (http://www.microsoft.com/windows98)}.
(2002-01-19)

windows application binary interface
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
Windows CE
[operating system] /C E/ A version of the {Microsoft Windows} {operating system} that is being used in a variety of {embedded} products, from {handheld} PCs to specialised industrial {controllers} and consumer electronic devices. Programming for Windows CE is similar to programming for other {Win32} {platforms}.
Windows CE was developed to be a customisable operating system for embedded {applications}. Its {kernel} borrows much from other Microsoft {32-bit} operating systems, while eliminating (or replacing) those operating system features that are not needed for typical Windows CE-based applications. For example, as on {Windows NT}, all applications running on Windows CE run in a fully {preemptive multitasking} environment, in fully {protected memory} spaces.
The {Win32} (API) for Windows CE is smaller than the Win32 API for the other 32-bit Windows operating systems. It includes approximately half the interface methods of the Windows NT version of the API. But the Win32 API for Windows CE also includes features found in no other Microsoft operating system. The notification API, for example, makes it possible to handle user or application notification events (such as timer events) at the operating-system level, rather than in a running application. The {touch screen} API and the built-in support for the Windows CE {database} are not found in other Windows operating systems. The touch screen API makes it easy to manage screen calibration and user interactions for {touch-sensitive displays}, while the database API provides access to a data storage facility.
{(http://channels.microsoft.com/windowsce/developer/default.htm)}.

{(http://channels.microsoft.com/windowsce/developer/technical/default.htm)}.
(1997-12-20)

windows for workgroups
Windows for Workgroups
[operating system] (WFW, WFWG) A version of {Windows 3.1} which works with a network. Although stand-alone 3.1 can be networked, the installation and configuration is much improved with Windows for Workgroups (3.1). Windows for Workgroups 3.11 was a significant upgrade to WFW 3.1, adding 32-bit file access, fax capability and higher performance.
(1996-07-08)

windows hardware quality labs
Windows Hardware Quality Labs
[body, standard] (WHQL) A {Microsoft} body that produces and supports the {Microsoft} {Hardware Compatibility Test} kit for current Microsoft {operating systems}. Products are tested with the kit to ensure that they meet Microsoft standards for compatibility with {Windows} and to qualify to use the "Designed for Microsoft Windows" logos.
{Home (http://www.microsoft.com/hwdq/hwtest/)}.
(2002-11-13)

windows internet naming service
Windows Internet Naming Service
[networking] (WINS) Software which resolves {NetBIOS} names to {IP addresses}.
[Details?]
(1998-02-14)

windows me
Windows ME
{Windows Millennium Edition}

windows messaging
Windows Messaging
[messaging] {Microsoft}'s {Internet} {electronic mail} application, formerly called {Microsoft Exchange}.
(1998-07-05)

windows messaging
[messaging] An {inter-process communication} facility usually provided by vendors of {graphical user interfaces} for {concurrent} {operating systems}, such as {Microsoft}, The {X Consortium} and {Apple}.
The system software translates hardware {interrupts} from various input devices into messages according to the current input context (e.g. the active {window} of the frontmost {application}). Each message is a short piece of information. A message's format depends on its type, which is usually encoded in its first field. The message is sent to the {client} application using some communication {protocol} (e.g. {shared memory}, internal {socket}, network socket). The client application dispatches the message and performs any actions required. The messages can also be sent by client applications. This provides convenient and flexible inter-process communication.
(1998-07-06)

windows millennium edition
Windows Millennium Edition
[operating system] (Windows ME) An update of {Microsoft} {Windows 98}, released in 2000. ME included updates of packaged software and new software such as {Windows Media Player} 7, {Windows Movie Maker}. It also has an updated {user interface} with new colours and icons, but few major changes. Windows ME was followed by {Windows XP}.
(2003-05-13)

windows nt
Windows NT
[operating system] (Windows New Technology, NT) {Microsoft}'s 32-bit {operating system} developed from what was originally intended to be {OS/2} 3.0 before {Microsoft} and {IBM} ceased joint development of OS/2. NT was designed for high end {workstations} (Windows NT 3.1), servers (Windows NT 3.1 Advanced Server), and corporate networks (NT 4.0 Enterprise Server). The first release was {Windows NT 3.1}.
Unlike {Windows 3.1}, which was a graphical environment that ran on top of {MS-DOS}, Windows NT is a complete operating system. To the user it looks like Windows 3.1, but it has true {multi-threading}, built in networking, security, and {memory protection}.
It is based on a {microkernel}, with 32-bit addressing for up to 4Gb of {RAM}, virtualised hardware access to fully protect applications, installable file systems, such as {FAT}, {HPFS} and {NTFS}, built-in networking, {multi-processor} support, and {C2 security}.
NT is also designed to be hardware independent. Once the machine specific part - the {Hardware Abstraction Layer} (HAL) - has been ported to a particular machine, the rest of the operating system should theorertically compile without alteration. A version of NT for {DEC}'s {Alpha} machines was planned (September 1993).
NT needs a fast {386} or equivalent, at least 12MB of {RAM} (preferably 16MB) and at least 75MB of free disk space.
NT 4.0 was followed by {Windows 2000}.
{Usenet} newsgroups: {news:comp.os.ms-windows.nt.setup}, {news:comp.os.ms-windows.nt.misc}.
(2002-06-10)

windows nt 31
Windows NT 3.1
[operating system] {Microsoft}'s first version of {Windows NT}, released in September 1993, price UKP 395, after having been in {beta-test} for as long as anyone could remember.
The person responsible for {VMS} on the {DEC VAX} [who?] was also responsible for Windows NT. Incrementing each letter in VMS yields WNT.
{(http://www.win2000mag.com/Articles/Index.cfm?ArticleID=4494)}.
(2000-08-12)

windows nt 35
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
Windows NT 4
[operating system] A version of {Microsoft}'s {Windows NT} {operating system}, originally code named "Cairo". It was supposed to ship in the first half of 1995. Details are scarce, but it is intended to provide an {object-oriented} version of Windows.
(1996-07-09)

windows nt 5
Windows NT 5
{Windows 2000}

windows nt network model
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 open service architecture
Windows Open Service Architecture
[architecture, library, microsoft] (WOSA) One of the mainstays of {Microsoft Windows}: the ethos of {abstraction} of core {services}.
For each extension, Windows {Open} Services {Architecture} defines an {API} and an {SPI}, as well as a universal interface (usually placed in a single {DLL}) that both comply to.
These then {transparent}ly let the {operating system} speak to {device drivers}, {database managers}, and other {low level} entities.
These extensions include, among others, {ODBC} (called the "crowning jewel of WOSA"), {TAPI}, {WOSA/XFS}, {SAPI} and {MAPI}, and their supporting services, as well as the abstraction of access to {printers}, {modems}, and {networking services}, which run identically over {TCP/IP}, {IPX/SPX}, and {NetBEUI}.
(2000-08-16)

windows sockets
Windows sockets
[networking, standard] (Winsock) A specification for {Microsoft Windows} network software, describing how applications can access network services, especially {TCP/IP}. Winsock is intended to provide a single {API} to which application developers should program and to which multiple network software vendors should conform. For any particular version of {Microsoft Windows}, it defines a binary interface ({ABI}) such that an application written to the Windows Sockets API can work with a conformant {protocol} implementation from any network software vendor.
Winsock was conceived at Fall Interop '91 during a {Birds of a Feather} session.
Windows Sockets is supported by {Microsoft Windows}, {Windows for Workgroups}, {Win32s}, {Windows 95} and {Windows NT}. It will support protocols other than {TCP/IP}. Under {Windows NT}, {Microsoft} will provide Windows Sockets support over {TCP/IP} and {IPX}/{SPX}. {DEC} will be implementing {DECNet}. {Windows NT} will include mechanisms for multiple {protocol} support in Windows Sockets, both 32-bit and 16 bit.
Mark Towfiq said, "The next rev. of Winsock will not be until toward the end of 1993. We need 1.1 of the {API} to become firmly settled and implemented first."
{Windows Sockets API (ftp://sunsite.unc.edu/pub/micro/pc-stuff/ms-windows/winsock)}. or {(ftp://microdyne.com/pub/winsock)} or send a message "help" to either [ftpmail@SunSite.UNC.Edu] or [ftpmail@DECWRL.DEC.Com].
{Windows Sockets specification (ftp://rhino.microsoft.com)}.
Currently NetManage (NEWT), Distinct, FTP and Frontier are shipping Winsock {TCP/IP} stacks, as is {Microsoft} (Windows NT and {TCP/IP} for WFW), Beame & Whiteside Software (v1.1 compliant), and Sun PC-NFS. Windows 95 has "dial-up networking" which supports Winsock and TCP/IP.
winsock.dll is available from some {TCP/IP} stack vendors. {Novell} has one in beta for their {Lan Workplace} for {DOS}.
Peter Tattam [peter@psychnet.psychol.utas.edu.au] is alpha-testing a shareware Windows Sockets compliant {TCP/IP} stack {(ftp://ftp.utas.edu.au/pc/trumpet/winsock/winsock.zip)}. and {(ftp://ftp.utas.edu.au/pc/trumpet/winsock/winpkt.com)}.
{The Consummate Winsock App List (http://wwwvms.utexas.edu/~Neuroses/cwsapps.html)}.
[Adapted from: Aboba, Bernard D., comp.protocols.tcp-ip.ibmpc Frequently Asked Questions, 1993 {Usenet}: {news:news.answers}, {(ftp://netcom1.netcom.com/pub/mailcom/IBMTCP/)}].
[Current status?]
(1996-06-20)

windows xp
Windows XP
[operating system] {Microsoft}'s version of the {Windows} {operating system} that finally, in 2001[?], merged the Windows 95} - {Windows ME} strain with the {Windows NT} - {Windows 2000} one.
{Windows XP Home (http://www.microsoft.com/windowsxp/)}.
[Summary?]
(2002-06-10)

windows286
Windows/286
{Windows 2}

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

windoze
Windoze
{Microsloth Windows}

winged comments
[programming] {Comments} set on the same line as code, as opposed to {boxed comments}.
In {C}, for example:
d = sqrt(x*x + y*y); /* distance from origin */
Generally these refer only to the action(s) taken on that line.
[{Jargon File}]
(1997-07-21)

winkey
[chat] winkey face.
See {emoticon}.
[{Jargon File}]
(1996-09-08)

winmaker pro
WinMaker Pro
{RoboDemo}

wins
WINS
{Windows Internet Naming Service}

winsock
Winsock
{Windows sockets}

winsoft products ltd
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
WINZIP
[tool] A {Microsoft Windows} {archiving} and {compression} program, distributed by Nico Mak Computing, Inc. WINZIP has a {graphical user interface} {front end} and is compatible with {PKZIP}. WINZIP can be obtained as {shareware}, on evaluation, or as a licenced copy. It is much easier to use then PKZIP for DOS, and includes a helpful, help file.
{Home (http://www.winzip.com/)}.
(2000-02-27)

wired
{hard-wired}

wirehead
[jargon] /wi:r'hed/ (Probably from SF slang for an electrical brain-stimulation addict) 1. A hardware hacker, especially one who concentrates on communications hardware.
2. An expert in {local-area 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.
[{Jargon File}]
(1995-02-28)

wireless
[networking] A term describing a computer {network} where there is no physical connection (either copper cable or {fibre optics}) between sender and receiver, but instead they are connected by radio.
Applications for wireless networks include multi-party {teleconferencing}, distributed work sessions, {personal digital 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
Wireless Application Protocol
[protocol, standard] (WAP) An open international {standard} for applications that use {wireless} communication, e.g. {Internet} access from a mobile phone.
The official body developing WAP is the {WAP Forum}.
{Home (http://www.wapforum.org/)}.
{Technical data (http://www.wapforum.org/what/technical.htm)}.
[More detailed summary?]
(2000-02-10)

wireless bitmap
[graphics, file format] (WBMP) A {bitmap} for display on a {WAP} mobile phone.
Currently (2001) the only type of WBMP file defined is a simple black-and-white {image} file with one {bit} per {pixel} and no {compression}.
[{WAP Forum (http://www.wapforum.org/)}, "WAP-190-WAE-Spec" or "Wireless Application Protocol, Wireless Application Environment Specification"].
(2001-05-23)

wireless local area network
[networking] (WLAN /W-lan/, or "LAWN" /lorn/, sometimes "WiLAN" /wi-lan/) A communication system that transmits and receives data using modulated electromagnetic waves, implemented as an extension to, or as an alternative for, a {wired} {LAN}. WLANs are typically found within a small {client} {node}-dense locale (e.g. a campus or office building), or anywhere a traditional network cannot be deployed for logistical reasons.
Benefits include user mobility in the coverage area, speed and simplicity of physical setup, and {scalability}. Being a military spin-off, WLANs also provide security features such as {encryption}, {frequency hopping}, and {firewalls}. Some of these are intrinsic to the {protocol}, making WLANs at least as secure as wired networks, and usually more so. The drawbacks are high initial cost (mostly {hardware}), limited range, possibility of mutual interference, amd the need to security-enable clients.
The established protocols are covered by {IEEE 802.11 (http://standards.ieee.org/getieee802/)}. Recent developments include the {Bluetooth} project and other WPAN, or {Personal Area Network} initiatives, accessible through {IEEE 802.15 working group (http://grouper.ieee.org/groups/802/15/)}.
{Wireless Lan Association (http://www.wlana.org/)}.
{Usenet} newsgroups: {news:comp.dcom.lans.misc}, {news:comp.std.wireless}.
(2003-09-23)

wireless transport layer security
Wireless Transport Layer Security
[standard, security] (WTLS) The {WAP} {standard} related to security. WTLS is based upon its {TCP/IP} counterpart, {Secure Sockets Layer}.
[Reference?]
(2003-06-17)

wirewater
[jargon] {programming fluid}. This melds the mainstream slang adjective "wired" (stimulated, up, hyperactive) with "firewater"; however, it refers to caffeinacious rather than alcoholic beverages.
[{Jargon File}]
(1995-02-27)

wish list
[jargon] A list of desired {features} or {bug fixes} that probably won't get done for a long time, usually because the person responsible for the code is too busy or can't think of a clean way to do it. "OK, I'll add automatic filename completion to the wish list for the new interface."
Compare {tick-list features}.
[Does anybody call this a "want list"?]
[{Jargon File}]
(1998-04-28)

wisp
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}.
[{Jargon File}]

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 forward and backward through, filling in the details required. The implication is that the expertise of a human wizard in one of the above senses is encapsulated in the software wizard, allowing the average user to perform expertly.
[{Jargon File}]
(1998-09-07)

wizard book
Wizard Book
[publication] {Hal Abelson}, {Gerald Sussman} and Julie Sussman's "Structure and Interpretation of Computer Programs" (MIT Press, 1984; ISBN 0-262-01077-1), an excellent computer science text used in introductory courses at MIT. So called because of the wizard on the jacket. One of the {bibles} of the LISP/Scheme world. Also, less commonly, known as the {Purple Book}.
[{Jargon File}]
(1995-01-10)

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.

wizardly
Pertaining to wizards. A wizardly {feature} is one that only a wizard could understand or use properly.
[{Jargon File}]

wizdom
WizDOM
Software for distributed {Unix} {system management} from {TIVOLI Systems} of Austin, Texas, USA.
(1995-02-10)

wk1
[filename extension] (worksheet) The {filename extension} used by early versions of the {Lotus 1-2-3} {spreadsheet} program including release 2.01 (1987). All files created by the user are given this extension.
(1995-11-28)

wlan
WLAN
{wireless local area network}

wma
WMA
{Windows Media Audio}

wmf
[filename extension] The {filename extension} for a {Windows Metafile}.
(1995-04-25)

wmv
WMV
{Windows Media Video}

wnpp
WNPP
{Work Needed and Prospective Packages}

wolfram research inc
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
WOM
{write-only memory}

woman
[tool] A replacement for the {Unix} {man} {documentation} browsing command. Version 1.157 of woman runs under/on {386BSD}, {OSF}, {Apollo} {Domain/OS}, {BSD}, {HP-UX}, {IBM} {RS-6000}, {Irix}, {Linux}, {Solaris}, {Sony} {NEWS}, {SunOS}, {Ultrix}, {Unicos}.
Posted to comp.sources.reviewed Volume 3, Issue 50 on 05 Jul 1993 by Arne Henrik Juul [arnej@pvv.unit.no], archive-name woman-1.157.
{FTP USC, USA
(ftp://usc.edu/archive/usenet/sources/comp.sources.reviewed/volume3/woman-1.157/)}. {FTP Imperial, UK
(ftp://src.doc.ic.ac.uk/usenet/comp.sources.reviewed/volume3/woman-1.157/)}.
(1995-03-21)

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.
[{Jargon File}]

wombat
WOMBAT
Waste Of Money, Brains, And Time.
Problems which are both profoundly {uninteresting} in themselves and unlikely to benefit anyone interesting even if solved. Often used in fanciful constructions such as "wrestling with a wombat".
See also {crawling horror}, {SMOP}.
[{Jargon File}]
(1995-03-10)

wombat
1. [programming] A {metasyntactic variable} in {Commonwealth Hackish}.
2. [computer] {wombat.doc.ic.ac.uk}.
[{Jargon File}]
(1995-03-10)

wombatdocicacuk
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 (a {Linux} box}) in June 1999. Alias www.foldoc.org added 2000-07-18, courtesy of Karl O. Pinc.
(2000-10-09)

woodenman
Woodenman
HOLWG, DoD, 1975. Second of the series of DoD requirements that led to Ada. "Woodenman Set of Criteria and Needed Characteristics for a Common DoD High Order Programming Language", David A. Fisher, Inst for Def Anal Working Paper, Aug 1975. (See Strawman, Tinman, Ironman, Steelman).

woofer
[jargon] (University of Waterloo) Some varieties of wide paper for printers have a perforation 8.5 inches from the left margin that allows the 3.5 inch excess on the right-hand side to be torn off when the print format is 80 columns or less wide. If done with sufficient aplomb this makes a sound like the "woof" of a dog. If the large part is the "woofer" then the small part must obviously be the "tweeter", following the names for the large and small cones in a hi-fi loudspeaker.
These terms have been in use at Waterloo since 1972, but are unknown elsewhere.
Compare {chad}.
[{Jargon File}]
(1997-03-21)

wool
WOOL
Window Object Oriented Language. A small {Common Lisp}-like extension language. It claims to be the fastest interpreted language in {C} with {run-time types}. Colas Nahaboo [colas@sophia.inria.fr]. Version 1 is used as the kernel language of the {GWM} window manager. Version 2 has an object system.
{(ftp://export.lcs.mit.edu/contrib/gwm)}.

worcester polytechnic institute
Worcester Polytechnic Institute
(WPI) A well-regarded, small engineering college.
Address: Worcester, MA, USA.
(1995-03-01)

word
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
Word for Windows
[text, tool, product] The version of {Microsoft Word} which runs under {Microsoft Windows}.
Version 6.0.
(1995-04-14)

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)

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)

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

wordtech
WordTech
[company] Manufacturers of {Quicksilver}.
Address: Orinda, CA, USA.
(1995-05-11)

work breakdown structure
Work Breakdown Structure
[project] (WBS) A division of a project into tasks and subtasks. The tasks are numbered to indicate their relationship to each other. WBSs are indespensible for project planning, particularly when estimating time and resource requirements. Some industries use established work breakdown structure systems for billing and reporting purposes.
(2001-05-09)

work needed and prospective packages
Work Needed and Prospective Packages
[Debian] (WNPP) A document, maintained on the {Debian} {web site} {here (http://www.debian.org/devel/wnpp/)}, providing a current list of packages which are either orphaned (withdrawn from distribution), maintained but its developer would like to find a new person, currently being worked on to include in the distribution, or good ideas with no one working on them.
WNPP is also a pseudo package on the Debian Bug Tracking System. Developers update the WNPP document by filing, modifying or closing bugs agains the psuedo package.
(2000-09-06)

workaround
[jargon, programming] A temporary {kluge} used to bypass, mask or otherwise avoid a {bug} or {misfeature} in some system. Customers often find themselves living with workarounds for long periods of time rather than getting a {bug fix}.
[{Jargon File}]
(1998-06-25)

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
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}.
[{Jargon File}]
(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 time
World Time
{Coordinated Universal Time}

world wide web consortium
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)

worldwide wait
World-Wide Wait
[humour] A pejorative expansion of {WWW} reflecting on the slowness of some network connections and sites.
(1997-03-30)

worldwide web
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/NetworkStartingPoints.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)

worldwide web browser
World-Wide Web browser
[World-Wide Web] A {browser} for the {World-Wide Web}.
(1996-11-22)

worldwide web worm
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
[networking, security] (From "Tapeworm" in John Brunner's novel "The Shockwave Rider", via {XEROX PARC}) A program that propagates itself over a network, reproducing itself as it goes. Compare {virus}. Nowadays the term has negative connotations, as it is assumed that only {crackers} write worms.
Perhaps the best-known example was the {Great Worm}.
Compare {Trojan horse}.
[{Jargon File}]
(1996-09-17)

worm
WORM
{Write-Once Read-Many}

wormhole
{back door}

wormhole routing
[messaging] A property of a {message passing} system in which each part of a message is transmitted independently and one part can be forwarded to the next {node} before the whole message has been received. All parts of a single message follow the same route.
The independent parts are normally small, e.g. one 32-bit word. This reduces the {latency} and the storage requirements on each node when compared with {message switching} where a node receives the whole message before it starts to forward it to the next node. It is more complex than message switching because each node must keep track of the messages currently flowing through it.
With {cut-through switching}, wormhole routing is applied to {packets} in a {packet switching} system so that forwarding of a packet starts as soon as its destination is known, before the whole packet had arrived.
(2003-05-15)

wosa
WOSA
{Windows Open Services Architecture}

wound around the axle
{infinite loop}

wpg
WPG
{Workstation Products Group}

wpi
WPI
{Worcester Polytechnic Institute}

wpl
WPL+
Word-oriented language internal to PRODOS Applewriter 2.1. Available on GEnie.

wpop
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
WRAM
{Window Random Access Memory}

wrap around
(Or "wraparound", "wrap") The action of a counter that starts again at zero or at "minus infinity" (see {infinity}) after its maximum value has been reached, and continues incrementing, either because it is programmed to do so or because of an overflow (as when a car's odometer starts again at 0).
[{Jargon File}]

wrapper
[programming] Code which is combined with another piece of {code} to determine how that code is executed. The wrapper acts as an interface between its caller and the wrapped code. This may be done for compatibility, e.g. if the wrapped code is in a different programming language or uses different calling conventions, or for security, e.g. to prevent the calling program from executing certain functions. The implication is that the wrapped code can only be accessed via the wrapper.
(1998-12-15)

wrats nest
[hardware, jargon] (From "wrap" and "rats nest") A {wire-wrapping} defect where all of the wire piles up around the bottom of the post instead of wrapping smoothly around it. It looks like a little bird nest.
(1997-03-18)

wrb
{Web Request Broker}

write
1. [chat] {Unix}'s simple {talk} command and {protocol}. write has been largely superseded by {talk} and then {irc}.
An enhancement, {RWP}, has been proposed.
2. [tool] A simple {text editor} for {Windows}.
(1998-04-28)

write buffer
{buffered write-through}

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

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

writeonce readmany
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)

writeonly code
write-only code
[a play on "read-only memory"] Code so arcane, complex, or ill-structured that it cannot be modified or even comprehended by anyone but its author, and possibly not even by him/her. A {Bad Thing}.
[{Jargon File}]

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

writeonly memory
write-only memory
1. [jargon, humour] (WOM) The obvious antonym to "{read-only memory}" (ROM).
Out of frustration with the long and seemingly useless chain of approvals required of component specifications, during which no actual checking seemed to occur, an engineer at Signetics once created a specification for a write-only memory and included it with a bunch of other specifications to be approved. This inclusion came to the attention of Signetics {management} only when regular customers started calling and asking for pricing information. Signetics published a corrected edition of the data book and requested the return of the "erroneous" ones. Later, around 1974, Signetics bought a double-page spread in "Electronics" magazine's April issue and used the spec as an April Fools' Day joke. Instead of the more conventional characteristic curves, the 25120 "fully encoded, 9046 x N, Random Access, write-only-memory" data sheet included diagrams of "bit capacity vs. Temp.", "Iff vs. Vff", "Number of pins remaining vs. number of socket insertions", and "AQL vs. selling price". The 25120 required a 6.3 VAC VFF supply, a +10V VCC, and VDD of 0V, +/- 2%.
2. {bit bucket}.
[{Jargon File}]

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

writethru
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
Wrong Thing
[jargon] A design, action, or decision that is clearly incorrect or inappropriate. Often capitalised; always emphasised in speech as if capitalised. The opposite of the {Right Thing}; more generally, anything that is not the Right Thing. In cases where "the good is the enemy of the best", the merely good - although good - is nevertheless the Wrong Thing. "In C, the default is for module-level declarations to be visible everywhere, rather than just within the module. This is clearly the Wrong Thing."
[{Jargon File}]

wrt
WRT
with regard to, with respect to.

ws
[networking] The {country code} for Samoa.
(1999-01-27)

wsfn
WSFN
{Which Stands For Nothing}

wsl
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
WTF
who/what/why the fuck? The universal interrogative particle. Also {WTH}.

wth
WTH
who/what/why the hell? Also {WTF}.

wtls
WTLS
{Wireless Transport Layer Security}

wumpus
Wumpus
{Hunt the Wumpus}

www
WWW
{World-Wide Web}

www browser
WWW browser
[hypertext, World-Wide Web] A {browser} for use on the {World-Wide Web}.
(1996-10-28)

wwww
WWWW
{World-Wide Web Worm}

wygiwyntyh
WYGIWYNTYH
{What You Get Is What You Never Thought You Had}

wysiayg
WYSIAYG
{What You See Is All You Get}

wysiwyg
WYSIWYG
{What You See Is What You Get}

x
X
1. [convention] Used in various speech and writing contexts (also in lowercase) in roughly its algebraic sense of "unknown within a set defined by context" (compare {N}). Thus, the abbreviation {680x0} stands for 68000, 68010, 68020, 68030 or 68040, and {80x86} stands for {Intel 80186}, {Intel 80286}, {Intel 80386} or {Intel 80486}. A {Unix} hacker might write these as 680[0-4]0 and 80[1-4]86 or 680?0 and 80?86 respectively; see {glob}.
2. [graphics] An alternative name for the {X Window System}.
3. [storage] A suffix for the speed of a {CD-ROM} drive relative to standard music CDs (1x). 32x is common in September 1999.
[{Jargon File}]
(1999-09-15)

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

x image extension
X Image Extension
(XIE) Extensions to the {X protocol} to handle {image}s.
(1995-02-03)

x protocol
X protocol
[networking, protocol] A {standard} {protocol} used by {clients} (applications) and {servers} in the {X Window System} for exchanging requests for window operations.
(1995-04-28)

x server
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)

x terminal
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)

x window system
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)

x1
X-1
[language] An early system on the {UNIVAC I} or II.
[Listed in CACM 2(5):16 (May 1959)].
(1995-05-10)

x11r4
X11R4
Version 11 release 4 of the X protocol. See {X Window System}.

x11r5
X11R5
Version 11 release 5 of the X protocol. Released in June 1994. See {X Window System}.

x11r6
X11R6
[operating system] Version 11 release 6 of the {X Window System}.
[Release date?]
(1995-01-20)

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

x208
X.208
{Abstract Syntax Notation 1}

x209
X.209
{Basic Encoding Rules}

x21
X.21
[communications, standard] A digital signaling interface recommended by {ITU-T} that includes specifications for {DTE}/{DCE} physical interface elements, alignment of {call control} characters and error checking, elements of the call control phase for {circuit switched} services, data transfer at up to 2 {Mbps}, and {test loops}. 64 {kbps} is the most commonly used transfer rate.
(2000-02-28)

x214
X.214
{transport layer}

x215
X.215
{session layer}

x216
X.216
{presentation layer}

x217
X.217
{Association Control Service Element}

x219
X.219
{Remote Operations Service Element}

x224
X.224
{transport layer}

x225
X.225
{session layer}

x226
X.226
{presentation layer}

x227
X.227
{Association Control Service Element}

x229
X.229
{Remote Operations Service Element}

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

x28
X.28
The {ITU-T} standard specifying how to control a {PAD} from {character-mode} {DTE}, approved by {ISO}.
(1995-01-31)

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

x3
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
X3J16
The {C++} {standard} technical committee.

x3t10
X3T10
[body] The {ATA} standards body.
(1996-10-16)

x400
X.400
[messaging] The set of {ITU-T} communications standards covering {electronic mail} services provided by data networks. X.400 was widely used in Europe and Canada.
X.400 addresses tend to be much longer than {RFC 822} ones. They consist of a set of bindings for country (c), {administrative domain} (a), {primary management domain} (p), surname (s), given name (g).
For example, the X.400 address,
c=gb;a=attmail;p=Universal Export;s=Bond;g=James;
might be equivalent to RFC 822
James.Bond@UniversalExport.co.uk
[Reference?]
(2003-06-24)

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

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

x680
X.680
[standard]
[Is it {Coordinated Universal Time} or {Abstract Syntax Notation 1}?]
(1999-12-09)

x75
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
XA
{Extended Architecture}
A specification for drives which can play {CD-ROM}s in {Green book CD-ROM} format.
(1994-12-06)

xaw
Xaw
The {Athena} {Widget} Set. A set of widgets distributed with the {X Window System}.
(1994-11-02)

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

xcoral
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
[programming, tool] An {X Window System} front end for {dbx} developed by Po Cheung at MCC.
Latest version: 2.1, as of 1992-02-22.
Posted to comp.sources.x volumes 11, 12, 13, 14, 16.
(2000-07-12)

xdesigner
X-Designer
[programming, tool] A {user interface builder} for {Motif} from {Imperial Software Technology}.
{Home (http://www.ist.co.uk/xd/)}.
(1995-10-26)

xdesktop
X.desktop
A desktop manager for {Unix} from {IXI}.

xdl
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
XDR
{eXternal Data Representation}

xds 940
XDS 940
{Xerox Data Systems Model 940}

xdsl
xDSL
{Digital Subscriber Line}

xemacs
Xemacs
[text, tool] (Originally "Lucid Emacs") A text editor for the {X Window System}, based on {GNU} {Emacs} version 19, produced by a collaboration of {Lucid, Inc.}, {SunPro} (a division of {Sun Microsystems, Inc.}), and the {University of Illinois}.
Lucid chose to build part of {Energize}, their {C}/{C++} development environment on top of GNU Emacs. Though their product is commercial, the work on GNU Emacs is {free software}, and is useful without having to purchase the product. They needed a version of Emacs with mouse-sensitive regions, multiple fonts, the ability to mark sections of a buffer as read-only, the ability to detect which parts of a buffer has been modified, and many other features.
The existing version of {Epoch} was not sufficient; it did not allow arbitrary {pixmaps} and {icons} in buffers, "undo" did not restore changes to regions, regions did not overlap and merge their attributes. Lucid spent some time in 1990 working on Epoch but later decided that their efforts would be better spent improving Emacs 19 instead.
Lucid did not have time to get their changes accepted by the {FSF} so they released Lucid Emacs as a forked branch of Emacs. Roughly a year after Lucid Emacs 19.0 was released, a beta version of the FSF branch of Emacs 19 was released. Lucid continued to develop and support Lucid Emacs, merging in bug fixes and new features from the FSF branch as appropriate.
A compatibility package was planned to allow Epoch 4 code to run in Lemacs with little or no change. (As of 19.8, Lucid Emacs ran a descendant of the Epoch redisplay engine.)
[Update?]
(2000-05-16)

xenix
XENIX
[operating system] A commercial version of {Unix} for {microprocessor}-based computers, released by {Microsoft} in 1980. In 1992, {SCO} became Microsoft's co-development partner and the alternate source for the product.
(1999-12-07)

xeon
Xeon
{Pentium II Xeon}

xerox corporation
XEROX Corporation
[company]
{Home (http://www.xerox.com/)}.
See also {XEROX PARC}, {XEROX Network Services}.
[Summary?]
(2001-03-03)

xerox data systems model 940
Xerox Data Systems Model 940
[computer] (SDS 940, XDS 940) A {time-sharing} system, announced in February 1966, developed by {Scientific Data Systems} with help from The {University of California at Berkeley} and {Tymshare}. SDS 940 was {backward compatible} with SDS's previous systems (except the 12-bit {SDS 92}). It had {monitor} and user modes, dynamic program relocation, automatic memory fragmentation, and system protection.
After 1968 {Xerox} bought out SDS and renamed the SDS machines "Xerox Data Systems" (XDS) but never actually built any.
(2002-09-08)

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
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 {suits} has been well described in the reference below.
["Fumbling The Future: How XEROX Invented, Then Ignored, the First Personal Computer" by Douglas K. Smith and Robert C. Alexander (William Morrow & Co., 1988, ISBN 0-688-09511-9)].
[{Jargon File}]
(1995-01-26)

xerox star
Xerox Star
{Xerox 8010}

xfree86 project inc
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
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
XGA
{eXtended Graphics Array}

xga2
XGA-2
{eXtended Graphics Array}

xhtml
XHTML
[hypertext, standard, World-Wide Web] A reformulation of {HTML} 4.01 in {XML}. Being XML means that XHTML can be viewed, edited, and validated with standard XML tools. At the same time, it operates as well as or better than HTML 4 in existing HTML 4 conforming user agents.
{Home (http://www.w3.org/TR/xhtml1/)}.
Latest version: 1.0, as of 2000-09-10.
(2000-09-10)

xi
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
XIE
{X Image Extension}

xilinx inc
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
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)

xlib
Xlib
X library: program interface to the {X Window System}.

xlisp
{eXperimental LISP}

xls
[filename extension] {Excel} {spreadsheet}.
(1995-10-17)

xml
XML
{Extensible Markup Language}

xml template pages
XML Template Pages
[World-Wide Web] (XTP) {JSP} transformed by {XSL} stylesheets. An XTP page is basically a JSP page which specifies an XSL stylesheet. The XSL specifies how selected tags in the XTP page should be rewritten. All other tags are passed through unchanged and so treated as standard JSP. JSP programmers can use XTP used as an easy introduction to XSL, incrementally applying styles to their pages.
{Caucho (http://www.caucho.com/resin/ref/xtp.xtp)}.
(2003-07-13)

xml userinterface language
XML User-Interface Language
[language] (XUL) An {XML}-based language created for the {Mozilla} {browser} for development of {cross-platform} {user interfaces}. XUL supports input {controls} such as {textboxes} and {checkboxes}, {toolbars}, {menus}, {dialogs}, {trees}, {keyboard shortcuts}, and more.
{XULPlanet (http://www.xulplanet.com/)}.
(2003-06-14)

xmm
XMM
{Extended Memory Manager}

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

xmodem1k
XMODEM-1K
A version of {XMODEM} using 1 kilobyte {packet}s.

xmosaic
{Mosaic} for the {X Window System}.

xms
XMS
[storage] {Extended Memory Specification}.
(1996-01-10)

xnf
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
XNS
{Xerox Network Services} or Xerox Network System.
[Which?]

xoff
XOFF
{control-S}

xon
XON
{control-Q}

xonxoff
XON/XOFF
{software handshaking}

xopen
Xopen
{X/Open}

xopen
X/Open
[body] An international consortium of vendors who are defining the X/Open {Common Applications Environment} to provide applications portability. They also procuced the {X/open Portability Guide} (XPG).
(1994-12-01)

xopen portability guide
X/open Portability Guide
(XPG) A document which defines the interfaces of the {X/Open} {Common Applications Environment}.
Version: XPG3.
(1994-12-01)

xopen system interface
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
[{Jargon File}]
(1994-12-01)

xpc
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
XperCASE
A structure diagram editor for developing, re-engineering, maintaining and documenting programs, developed by {Siemens} AG, Austria. It runs under {Microsoft Windows}.

{(ftp://src.doc.ic.ac.uk/computing/systems/ibmpc/simtel/windows3/xperspx1.zip)}.
E-Mail: [100141.2120@compuserve.com].
(1994-12-01)

xpg
XPG
{X/open Portability Guide}

xpg3
XPG3
Version 3 of the {X/open Portability Guide}.

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

xpress transport protocol
Xpress Transport Protocol
[networking, protocol] (XTP) A {transport layer} {protocol} for high-speed networks promoted by the {XTP Forum}. XTP provides protocol options for error control, {flow control}, and rate control. Instead of separate protocols for each type of communication, XTP controls {packet} exchange patterns to produce different models, e.g. reliable {datagrams}, {transactions}, unreliable {streams}, and reliable {multicast} connections.
{XTP Home (http://www.ca.sandia.gov/xtp/)}.
Contrast with {Transmission Control Protocol}. XTP does not employ {congestion} avoidance {algorithms}.
(2003-03-22)

xref
/X'ref/ 1. cross-reference.
2. A cross-reference generator tool by Jim Leinweber.
(1985?)
[{Jargon File}]

xremote
XRemote
A {serial line} protocol for the {X Window System}.

xrn
XRN
A newsreader program for {Usenet} news running under the {X Window System}.

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

xscm
x-scm
[language] An accessory for the {scm} {Scheme} {interpreter}, by Larry Campbell, that provides an environment for building {Motif} and {OpenLook} {application programs}. There is some support as well for raw {Xlib} applications, but not enough yet to be useful.
Posted to {alt.sources}.
(1992-08-10)

xsi
XSI
{X/Open System Interface}

xsl
XSL
{Extensible Stylesheet Language}

xslt
XSLT
{Extensible Stylesheet Language Transformations}

xt
XT
{IBM PC XT}

xt
Xt
The {intrinsics} of the {X Window System} Toolkit.
[What does that mean?]

xt bus architecture
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)

xti
XTI
{X/open Transport Interface}

xtp
XTP
{Xpress Transport Protocol}
{XML template pages}

xtp forum
XTP Forum
[body] A consortium of for- and non-profit companies and research organisations promoting {Xpress Transport Protocol}.
{XTP Forum Home (http://www.ca.sandia.gov/xtp/forum.html)}.
(2003-03-22)

xtran
XTRAN
{Fortran}-like, interactive language.

xui
XUI
X User Interface: program interface to the {X Window System} supported by {DEC}.

xul
XUL
{XML User-Interface Language}

xv
Xv++
A library of classes from Interface Engineering, Stevenage, providing a C++ Application Programmer's Interface to the XView toolkit.

xvga
XVGA
{eXtended Video Graphics Array}

xview
XView
A toolkit from Sun, derived from SunView, providing an Open Look user interface for X applications.

xvt
XVT
eXtensible Virtual Toolkit: a product allowing applications to be developed independent of GUI.

xwindows
X-Windows
[spelling] A common misnomer for the {X Window System}.
(1997-06-10)

xwip
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
XXX
/X-X-X/ A marker that attention is needed. Commonly used in program comments to indicate areas that are {kluge}d or need to be. Some hackers liken "XXX" to the notional heavy-porn movie rating. Compare {FIXME}.
[{Jargon File}]

xypic
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}.
[{Jargon File}]

y
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
Y2K
{Year 2000}

ya
YA-
{Yet Another}

yaa
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
YABA
/ya'b*/ [Cambridge] Yet Another Bloody Acronym. Whenever some program is being named, someone invariably suggests that it be given a name that is acronymic. The response from those with a trace of originality is to remark ironically that the proposed name would then be "YABA-compatible". Also used in response to questions like "What is {WYSIWYG}?" See also {YA-}, {TLA}.
[{Jargon File}]

yacc
{Yet Another Compiler Compiler}

yade
YADE
{Yet Another DSSSL Engine}

yafiygi
YAFIYGI
[abuse] /yaf'ee-y*-gee/ You asked for it, you got it.
The command-oriented {ed}/{vi}/{nroff}/{TeX} style of {word processing} or other user interfaces which are not {WYSIWYG}. What you actually asked for is often not immediately apparent.
This precise sense of "You asked for it, you got it" seems to have first appeared in Ed Post's classic parody "{Real Programmers} don't use Pascal"; the acronym is a more recent (as of 1993) invention.
[{Jargon File}]
(1995-03-13)

yahoo
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
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
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
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
YASOS
Yet Another Scheme Object System. E-mail: Ken Dickey [kend@newton.apple.com]

yaun
YAUN
/yawn/ Yet Another Unix Nerd.
Reported from the San Diego Computer Society (predominantly a {microcomputer} users' group) as a good-natured punning insult aimed at {Unix} zealots.
[{Jargon File}]
(1994-11-11)

yay
Yay
{Yet Another Yacc}

ye
[networking] The {country code} for Yemen.
(1999-01-27)

year 2000
Year 2000
[programming] (Y2K, or "millennium bug") A common name for all the difficulties the turn of the century, or dates in general, bring to computer users.
Back in the 1970s and 1980s, the turn of the century looked so remote and memory/disk was so expensive that most programs stored only the last two digits of the year. These produce surprising results when dealing with dates after 1999. They may believe that 1 January 2000 is before 31 December 1999 (00[99), they may miscalculate the day of week, etc. Some programs used the year 99 as a special marker; there are rumours that some car insurance policies were cancelled because a year of 99 was used to mark deleted records.
Complete testing of date-dependent code is virtually impossible, especially where the system under test relies on other systems such as customers' or suppliers' computers. Despite this, the predicted "millennium meltdown" never occurred. Various fixes and work-arounds were successfully applied, e.g. {time shifting}.
And yes, the year 2000 was a leap year (multiples of 100 aren't leap years unless they're also multiples of 400).
{PPR Corp Y2K FAQ (http://www.pprcorp.com/y2k/y2kfaq_j97.html)}.
(2003-08-15)

yellow
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
Yellow Book
1. [publication] {Yellow Book, Jargon}.
2. {Yellow Book CD-ROM}.
[{Jargon File}]
(1996-12-03)

yellow book cdrom
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
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
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
Yellow Pages
{Network Information Service}

yellow wire
(IBM) Repair wires used when connectors (especially ribbon connectors) got broken due to some schlemiel pinching them, or to reconnect cut traces after the field engineer mistakenly cut one. Compare {blue wire}, {purple wire}, {red wire}.
[{Jargon File}]

yerk
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
Yet Another
[jargon] (YA-, after {Unix}'s {yacc} - Yet Another Compiler-Compiler) A humorous allusion often used in titles to acknowledge that the topic is not original, though the content is. As in "Yet Another AI Group" or "Yet Another {Simulated Annealing} {Algorithm}". If used of others' work, it describes something of which there are already far too many.
In hackish acronyms the "YA" prefix almost invariably expands to {Yet Another}, e.g. {YABA}, {YAUN}.
[{Jargon File}]
(1996-11-26)

yet another compiler compiler
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, +1 (508) 435-5016.
MLYACC - Implementation and output in {SML/NJ}. {(ftp:research.att.com/dist/ml/75.tools.tar.Z)}.
A version, by David Poole at Montana University has been retargeted to {Turbo Pascal}.
{(ftp://iecc.com/pub/file/lyprg.zip)}.
See also {Bison}, {yet another}, {Yet Another Yacc}.
{Unix manual page}: yacc(1).
["YACC - Yet Another Compiler Compiler", S.C. Johnson, CS TR 32, Bell Labs (Jul 1975)].
[Was there ever an "ACC" - "Another Compiler Compiler"? If so, what was the first compiler compiler called?]
(2000-11-15)

yet another yacc
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
YGMTPO
[chat] ({Usenet}) "You Greatly Misunderstood The Purpose Of".
(1998-03-03)

ylisp
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
YMMV
{Your mileage may vary}

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

ymodemg
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
You are not expected to understand this
[Unix] The canonical comment describing something {magic} or too complicated to bother explaining properly. From an infamous comment in the context-switching code of the V6 {Unix} {kernel}.
[{Jargon File}]

you know youve been hacking too long when
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)

your mileage may vary
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?"
[{Jargon File}]
(1994-11-10)

yourdon
Yourdon
1. [programming] The {Yourdon methodology}.
2. [person] {Edward Yourdon}.
3. [company] {Yourdon, Inc.}.
(1995-04-07)

yourdon inc
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
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)

yourdonconstantine
Yourdon/Constantine
[programming] (Or "Constantine/Yourdon") A {structured design} {methodology} involving {structure charts}, developed by Larry Constantine.
(1995-04-07)

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

yow
Yow!
[exclamation] /yow/ (From "Zippy the Pinhead" comics) A favoured hacker expression of humorous surprise or emphasis. "Yow! Check out what happens when you twiddle the foo option on this display hack!"
Compare {gurfle}.
[{Jargon File}]
(1995-03-07)

yoyo mode
[jargon] The state in which a computer is said to be when it rapidly alternates several times between being up and being down. Interestingly (and perhaps not by coincidence), many hardware vendors give out free yoyos at {Usenix} exhibits.
{Sun Microsystems} gave out logoised yoyos at SIGPLAN '88. Tourists staying at one of Atlanta's most respectable hotels were subsequently treated to the sight of 200 of the country's top computer scientists testing yo-yo {algorithms} in the lobby.
[Is it "yoyo" or "yo-yo"?]
[{Jargon File}]
(1995-03-07)

yp
YP
Yellow Pages. The original name for {Sun}'s {Network Information Service}.
(1995-03-07)

ysm
YSM
{Yourdon Structured Method}

yt
[networking] The {country code} for Mayotte.
(1999-01-27)

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

yushiang whole fish
Yu-Shiang Whole Fish
/yoo-shyang hohl fish/ An obsolete name for the Greek character gamma ({extended SAIL ASCII} code 9, Unicode glyph 0x0263) which with a loop in its tail looks like a little fish swimming down the page. The term is actually the name of a Chinese dish in which a fish is cooked whole (not {parse}d) and covered with Yu-Shiang (or Yu-Hsiang) sauce. Used primarily by people on the {MIT} {LISP Machine}, which could display this character on the screen. Tends to elicit incredulity from people who hear about it second-hand.
[{Jargon File}]
(1995-01-31)

z
Z++
[language] An {object-oriented} extension of {Z}.
["Z++, an Object-Oriented Extension to Z", Lano, Z User Workshop, Oxford 1990, Springer Workshops in Computing, 1991, pp.151-172].
(1995-04-22)

z
Z
/zed/ [language, specification] 1. (After {Zermelo-Frankel set theory}) A {specification language} developed by the {Programming Research Group} at Oxford University around 1980. Z is used for describing and modelling computing systems. It is based on {axiomatic set theory} and {first order predicate logic}. Z is written using many non-{ASCII} symbols. It was used in the {IBM} {CICS} project.
See also {Z++}.
["Understanding Z", J.M. Spivey, Cambridge U Press 1988].
2. [language, simulation] A {stack}-based, complex arithmetic {simulation} language from {ZOLA Technologies}.
(1995-08-11)

z shell
Z shell
(zsh) 1. {sh} with list processing and {database} enhancements.
Version 2.1.o (before 1995-10-30).
{(ftp://cs.ucsd.edu/pub/zsh/zsh2.1.0.tar.Z)}.
2. A {Unix} command interpreter {shell} by Paul Falstad [pf@ttisms.com] some time before 1993-03-23. It is similar to, but not completely compatible with, {ksh}, with many additions to please {csh} users and some {tcsh} features. zsh supports editing of multi-line commands in a single buffer; variable editing; a command buffer stack; {recursive} {glob}bing; manipulation of {arrays}; and spelling correction.
zsh uses {GNU} {autoconf} so should compile and run on any modern version of UNIX, and many not-so-modern.
Current version: 4.0.6, as of 2002-10-02.
{zsh home (http://www.zsh.org/)}.
(1995-10-31)

z180
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
Z3
[computer] The third computer designed and built by {Konrad Zuse} and the first computer to successfully run real programs. The computer was ready in 1941, five years before {ENIAC}.
Zuse began his work on program-driven calculating machines in 1935. His two predessors of the Z3, the Z1 and Z2, were unsuccessful mechanical calculating machines. The Z3 was delivered to the Deutsche Versuchsanstalt fur Luftfahrt (German Experimental Department of Aeronautics) in Berlin and was used for deciphering coded messages. In 1998, there may still be models of Z3 in museums [where?].
The Z3 used about 2600 relays of the kind used in telecommunications. Zuse wrote and implemented the language {Plankalkul} on the Z3. Programs were punched into cinefilm.
Zuse built some more computers after World War II, including the Z3's successor, the Z4, which was set up at ETH Zurich, Switzerland.
Of the potential rival claimants to the title of first programmable computer, {Babbage} (UK, c1840) planned but was not able to build a {decimal}, programmable machine. {Atanasoff}'s {ABC}, completed in 1942, and Eckert and Mauchly's {ENIAC} (US, 1945/46) were special purpose calculators, like those of {Pascal} (1640) and {Leibniz} (1670). None of these machines was freely programmable. Neither was {Turing} et al.'s {Colossus} (UK, 1943-45). {Aiken}'s {MARK I} (1944) was programmable but still decimal, without separation of storage and control.
[Features? Where was it designed? Contemporaries?]
{(http://www.cs.tu-berlin.de/~zuse)}.
{(http://www.epemag.com/zuse)}.
(2002-07-28)

z3950
Z39.50
{ANSI Z39.50}

z8
Z8
{Zilog Z8}

z80
Z80
{Zilog Z80}

z8000
Z8000
{Zilog Z8000}

za
[networking] The {country code} for South Africa.
(1999-01-27)

zap
ZAP
1. [language] A language for expressing program transformations.
["A System for Assisting Program Transformation", M.S. Feather, ACM TOPLAS 4(1):1-20, Jan 1982].
2. {Zero and Add Packed}.
(2001-03-25)

zap
[jargon] 1. To modify, usually to correct; especially used when the action is performed with a debugger or binary patching tool. Also implies surgical precision. "Zap the debug level to 6 and run it again."
In the {IBM} {mainframe} world, binary patches are applied to programs or to the {operating system} with a program called "{superzap}", whose file name is "IMASPZAP" (possibly contrived from I M A SuPerZAP).
See also {Zero and Add Packed}.
2. To {fry} a chip with static electricity. "Uh oh - I think that lightning strike may have zapped the disk controller."
(1998-07-08)

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

zbuffer
Z-buffer
[graphics] An {array} used to store the maximum Z {coordinate} of any feature plotted at a given (X, Y) location on the screen, used for {hidden line removal} in a 2D rendering of a 3D scene. The Z axis is perpendicular to the screen with values increasing toward the viewer so that any point whose Z coordinate is less than the corresponding Z-buffer value will be hidden behind some feature which has already been plotted.
(1997-07-18)

zebra
ZEBRA
A data management package in the {CERN Program Library}.

zed
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
Zen
[Kehoe, B., "Zen and the Art of the Internet", February 1992.]
[{Jargon File}]

zen
[jargon] To figure out something by meditation or by a sudden flash of enlightenment. Originally applied to {bugs}, but occasionally applied to problems of life in general. "How'd you figure out the buffer allocation problem?" "Oh, I zenned it."
Contrast {grok}, which connotes a time-extended version of zenning a system. Compare {hack mode}. See also {guru}.
(1996-09-17)

zeno
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 frankel set theory
Zermelo Frankel 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
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 Frankel set theory} adds the Replacement axiom.
[Other axioms?]
(1995-03-30)

zero
ZERO
[language] An {object oriented} extension of {Z}.
["Object Orientation in Z", S. Stepney et al eds, Springer 1992].
[{Jargon File}]
(1995-03-30)

zero
1. [character] 0, {ASCI} character 48. Numeric zero, as opposed to the letter "O" (the 15th letter of the English alphabet). In their unmodified forms they look a lot alike, and various {kluges} invented to make them visually distinct have compounded the confusion.
If your zero is centre-dotted and letter-O is not, or if letter-O looks almost rectangular but zero looks more like an American football stood on end (or the reverse), you're probably looking at a modern character display (though the dotted zero seems to have originated as an option on {IBM 3270} controllers). If your zero is slashed but letter-O is not, you're probably looking at an old-style {ASCII} graphic set descended from the default typewheel on the venerable {ASR-33} {Teletype} (Scandinavians, for whom slashed-O is a letter, curse this arrangement).
If letter-O has a slash across it and the zero does not, your display is tuned for a very old convention used at {IBM} and a few other early mainframe makers (Scandinavians curse *this* arrangement even more, because it means two of their letters collide). Some {Burroughs}/{Unisys} equipment displays a zero with a *reversed* slash. And yet another convention common on early {line printers} left zero unornamented but added a tail or hook to the letter-O so that it resembled an inverted Q or cursive capital letter-O.
[{Jargon File}]
(1995-01-24)
2. To set to zero. Usually said of small pieces of data, such as bits or words (especially in the construction "zero out").
3. To erase; to discard all data from. Said of disks and directories, where "zeroing" need not involve actually writing zeroes throughout the area being zeroed. One may speak of something being "logically zeroed" rather than being "physically zeroed".
See {scribble}.
(1999-02-07)

zero and add packed
Zero and Add Packed
[language] (ZAP) An {IBM 360}/370 {assembly language} instruction used when performing {packed arithmatic} to initialise an {accumulator}.
(2001-03-25)

zero assignment
A zero assignment language is a language where there are no variables but only functions. See also {single assignment}.

zero insertion force
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)

zerocontent
zero-content
{content-free}

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.
[{Jargon File}]
(1997-12-07)

zest
ZEST
An {object-oriented} extension of {Z}.
["Object Orientation in Z", S. Stepney et al eds, Springer 1992].

zetalisp
ZetaLisp
[language] The {Maclisp} dialect used on the {LISP Machine}. The many extensions to Maclisp include {vectors}, {closures}, {flavors}, {stack groups}, {locatives}, and {invisible pointers}. Currently supported by {Lisp Machines, Inc.} and {Symbolics}.
["LISP Machine Manual", D. Weinreb and D. Moon, MIT AI Lab, 1981].
(1997-03-18)

zetta
-
{prefix}

zettabyte
[unit] 2^70 = 1,180,591,620,717,411,303,424 {bytes} = 1024 {exabytes}.
See {prefix}.
(1997-05-02)

zeus
Zeus
{Berkeley Yacc}

zf expression
ZF expression
[programming] (After {Zermelo Frankel set theory}). {David Turner}'s name for {list comprehension}.
(1995-03-27)

zfc
ZFC
[mathematics] {Zermelo Frankel set theory} plus the {Axiom of Choice}. A favourite {axiomatisation} of {set theory}.
(1995-03-29)

zif
ZIF
{Zero Insertion Force}

zigamorph
/zig'*-morf/ 1. {Hex} FF (11111111) when used as a {delimiter} or {fence} character. Usage: primarily at {IBM} shops.
2. [proposed] The {Unicode} non-character +UFFFF (1111111111111111), a character code which is not assigned to any character, and so is usable as end-of-string.
[{Jargon File}]

zil
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
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
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
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
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.
The Z80 was used in the first {Nintendo} {Game Boy}. A {Sharp} Z80 work-alike was used in the {GameBoy Color}, running at 4 MHz for GameBoy software or at 8 MHz for Game Boy Color software. The Z80 was used in the {Sega} Master System and the {Game Gear}.
{Gaby Chaudry Z80 site (http://www.gaby.de/z80/)}.
(2003-07-11)

zilog z8000
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
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
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}.
[{Jargon File}]
(1996-08-26)

zip drive
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}

zipcode
Zipcode
[language] A parallel language at {Lawrence Livermore}(?).
(1996-08-26)

zipperhead
[abuse] An {IBM} term for a person with a closed mind.
[{Jargon File}]
(1994-11-30)

zm
[networking] The {country code} for Zambia.
(1999-01-27)

zmodem
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
ZOG
A high-performance {hypertext} system developed at {Carnegie-Mellon University}.
(1994-11-30)

zola technologies
ZOLA Technologies
[company] Producers of the {Z} {simulation} language.
(1994-11-30)

zombie
1. [operating system] {zombie process}.
2. [chat] A {ghost}.
[{Jargon File}]
(1997-10-08)

zombie process
[operating system] (Or "defunct process") A {Unix} {process} that has terminated (either because it has been killed by a {signal} or because it has called {exit}()) and whose {parent process} has not yet received notification of its termination by executing (some form of) the {wait}() {system call}.
A zombie process exists solely as a {process table} entry and consumes no other resources. This entry is retained to hold the child's exit status until the parent process wants to retrieve it. The parent can also be notified asynchronously via a signal of the child's termination.
Zombie processes can be seen in "ps" listings occasionally (with a status "Z" in some versions).
Compare {orphan process}.
(1997-10-08)

zone
A logical group of {network} devices on {AppleTalk}.
(1994-11-30)

zoo
Zoo
{Berkeley Yacc}

zoo
[tool, file format] A data {compression} program and format by Rahul Dhesi. Zoo is reported to use the same {Lempel Ziv} algorithm as {LHA}. It is available for many {platforms} and {source} is available. .zoo archives are handled by many other PC archiving programs.
Version 2.10 was released in 1989. Search the web for zoo210 to obtain an executable.
{Description (http://sources.isc.org/archiver/zoo2.txt)}.
(2000-07-05)

zoom
[graphics] To show a smaller area of an {image} at a higher magnification ("zoom in") or a larger area at a lower magnification ("zoom out"), as though using a zoom lense on a camera.
Unlike in an optical system, zooming in on a computer {image} does not necessarily increase the amount of detail displayed since this is limited by what is actually stored in the image. Similarly, you cannot zoom out beyond the full size of the image.
(1997-10-24)

zoomer
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
ZOPL
[language] A {block structured}, untyped low-level language used on computers manufactured by {Geac}.
[Dates? Reference? Stands for?]
(2002-02-24)

zorch
/zorch/ 1. [TMRC] To attack with an inverse heat sink.
2. [TMRC] To travel with velocity approaching lightspeed.
3. [MIT] To propel something very quickly. "The new comm software is very fast; it really zorches files through the network."
4. [MIT] Influence. Brownie points. Good karma. The intangible and fuzzy currency in which favours are measured. "I'd rather not ask him for that just yet; I think I've used up my quota of zorch with him for the week."
5. [MIT] Energy, drive, or ability. "I think I'll {punt} that change for now; I've been up for 30 hours and I've run out of zorch."
6. [MIT] To flunk an exam or course.
7. Computing power.
[{Jargon File}]
(1997-07-09)

zork
Zork
[games] /zork/ The second of the great early experiments in computer fantasy gaming; see {ADVENT}. Zork was originally written on {MIT-DM} during the late 1970s, later distributed with {BSD Unix} as a patched, sourceless {RT-11} {Fortran} binary (see {retrocomputing}) and commercialised as "The Zork Trilogy" by {Infocom}. The Fortran source was later rewritten for portability and released to {Usenet} under the name "Dungeon".
Both Fortran "Dungeon" and translated {C} versions are available from many {FTP archives}.
[{Jargon File}]
(1998-09-21)

zorkmid
[games] /zork'mid/ The canonical unit of currency in hacker-written games. This originated in {Zork} but has spread to {nethack} and is referred to in several other games.
[{Jargon File}]
(1998-09-21)

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}

zug
ZUG
A low-level {Awk}(?) from {Geac}.
(1995-01-23)

zulu time
Zulu time
{Coordinated Universal Time}

zuse
ZUSE
[language] An LL(1) {parser generator} by Arthur Pyster of the {University of California at Santa Barbara}. ZUSE requires {Pascal}.
(1986-09-23)

zuse
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
Zuse, Konrad
{Konrad Zuse}

zw
[networking] The {country code} for Zimbabwe.
(1999-01-27)

zx spectrum
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)

zx80
ZX-80
[computer] {Sinclair}'s cheap {personal computer} with built-in {BASIC}, launched at the end of January 1980 at a computer fair in Wembley, UK. The processor was an {NEC 780-C} running at 3.25 MHz. It had 1KB of {RAM}, externally expandable to 16KB, and 4KB of ROM. It had RF video output to a TV, displaying 24 lines by 32 characters of monochrome text. An audio cassette recorder was used to save programs.
The ZX-80 was sold in kit form for (pounds)79.95 or ready-built for (pounds)99.95. It was used by many UK hobbyists as a means of learning the basics of computing. Some remember the 1KB ZX-80 for the claim in its advertising that you could control a nuclear power station with it.
The ZX-80 was succeeded by the {ZX-81}.
{(http://home.t-online.de/home/p.liebert/zx80_eng.htm)}.
{Planet Sinclair (http://www.nvg.ntnu.no/sinclair/)}.
{The Sinclair Story (http://www.sincuser.f9.co.uk/046/sstory.htm)}.
(2002-08-30)

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

zynet ltd
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
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)