Free On-line Dictionary of Computing FOLDOC is a searchable dictionary of acronyms, jargon, programming languages, tools, architecture, operating systems, networking, theory, conventions, standards, mathematics, telecoms, electronics, institutions, companies, projects, products, history, in fact anything to do with computing. This dictionary is Copyright Denis Howe 1993 - 1999. Permission is granted to make and distribute verbatim copies of this dictionary or works derived from it, provided that every such copy or derived work carries the above copyright notice and is distributed under terms identical to these. Individual definitions from this dictionary may be used without restriction provided no more than twenty are used in any one work. Please refer to the dictionary as "The Free On-line Dictionary of Computing, http://foldoc.doc.ic.ac.uk/, Editor Denis Howe" or similar. The dictionary has been growing since 1985 and now contains over 12000 definitions totalling more than four megabytes. Entries are cross-referenced to each other and to related resources elsewhere on the net. Where {LaTeX} commands for certain non-{ASCII} symbols are mentioned, they are described in their own entries. "\" is also used to represent the Greek lower-case lambda used in {lambda-calculus}. Cross-references to other entries look {like this}. Note that not all cross-references actually lead anywhere yet, but if you find one that leads to something inappropriate, please let me know. Dates after entries indicate when that entry was last updated. They do not imply that it was up-to-date at that time. You can search the latest version of the dictionary by {WWW} (URL http://foldoc.doc.ic.ac.uk/). If you find an entry that is wrong or inadequate please let me know. See {Pronunciation} for how to interpret the pronunciation given for some entries. Denis Howe +44 (171) 456 5772. (1999-02-01) Acknowledgements Many thanks to the hundreds of {contributors (contributors.html)}, and especially to the {Guest Editors (editors.html)}, mirror site maintainers and the maintainers of the following resources from which some entries originate: Mike Sendall's STING Software engineering glossary , 1993-10-13, Bill Kinnersley's {Language List (http://cuiwww.unige.ch/langlist)} v2.2, 1994-01-15, Mark Hopkins' catalogue of Free Compilers and Interpreters v6.4, 1994-02-28, The on-line hacker {Jargon File} v3.0.0, 1993-07-27, Internet Users' Glossary (RFC 1392, FYI 18), Jan 1993. John Cross's computer glossary, 1994-11-01. John Bayko's Great Microprocessors of the Past and Present, v4.0.0, 1994-08-18. {Electronic Commerce Dictionary}. (1997-08-01) ! {exclamation mark} " {double quote} % {percent} , {comma} 0 {zero} 0/1 knapsack problem The {knapsack problem} restricted so that the number of each item is zero or one. (1995-03-13) 100BaseFX {Fast Ethernet} over {optical fibre}. (1998-03-23) 100BaseT 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 The predominant form of {Fast Ethernet}. 100BaseTX runs over two pairs of wires in {category 5} cable. (1998-06-30) 100BaseVG A 100 {MBps} {Ethernet} standard specified to run over four pairs of {category 3} {UTP} wires (known as voice grade, hence the "VG"). It is also called 100VG-AnyLAN because it was defined to carry both {Ethernet} and {token ring} {frame} types. 100BaseVG was originally proposed by {Hewlett-Packard}, ratified by the {ISO} in 1995 and practically extinct by 1998. 100BaseVG started in the IEEE 802.3u committee as {Fast Ethernet}. One faction wanted to keep {CSMA/CD} in order to keep it pure Ethernet, even though the {collision domain} problem limited the distances to one tenth that of {10baseT}. Another faction wanted to change to a polling architecture from the hub (they called it "demand priority") in order to maintain the 10baseT distances, and also to make it a {deterministic} {protocol}. The CSMA/CD crowd said, "This is 802.3 -- the Ethernet committee. If you guys want to make a different protocol, form your own committee". The IEEE 802.12 committee was thus formed and standardized 100BaseVG. The rest is history. (1998-06-30) 100VG-AnyLAN {100BaseVG} 10base2 (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 (Or "thicknet" - "thick {Ethernet}") The original "full spec" variant of {Ethernet} cable, using a stiff, large diameter {coaxial} cable with an {impedance} of 50 ohms and with multiple shielding. The outer sheath is usually yellow so it is often just called "yellow cable". The "10" means 10 {Mbps}, "base" means "baseband" as opposed to {radio frequency} and "5" means a maximum single cable length of 500 metres. 10base5 cable is designed to allow transceivers to be added while existing connections are live. This is achieved using a "vampire tap" - a device which (with sufficient practise) clamps onto the cable, forcing a spike through the outer shielding to contact the inner conductor while other spikes bite into the outer conductor. This is often built into the transceiver and a more flexible multi-wire cable carries the connection between the transceiver and the {node}. Compare {10base2}, {10baseT}. [Does the cable have an official name?] (1998-06-27) 10baseT A variant of {Ethernet} which allows stations to be attached via {twisted pair} cable. (1995-01-24) 120 reset /wuhn-twen'tee ree'set/ (After 120 volts, US mains voltage) To cycle power on a computer in order to reset or unjam it. Compare {Big Red Switch}, {power cycle}. (1994-11-23) 1-2-3 {Lotus 1-2-3} 1394 {High Performance Serial Bus} 1541 {Commodore 1541} 1581 {Commodore 1581} 16550 A version of the 16450 {UART} with a 16-byte {FIFO} buffer. Now revised to the 16550A. (1995-01-24) 16 bit Using {words} containing sixteen {bits}. This adjective often refers to the number of bits used internally by a computer's {CPU}. E.g. "The {Intel 8086} is a sixteen bit processor". Its external {data bus} or {address bus} may be narrower. The term may also refer to the size of an instruction in the computer's {instruction set} or to any other item of data. See also {16-bit application}. (1996-05-13) 16-bit application Software for {MS-DOS} or {Microsoft Windows} which originally ran on the 16-bit {Intel 8088} and {80286} {microprocessors}. These used a {segmented address space} to extend the range of addresses from what is possible with just a 16-bit address. Programs with more than 64 kilobytes of code or data therefore had to waste time switching between {segments}. Furthermore, programming with segments is more involved than programming in a {flat address space}, giving rise to {warts} like {memory models} in {C} and {C++}. Compare {32-bit application}. (1996-04-06) 1802 An 8-bit {microprocessor} currently manufactured as CDP1802 by {HARRIS Semiconductor}. It has been around for ten years at least and is ideally suited for {embedded} applications. Some of its features are: 8-bit parallel organisation with bidirectional {data bus} and {multiplexed address bus}; static design -- no minimum clock frequency; bit-programmable output port; four input pins which are directly tested by branch instructions; flexible programmable I/O mode; single-phase clock, with on-chip oscillator; 16 x 16 register matrix to implement multiple {program counters}, pointers, or {registers} (1995-11-21) 1NF {database normalisation} 1TBS One True Brace Style. See {indent style}. (1995-01-25) 1.TR.6 A {control channel protocol} for {ISDN}. It is a national {standard} in Germany but is being replaced by {Euro-ISDN}. (1995-03-27) 2 In names of translation software, infix 2 often represents the word "to" with the connotation "translate to", as in {dvi2ps} ({DVI} to {PostScript}), int2string (integer to string) and {texi2roff} ({Texinfo} to [nt]{roff}). (1995-01-25) 20-GATE An algebraic language for the {G-20}, developed at {Carnegie} around 1965. (1995-02-27) 2780 {Binary Synchronous Transmission} 2B1D {2B+D} 2B1Q {two-binary, one-quaternary} 2B+D Two {bearer channels}, one {data channel}. See {basic rate interface}. Note that the "B" in "{BRI}" stands for "basic", while the "B" in "2B+D" stands for "bearer". (1997-03-31) 2NF {database normalisation} 2.PAK An {artificial intelligence} language with {coroutine}s. ["The 2.PAK Language: Goals and Description", L.F. Melli, Proc IJCAI 1975]. (1995-01-25) 320xx A series of {microprocessors} from {National Semiconductor}. The 320xx processors have a {coprocessor} interface which allows coprocessors such as {FPU}s and {MMU}s to be attached in a chain. The 320xx was the predecessor of the {Swordfish} processor. [Details?] (1994-11-17) 3270 {IBM 3270} 32-bit application {IBM PC} software that runs in a 32-bit {flat address space}. The term {32-bit application} came about because {MS-DOS} and {Microsoft Windows} were originally written for the {Intel 8088} and {80286} {microprocessors}. These are {16 bit} microprocessors with a {segmented address space}. Programs with more than 64 kilobytes of code and/or data therefore had to switch between {segments} quite frequently. As this operation is quite time consuming in comparison to other machine operations, the application's performance may suffer. Furthermore, programming with segments is more involved than programming in a flat address space, giving rise to some complications in programming languages like "{memory models}" in {C} and {C++}. The shift from 16-bit software to 32-bit software on {IBM PC} {clones} became possible with the introduction of the {Intel 80386} microprocessor. This microprocessor and its successors support a segmented address space with 16-bit and 32 bit segments (more precisely: segments with 16- or 32-bit address offset) or a linear 32-bit address space. For compatibility reasons, however, much of the software is nevertheless written in 16-bit models. {Operating system}s like {Microsoft Windows} or {OS/2} provide the possibility to run 16-bit (segmented) programs as well as 32-bit programs. The former possibility exists for {backward compatibility} and the latter is usually meant to be used for new software development. See also {Win32s}. (1995-12-11) 3780 {Binary Synchronous Transmission} 386 {Intel 80386} 386BSD A {free software} version of the {BSD Unix} {operating system} originally derived from the generally available parts of the "{Berkeley Net Release/2}". William Jolitz played a key rôle and there have been many contributors. Many new and innovative features have been added to 386BSD since its original release in June 1992. An unofficial patchkit, available from many {anonymous FTP} archives, solves many of the problems associated with 386BSD Version 0.1. In addition, many common Unix packages have been ported. 386BSD has been superseded by {FreeBSD} and {NetBSD}. {FAQ (http://www.cis.ohio-state.edu/hypertext/faq/usenet/386bsd-faq/part1/faq.html)}. (1995-02-15) 386SPART.PAR (Or "{WIN386.SWP}") 386SPART.PAR is a {hidden file} created by {Windows 3.1} for use as {virtual memory} {swap file}. It is generally found in the {root directory}, however it may appear elsewhere (typically in the WINDOWS directory). Its size depends on how much virtual memory you have set up under (Control Panel) Enhanced under Virtual Memory. If you move or delete this file Windows will complain the next time you start it with a Swap File error. {Windows 95} uses a similar file, except it is named WIN386.SWP, and the controls for it are located under Control Panel - System - Performance tab - Virtual Memory. (1996-05-28) 3Com Corporation A manufacturer of {local area network} equipment. 3Com was founded in 1979. They acquired {BICC Data Networks} in 1992, {Star-Tek} in 1993, {Synernetics} in 1993, {Centrum} in 1994, {NiceCom} in 1994 {AccessWorks}, {Sonix Communications}, {Primary Access} and {Chipcom} in 1995 and {Axon} and {OnStream Networks} in 1996. They merged with {U.S. Robotics} in 1997. {Home (http://www.3com.com/)}. (1998-04-03) 3DO A set of specifications created and owned by the 3DO company, which is a partnership of seven different companies. These specs are the blueprint for making a 3DO Interactive Multiplayer and are licensed to hardware and software producers. A 3DO system has an {ARM60} 32-bit {RISC} {CPU} and a graphics engine based around two custom designed graphics and animation processors. It has 2 Megabytes of {DRAM}, 1 Megabyte of {VRAM}, and a double speed {CD-ROM} drive for main storage. The {Panasonic} 3DO system can run 3DO Interactive software, play audio CDs (including support for CD+G), view {Photo-CD}s, and will eventually be able to play {Video CD}s with a special add-on {MPEG}1 {full-motion video} cartridge. Up to 8 {controller}s can be {daisy-chain}ed on the system at once. A keyboard, mouse, light gun, and other peripherals may also some day be hooked into the system, although they are not currently available (December 1993). The 3DO can display {full-motion video}, fully {texture map}ped 3d landscapes, all in 24-bit colour. {Sanyo} and {AT&T} will also release 3DO systems. Sanyo's in mid 1994 and AT&T in late 1994. There will be a 3DO add-on cartridge based on the {PowerPC} to enable the 3DO to compete with {Sony}'s {Playstation} console and {Sega}'s {Saturn} console, both of which have a higher specification than the original 3DO. The add-on is commonly known as the M2 or Bulldog. It should hit the shops by Christmas 1995 and will (allegedly) do a million flat shaded polygons per second. {(http://www.3do.com/)} {Usenet} newsgroup: {news:rec.games.video.3do}. (1994-12-13) 3GL {third generation language} 3NF {database normalisation} 3Station The archtypal {diskless workstation}, developed by Bob Metcalfe at {3Com}. [Features? Dates?] (1995-03-27) 3-tier {three-tier} 404 Someone who's clueless. From the {World-Wide Web} message "404, URL Not Found" meaning that the document you've tried to access can't be located. "Don't bother asking him...he's 404, man". (1997-04-17) 4.2BSD {Berkeley System Distribution} 431A The type of plug which fits a standard "type 600" {British Telecom} telephone socket. (1995-01-25) 4510 A {65CE02} with two {6526}s. Used in the {Commodore 65}. (1996-04-06) 473L Query An English-like {query language} for the US Air Force {473L} system. [Sammet 1969, p. 665]. ["Headquarters USAF Command and Control System Query Language", Info Sys Sci, Proc 2nd Congress, Spartan Books 1965, pp.57-76]. (1994-10-31) 486 {Intel 486} 486SX {Intel 486SX} 4GL {fourth generation language} 4NF {database normalisation} 51forth A subroutine-{threaded} {Forth} for the {8051} by Scott Gehmlich. It comes with source and documentation. {(ftp://smis-novell-1.massey.ac.nz/giovanni/51forth.zip)} (1993-04-03) 56kbps (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 A digital connection (possibly a {leased line}, possibly switched) capable of carrying 56,000 bit/s. Compare {DS0}. (1995-12-18) 586 What {Intel}'s {Pentium} was not called. 5NF {database normalisation} 5th Glove A {data glove} and flexor strip kit (5th Glove DFK) sold by {Fifth Dimension Technologies} for $495 ($345 for the left-handed version, $45 for each extra flexor strip). The DFK provides a data glove, a flexon strip (with an elbow or knee-joint sensor), an interface card, cables, and KineMusica software. The package uses flexible optical-bending sensing to track hand and arm movement. The glove can be used with 5DT's ultrasonic tracking system, the 5DT Head and Hand tracker ($245), which can track movement from up to two metres away from the unit's transmitter. (1998-02-06) 6.001 /siks dub*l oh wun/, /dub*l oh wun/ or rarely /siks dub*l oh fun/ {MIT}'s introductory computer class for majors, known for its intensity. Developed by {Gerald Sussman} and {Hal Abelson}, the course is taught in {Scheme} and introduces {recursion}, {higher-order function}s, {object-oriented programming} and much more. Students who grasp the {meta}circular {interpreter} gain entry into the {Knights of the Lambda-Calculus}. 6.001 has been exported to several other colleges, sometimes successfully. The textbook, "Structure and Interpretation of Computer Programs", written with Julie Sussman is a classic that can be found on the shelves of many computer scientists, whether they took the course or not. Legendary characters from the class, problem sets, and book include the wise Alyssa P. Hacker, Ben Bitdiddle, Lem E. Tweakit and Eva Lu Ator, the careless Louis Reasoner and {Captain Abstraction}. (1994-11-22) 610 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 A term describing a computer architecture based around an {ALU}, {registers}, and {data bus} which are 64 {bit}s wide. 64-bit processors are quite common in 1996, e.g. {Digital} {Alpha}, versions of {Sun} {SPARC}, {MIPS}, {IBM} {AS/4000}. the {PowerPC} and {Intel} are expected to move to 64 bits at their next generation - {PPC 620} and {Intel P7}. A 64-bit {address bus} allows the processor to address 18 million {gigabytes} as opposed to the mere 4 gigabytes allowed with 32 bits. There are in 1996 already {hard disks} which can hold over 4GB. Floating point calculations can also be more accurate. A 64-bit {OS} is needed as well to take advantage of the CPU. In 1986 there are only a few 64-bit operating systems, including {OS/400}, {Digital} {Unix}, {Solaris} (partialy). A 32-bit OS can run on a 64-bit CPU. (1996-12-23) 6502 An eight-bit {microprocessor} designed by {MOS Technologies} around 1975 and made by {Rockwell}. Unlike the {Intel 8080} and its kind, the 6502 had very few {register}s. It was an 8-bit processor, with 16-bit {address bus}. Inside was one 8-bit data register ({accumulator}), two 8-bit {index register}s and an 8-bit {stack pointer} (stack was preset from address 256 to 511). It used these index and stack registers effectively, with more {addressing mode}s, including a fast zero-page mode that accessed memory locations from address 0 to 255 with an 8-bit address (it didn't have to fetch a second byte for the address). The 6502 also had undocumented instructions. Back when the 6502 was introduced, {RAM} was actually faster than {CPU}s, so it made sense to optimize for RAM access rather than increase the number of registers on a chip. The 6502 was used in the {BBC Microcomputer}, {Apple II}, {Commodore}, {Apple Computer} and {Atari} {personal computer}s. {Steve Wozniak} described it as the first chip you could get for less than a hundred dollars (actually a quarter of the {6800} price). The 6502's {indirect jump} instruction, JMP (xxxx), was {broken}. If the address was hexadecimal xxFF, the processor would not access the address stored in xxFF and xxFF + 1, but rather xxFF and xx00. The {6510} corrected this bug. The {65816} is an expanded version of the 6502. There is a 6502 {assembler} by Doug Jones which supports {macro}s and conditional features and can be used for linkage editing of object files. It requires {Pascal}. See also {cross-assembler}, {RTI}, {Small-C}. (1999-02-18) 650x 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 A {bug fix} to the {6502}'s indirect jump command. The 6510 was used in the Commodore 64C. Successors included the {8502} used in the {Commodore 128} line. (1999-02-18) 65816 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 {Pentium Pro} or possibly {Cyrix 6x86}. (1997-05-26) 68HC11 {Motorola 68HC11} 68LC040 {Motorola 68LC040} 6x86 {Cyrix 6x86} 754 {IEEE Floating Point Standard} 80186 {Intel 80186} 80188 {Intel 80188} 802.2 {IEEE 802.2} 802.3 {IEEE 802.3} 80286 {Intel 80286} 8031 {as31} 80386 {Intel 80386} 80486 {Intel 486} 8051 See {CAS 8051 Assembler}, {as31}, {51forth}. [What is an 8051?] (1995-01-26) 8080 {Intel 8080} 8086 {Intel 8086} 8088 {Intel 8088} 80x86 {Intel 80x86} 822 {RFC 822} 82430FX {Triton I} 82430HX {Triton II} 82430MX {Mobile Triton} 82430VX {Triton VX} 8.3 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 An {IBM} graphics {display standard} supporting a {resolution} of 1024 x 768 {pixels} with 256 colours at 43.5 Hz ({interlaced}), or 640 x 480 at 60 Hz interlaced. 8514 was introduced at the same time as {VGA} and was superceded by {XGA}. (1999-08-01) 8514-A {8514} 88000 {Motorola 88000} 88open A consortium with the aim of creating a multi-vendor open computing environment based on the {Motorola 88000} {RISC} processor family. (1995-01-26) 8-bit clean {eight-bit clean} 8N1 Common shorthand for "eight data bits, no {parity}, one {stop bit}", the most common configuration for {serial line}s, e.g. {RS-232}. (1995-01-31) 8 queens problem {eight queens puzzle} 8 queens puzzle {eight queens puzzle} 8x86 {Intel 80x86} 90-90 Rule {Ninety-Ninety Rule} 9PAC 709 PACkage. A {report generator} for the {IBM 7090}, developed in 1959. [Sammet 1969, p.314. "IBM 7090 Prog Sys, SHARE 7090 9PAC Part I: Intro and Gen Princs", IBM J28-6166, White Plains, 1961]. (1995-02-07) :-) {emoticon} ; {semicolon} = {equals} @ {commercial at} A# /A sharp/ A separable component of Version 2 of the {AXIOM*} computer algebra system. It provides a programming language with an {optimising compiler}, an {intermediate code} {interpreter}, and a library of data structures and mathematical {abstraction}s. The compiler produces {stand-alone executable} programs, {object} libraries in {native} {operating system} formats, {portable} {bytecode} libraries, {C} and {Lisp} {source code}. The A# programming language has support for {object-oriented} and {functional programming} styles. Both types and functions are {first class} values that can be manipulated with a range of flexible and composable {primitive}s and user programs. The A# language design places particular emphasis on compilation for efficient {machine code} and portability. Ports have been made to various 16, 32, and 64 bit architectures: {RS/6000}, {SPARC}, {DEC Alpha}, {i386}, {i286}, {Motorola 680x0}, {S 370}; several {operating system}s: {Linux}, {AIX}, {SunOS}, {HP/UX}, {Next}, {Mach} and other {Unix} systems, {OS/2}, {DOS}, {Microsoft Windows}, {VMS} and {CMS}; {C} compilers: {Xlc}, {gcc}, {Sun}, {Borland}, {Metaware} and {MIPS} C. (1995-02-07) A-0 (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 Address 1 code. An a1 code {interpreter}, by Matthew Newhook was used to test compiler output. It requires {gcc} 2.4.2 or higher and is portable to computers with {memory segment} protection. {(ftp://ftp.cs.mun.ca/pub/a1)} (1994-07-19) A1 security {Orange Book} A20 handler {IBM PC} memory manager software providing {HMA}. {XMM}s usually provide this functionality. Named after the 21st address line (A20), controlling the access to HMA. (1996-01-10) A3D (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 An {assembler} for the {Motorola} {DSP56000} and {DSP56001} {digital signal processor}s by Quinn Jensen . Version 1.1 is available from an {alt.sources} archive or {(ftp://wuarchive.wustl.edu/)}. (1992-08-10) AADL {Axiomatic Architecture Description Language} AAL {ATM Adaptation Layer} AAP {Association of American Publishers} AAP DTD A {DTD} for a standard {SGML} document type for scientific documents, defined by the {Association of American Publishers}. (1994-11-08) aard (Dutch for "earth") A tool to check memory use for {C++} programs, written by Steve Reiss (who names his programs after living systems). Aard tracks the state of each byte of memory in the {heap} and the {stack}. The state can be one of Undefined, Uninitialised, Free or Set. The program can detect invalid transitions (i.e. attempting to set or use undefined or free storage or attempting to access uninitialised storage). In addition, the program keeps track of heap use through {malloc} and {free} and at the end of the run reports memory blocks that were not freed and that are not accessible (i.e. {memory leaks}). The tools works using a spliced-in {shared library} on {SPARCs} running {C++} 3.0.1 under {SunOS} 4.X. {(ftp://wilma.cs.brown.edu/pub/aard.tar.Z)}. (1998-03-03) AARP {Apple Address Resolution Protocol} AARP probe packets {AARP} {packets} sent out on a nonextended {AppleTalk} network to discover whether a randomly selected node ID is being used by any node. If not, the sending node uses the node ID. If so, it chooses a different ID and sends more AARP probe packets. (1997-05-03) A&B 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 /*-breev'/, /*-brev'/ Common abbreviation for "abbreviation". (1995-02-27) ABC 1. An {imperative} language and programming environment from {CWI}, Netherlands. It is interactive, structured, high-level, and easy to learn and use. It is a general-purpose language which you might use instead of {BASIC}, {Pascal} or {AWK}. It is not a systems-programming language but is good for teaching or prototyping. ABC has only five data types that can easily be combined; {strong typing}, yet without declarations; data limited only by memory; refinements to support top-down programming; nesting by indentation. Programs are typically around a quarter the size of the equivalent {Pascal} or {C} program, and more readable. ABC includes a programming environment with {syntax-directed} editing, {suggestion}s, {persistent variable}s and multiple workspaces and {infinite precision} arithmetic. An example function words to collect the set of all words in a document: HOW TO RETURN words document: PUT {} IN collection FOR line in document: FOR word IN split line: IF word not.in collection: INSERT word IN collection RETURN collection {Interpreter}/{compiler}, version 1.04.01, by Leo Geurts, Lambert Meertens, Steven Pemberton . ABC has been ported to {Unix}, {MS-DOS}, {Atari}, {Macintosh}. {Home (http://www.cwi.nl/cwi/projects/abc.html)} {FTP eu.net (ftp://ftp.eu.net/programming/languages/abc)}, {FTP nluug.nl (ftp://ftp.nluug.nl/programming/languages/abc)}, {FTP uunet (ftp://ftp.uu.net/languages/abc)}. Mailing list: . E-mail: . ["The ABC Programmer's Handbook" by Leo Geurts, Lambert Meertens and Steven Pemberton, published by Prentice-Hall (ISBN 0-13-000027-2)]. ["An Alternative Simple Language and Environment for PCs" by Steven Pemberton, IEEE Software, Vol. 4, No. 1, January 1987, pp. 56-64.] (1995-02-09) 2. Argument, Basic value, C?. An {abstract machine} for implementation of {functional language}s and its intermediate code. [P. Koopman, "Functional Programs as Executable Specifications", 1990]. (1995-02-09) ABC ALGOL An extension of {ALGOL 60} with arbitrary data structures and user-defined operators, for {symbolic mathematics}. ["ABC ALGOL, A Portable Language for Formula Manipulation Systems", R.P. van de Riet, Amsterdam Math Centrum 1973]. (1994-10-28) ABCL/1 An Object-Based Concurrent Language. The language for the {ABCL} {MIMD} system, written by Akinori Yonezawa of Department of Information Science, {Tokyo University} in 1986. ABCL/1 uses {asynchronous} {message passing} to {object}s. It requires {Common Lisp}. Implementations in {KCL} and {Symbolics Lisp} are available from the author. {(ftp://camille.is.s.u-tokyo.ac.jp/)} E-mail: . ["ABCL: An Object-Oriented Concurrent System", A. Yonezawa ed, MIT Press 1990]. (1990-05-23). (1995-02-09) ABCL/c+ A {concurrent} {object-oriented} language, an extension of {ABCL/1} based on {C}. ["An Implementation of An Operating System Kernel using Concurrent Object Oriented Language ABCL/c+", N. Doi et al in ECOOP '88, S. Gjessing et al eds, LNCS 322, Springer 1988]. (1994-11-08) ABCL/R A {reflective} subset of {ABCL/1}, written in ABCL/1 by Yonezawa of {Tokyo Institute of Technology} in 1988. {(ftp://camille.is.s.u-tokyo.ac.jp/pub/abclr)} ["Reflection in an Object-Oriented Concurrent Language", T. Watanabe et al, SIGPLAN Notices 23(11):306-315 (Nov 1988)]. (1994-11-08) ABCL/R2 An {object-oriented}, {concurrent}, {reflective} language based on {Hybrid Group Architecture}. ABCL/R2 was produced by , , , , at the {Tokyo Institute of Technology} in 1992. As a reflective language, an ABCL/R2 program can dynamically control its own behaviour, such as {scheduling} policy, from within a user-program. This system has almost all functions of {ABCL/1} and is written in {Common Lisp}. {(ftp://camille.is.s.u-tokyo.ac.jp/pub/abclr2/)} (1993-01-28) abduction The generation of hypotheses to explain observations or conclusions. Applications include fault diagnosis, plan formation and {default reasoning}. Both the {semantics} and the implementation of abduction can be reduced to those for {deduction}. {Negation as failure} in {logic programming} can both be given an abductive interpretation and also can be used to implement abduction. The abductive semantics of negation as failure leads naturally to an {argumentation}-theoretic interpretation of default reasoning in general. [Better explanation? Example?] (1994-11-08) ABEND /o'bend/, /*-bend'/ ABnormal END. Abnormal termination (of {software}); {crash}; {lossage}. Derives from an error message on the {IBM 360}; used jokingly by hackers but seriously mainly by {code grinder}s. Usually capitalised, but may appear as "abend". Hackers will try to persuade you that ABEND is called "abend" because it is what system operators do to the computer late on Friday when they want to call it a day, and hence is from the German "Abend" = "Evening". (1994-11-08) ABI {Application Binary Interface} ABLE A simple language for accountants. ["ABLE, The Accounting Language, Programming and Reference Manual," Evansville Data Proc Center, Evansville, IN, Mar 1975]. [Listed in SIGPLAN Notices 13(11):56 (Nov 1978)]. (1994-11-08) ABM {Asynchronous Balanced Mode} ABNF {Augumented Backus-Naur Form} abort To terminate a program or {process} abnormally and usually suddenly, with or without {diagnostic} information. "My program aborted", "I aborted the transmission". The noun form in computing is "abort", not "abortion", e.g. "We've had three aborts over the last two days". If a {Unix} {kernel} aborts it is known as a {panic}. (1997-01-07) ABP A {data link layer} protocol. [What does it stand for?] (1996-06-15) ABR {automatic baud rate detection} abscissa The x coordinate on an (x, y) graph; the input of a function against which the output is plotted. y is the "{ordinate}". See {Cartesian coordinates}. (1997-07-08) ABSET An early {declarative language} from the {University of Aberdeen}. ["ABSET: A Programming Language Based on Sets", E.W. Elcock et al, Mach Intell 4, Edinburgh U Press, 1969, pp.467-492]. (1994-11-08) absolute path A {path} relative to the {root directory}. Its first character must be the {pathname separator}. (1996-11-21) absolute pathname A {pathname} relative to the {root directory}. (1996-11-21) abstract class In {object-oriented programming}, a {class} designed only as a parent from which sub-classes may be derived, but which is not itself suitable for instantiation. Often used to "abstract out" incomplete sets of features which may then be shared by a group of sibling sub-classes which add different variations of the missing pieces. (1994-11-08) abstract data type (ADT) A type whose internal form is hidden behind a set of {access function}s. Objects of the type are created and inspected only by calls to the access functions. This allows the implementation of the type to be changed without requiring any changes outside the {module} in which it is defined. Abstract data types are central to {object-oriented programming} where every {class} is an ADT. A classic example of an ADT is a {stack} data type for which functions might be provided to create an empty stack, to {push} values onto a stack and to {pop} values from a stack. (1995-02-22) abstract interpretation A partial execution of a program which gains information about its {semantics} (e.g. control structure, flow of information) without performing all the calculations. Abstract interpretation is typically used by compilers to analyse programs in order to decide whether certain optimisations or transformations are applicable. The objects manipulated by the program (typically values and functions) are represented by points in some {domain}. Each abstract domain point represents some set of real ("{concrete}") values. For example, we may take the abstract points "+", "0" and "-" to represent positive, zero and negative numbers and then define an abstract version of the multiplication operator, *#, which operates on abstract values: *# | + 0 - ---|------ + | + 0 - 0 | 0 0 0 - | - 0 + An interpretation is "safe" if the result of the abstract operation is a safe approximation to the abstraction of the concrete result. The meaning of "a safe approximation" depends on how we are using the results of the analysis. If, in our example, we assume that smaller values are safer then the "safety condition" for our interpretation (#) is a# *# b# <= (a * b)# where a# is the abstract version of a etc. In general an interpretation is characterised by the {domain}s used to represent the basic types and the abstract values it assigns to constants (where the constants of a language include primitive functions such as *). The interpretation of constructed types (such as user defined functions, {sum type}s and {product type}s) and expressions can be derived systematically from these basic domains and values. A common use of {abstract interpretation} is {strictness analysis}. See also {standard interpretation}. (1994-11-08) abstraction 1. Generalisation; ignoring or hiding details to capture some kind of commonality between different instances. Examples are {abstract data types} (the representation details are hidden), {abstract syntax} (the details of the {concrete syntax} are ignored), {abstract interpretation} (details are ignored to analyse specific properties). 2. Parameterisation, making something a function of something else. Examples are {lambda abstractions} (making a term into a function of some variable), {higher-order function}s (parameters are functions), {bracket abstraction} (making a term into a function of a variable). Opposite of {concretisation}. (1998-06-04) abstract machine 1. A processor design which is not intended to be implemented as {hardware}, but which is the notional executor of a particular {intermediate language} (abstract machine language) used in a {compiler} or {interpreter}. An abstract machine has an {instruction set}, a {register set} and a model of memory. It may provide instructions which are closer to the language being compiled than any physical computer or it may be used to make the language implementation easier to {port} to other {platform}s. A {virtual machine} is an abstract machine for which an {interpreter} exists. Examples: {ABC}, {Abstract Machine Notation}, {ALF}, {CAML}, {F-code}, {FP/M}, {Hermes}, {LOWL}, {Christmas}, {SDL}, {S-K reduction machine}, {SECD}, {Tbl}, {Tcode}, {TL0}, {WAM}. 2. A procedure for executing a set of instructions in some formal language, possibly also taking in input data and producing output. Such abstract machines are not intended to be constructed as {hardware} but are used in thought experiments about {computability}. Examples: {Finite State Machine}, {Turing Machine}. (1995-03-13) Abstract Machine Notation (AMN) A language for specifying {abstract machines} in the {B-Method}, based on the mathematical theory of {Generalised Substitutions}. (1995-03-13) abstract syntax 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 (ASN.1, X.208) An {ISO}/{ITU-T} {standard} for transmitting structured {data} on {networks}, originally defined in 1984 as part of {CCITT X.409} '84. ASN.1 was moved to its own standard, X.208, in 1998 due to wide applicability. The substantially revised 1995 version is covered by the X.680 series. ASN.1 defines the {abstract syntax} of {information} but does not restrict in any way how the information is encoded. There are various ASN.1 encoding rules, which provide {transfer syntax} (a {concrete} representation) of the data values whose {abstract syntax} is described in ASN.1. The standard ASN.1 encoding rules include {BER} (Basic Encoding+ Rules), {CER} (Canonical Encoding Rules), {DER} (Distinguished Encoding Rules) and {PER} (Packed Encoding Rules). ASN.1 together with specific ASN.1 encoding rules facilitates the exchange of structured data especially between {application programs} over networks by describing data structures in a way that is independent of machine architecture and implementation language. {OSI} {Application layer} {protocols} such as {X.400} {MHS} {electronic mail}, {X.500} directory services and {SNMP} use ASN.1 to describe the {PDU}s they exchange. Documents describing the ASN.1 notations: {ITU-T} Rec. X.680, {ISO} 8824-1; {ITU-T} Rec. X.681, {ISO} 8824-2; {ITU-T} Rec. X.682, {ISO} 8824-3; {ITU-T} Rec. X.683, {ISO} 8824-4 Documents describing the ASN.1 encoding rules: {ITU-T} Rec. X.690, {ISO} 8825-1; {ITU-T} Rec. X.691, {ISO} 8825-2. [M. Sample et al, "Implementing Efficient Encoders and Decoders for Network Data Representations", IEEE Infocom 93 Proc, v.3, pp. 1143-1153 (Mar 1993). Available from Logica, UK]. See also {snacc}. (1998-08-06) abstract syntax tree (AST) A data structure representing something which has been parsed, often used as a {compiler} or {interpreter}'s internal representation of a program while it is being optimised and from which {code generation} is performed. The range of all possible such structures is described by the {abstract syntax}. (1994-11-08) Abstract-Type and Scheme-Definition Language (ASDL) A language developed as part of {Esprit} project {GRASPIN}, as a basis for generating {language-based editor}s and environments. It combines an {object-oriented} type system, syntax-directed translation schemes and a target-language interface. ["ASDL - An Object-Oriented Specification Language for Syntax-Directed Environments", M.L. Christ-Neumann et al, European Software Eng Conf, Strasbourg, Sept 1987, pp.77-85]. (1996-02-19) Abstract Windowing Toolkit (AWT) {Java}'s {platform}-independent {windowing}, graphics, and user-interface {toolkit}. ["Java in a Nutshell", O'Reilly]. [On-line documentation?] (1996-04-23) ABSYS An early {declarative language} from the {University of Aberdeen} which anticipated a number of features of Prolog. ["ABSYS: An Incremental Compiler for Assertions", J.M. Foster et al, Mach Intell 4, Edinburgh U Press, 1969, pp. 423-429]. (1994-11-08) ACA {Application Control Architecture} ACAP {Application Configuration Access Protocol} Accelerated Graphics Port (AGP) A bus specification by {Intel} which gives low-cost 3D {graphics cards} faster access to {main memory} 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 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 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 {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 (AUP) Rules applied by many {transit network}s which restrict the use to which the network may be put. A well known example is {NSFNet} which does not allow commercial use. Enforcement of AUPs varies with the network. (1994-11-08) acceptance testing Formal testing conducted to determine whether a system satisfies its acceptance criteria and thus whether the customer should accept the system. (1996-05-10) Access 1. An English-like query language used in the {Pick} {operating system}. 2. {Microsoft Access}. (1994-11-08) Access Control List (ACL) A list of the services available on a {server}, each with a list of the {host}s permitted to use the service. (1994-11-08) access method 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 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 A European Union {ESPRIT} {Basic Research Action}. [What's it about?] (1994-11-08) Accounting File A file which holds records of the resources used by individual jobs. These records are used to regulate, and calculate charges for, resources. An entry is opened in the accounting file as each job begins. (1996-12-08) accounting management The process of identifying individual and group access to various network resources to ensure proper access capabilities ({bandwidth} and security) or to properly charge the various individuals and departments. Accounting management is one of five categories of {network management} defined by {ISO} for management of {OSI} {networks}. (1997-05-05) ACCU {Association of C and C++ Users} accumulator In a {central processing unit}, a {register} in which intermediate results are stored. Without an accumulator, it would be necessary to write 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. A register, memory location or variable being used for arithmetic or logic (as opposed to addressing or a loop index), especially one being used to accumulate a sum or count of many items. This use is in context of a particular routine or stretch of code. "The FOOBAZ routine uses A3 as an accumulator." (1999-04-20) accuracy How close to the real value a measurement is. Compare {precision}. (1998-04-19) ACE 1. {Advanced Computing Environment}. 2. {Adaptive Communication Environment}. ACF {Advanced Communications Function} ACF/NCP {Advanced Communication Function/Network Control Program} ACIA {Asynchronous Communications Interface Adapter} ACID 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 Andy, Charles, Ian's System. A {geometric engine} that most {CAD} packages now use. ACIS uses a sophisticated {object-oriented} approach for modelling, the data is stored in {boundary representation}. Acis is owned by {Spatial Technologies}. [How does this differ from "solid modelling"?]. (1996-03-21) ACK 1. /ak/ The {mnemonic} for the ACKnowledge character, {ASCII} code 6. 2. A message transmitted to indicate that some data has been received correctly. Typically, if the sender does not receive the ACK message after some predetermined time, or receives a {NAK}, the original data will be sent again. (1997-01-07) ACL 1. {Access Control List}. 2. {Association for Computational Linguistics}. 3. A Coroutine Language. A {Pascal}-based implementation of {coroutine}s. ["Coroutines", C.D. Marlin, LNCS 95, Springer 1980]. (1994-11-08) ACM 1. The {Association for Computing}. 2. {addressed call mode}. (1997-05-07) ACME /ak'mee/ 1. A Company that Makes Everything. The {canonical} imaginary business. Possibly also derived from the word "acme" meaning "highest point". 2. A program for {MS-DOS}. [What does it do?] (1994-11-08) ACOM An early system on the {IBM 705}. [Listed in CACM 2(5):16 (May 1959)]. (1994-11-08) Acorn Archimedes {Archimedes} Acorn Computer Group A holding company for {Acorn Computers} Limited, Acorn Australia, Acorn New Zealand, Acorn GmbH and {Online Media}. Acorn Computer Group owns 43% of {Advanced RISC Machines} Ltd. (1994-11-08) Acorn Computers Ltd. A UK computer manufacturer, part of the {Acorn Computer Group} plc. Acorn was founded 5th December 1978, on a kitchen table in a back room. Their first creation was an electronic slot machine. After the {Acorn System 1}, 2 and 3, Acorn launched the first commercial {microcomputer} - the {ATOM} in March 1980. In April 1981, Acorn won a contract from the {BBC} to provide the {PROTON}. In January 1982 Acorn launched the {BBC Microcomputer} System. Seven out of ten microcomputers bought for UK schools were BBC Micros. The Acorn Computer Group went public on the Unlisted Securities Market in September 1983. In April 1984 Acorn won the Queen's Award for Technology for the BBC Micro and in September 1985 {Olivetti} took a controlling interest in Acorn. The {Master} 128 Series computers were launched in January 1986 and the BBC {Domesday} System in November 1986. In 1983 Acorn began to design the Acorn RISC Machine (ARM), the first low-cost, high volume {RISC} processor chip (later renamed the {Advanced RISC Machine}). In June 1987 they launched the {Archimedes} range - the first 32-bit {RISC} based {microcomputer}s - which sold for under UKP 1000. In February 1989 the R140 was launched. This was the first {Unix} {workstation} under UKP 4000. In May 1989 the A3000 (the new {BBC Microcomputer}) was launched. In 1990 Acorn formed {Advanced RISC Machines} Ltd. (ARM) in partnership with {Apple Computer, Inc.} and {VLSI} to develop the ARM processor. Acorn has continued to develop {RISC} based products. With 1992 revenues of 48.2 million pounds, Acorn Computers is the premier supplier of {information technology} products to UK education and has been the leading provider of 32-bit RISC based {personal computers} since 1987. Acorn works with industry partners, users and software developers to provide products for the education, consumer, publishing and international markets. {Usenet} newsgroups: {news:comp.sys.acorn}, {news:comp.sys.acorn.announce}, {news:comp.sys.acorn.tech}, {news:comp.binaries.acorn}, {news:comp.sources.acorn}, {news:comp.sys.acorn.advocacy}, {news:comp.sys.acorn.games}. {Acorn's FTP server (ftp://ftp.acorn.co.uk/)} E-mail: . {HENSA software archive (http://micros.hensa.ac.uk/micros/arch.html)}. {Richard Birkby's Acorn page (http://www.csv.warwick.ac.uk/~phudv/)}. {RiscMan's Acorn page (http://www.geko.com.au/riscman/)}. {Acorn On The Net (http://www.stir.ac.uk/~rhh01/Main.html)}. {"The Jungle" by Simon Truss (http://www.csc.liv.ac.uk/users/u1smt/u1smt.html)}. (1994-10-31) Acorn RISC Machine The original name of the {Advanced RISC Machine}. (1995-03-07) ACOS A {BBS} language for {PRODOS 8} on {Apple II}. {Macos} is a hacked version of ACOS. (1994-11-08) acoustic coupler A device used to connect a {modem} to a telephone line via an ordinary handset. The acoustic coupler converts electrical signals from the {modem} to sound via a loudspeaker, against which the mouthpiece of a telephone handset is placed. The earpiece is placed against a microphone which converts sound to electrical signals which return to the modem. The handset is inserted into a sound-proof box containing the louspeaker and microphone to avoid interference from ambient noise. Acousitic couplers are now rarely used since most modems have a direct electrical connection to the telephone line. This avoids the signal degradation caused by conversion to and from audio. Direct connection is not always possible, and was actually illegal in the United Kingdom before {British Telecom} was privatised. BT's predecessor, the General Post Office, did not allow subscribers to connect their own equipment to the telephone line. (1994-11-08) ACP {Algebra of Communicating Processes} ACPI {Advanced Configuration and Power Interface} Acrobat 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 An identifier formed from some of the letters (often the initials) of a phrase and used as an abbreviation. {This dictionary} contains a great many acronyms; see the contents page for a list. See also {TLA}. (1995-03-15) ACSE {Association Control Service Element} ACT 1. {Annual Change Traffic}. 2. {Ada Core Technologies}. (1999-06-24) ACT++ A {concurrent} extension of {C++} based on {actors}. ["ACT++: Building a Concurrent C++ With Actors", D.G. Kafura TR89-18, VPI, 1989]. (1994-11-08) Act1 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 An {actor} language. ["Issues in the Design of Act2", D. Theriault, TR728, MIT AI Lab, June 1983]. (1994-11-08) Act3 A high-level {actor} language by {Carl Hewitt}. A descendant of {Act2} which provides support for automatic generation of {customer}s and for {delegation} and {inheritance}. ["Linguistic Support of Receptionists for Shared Resources", C. Hewitt et al in Seminar on Concurrency, S.D. Brookes et al eds, LNCS 197, Springer 1985, pp. 330-359]. (1994-11-08) Actalk A {Smalltalk}-based {actor} language developed by J-P Briot in 1989. ["Actalk: A Testbed for Classifying and Designing Actor Languages in the Smalltalk-80 Environment", J-P. Briot, Proc ECOOP '89, pp. 109-129]. (1994-11-08) Actis An approach to integrated {CASE} by {Apollo}. (1994-11-08) activation record (Or "data frame", "stack frame") A data structure containing the variables belonging to one particular {scope} (e.g. a procedure body), as well as links to other activation records. Activation records are usually created (on the {stack}) on entry to a block and destroyed on exit. If a procedure or function may be returned as a result, stored in a variable and used in an outer scope then its activation record must be stored in a {heap} so that its variables still exist when it is used. Variables in the current {scope} are accessed via the {frame pointer} which points to the current activation record. Variables in an outer scope are accessed by following chains of links between activation records. There are two kinds of link - the {static link} and the {dynamic link}. (1995-03-07) active DBMS A conventional or passive {DBMS} combined with a means of event detection and condition monitoring. Event handling is often rule-based, as with an {expert system}. (1994-11-08) Active Language I An early interactive mathematics system for the {XDS 930} at the {University of California at Berkeley}. ["Active Language I", R. de Vogelaere in Interactive Systems for Experimental Applied Mathematics, A-P 1968]. (1994-11-08) active matrix display A type of {liquid crystal display} where each display element (each {pixel}) includes an active component such as a {transistor} to maintain its state between scans. Contrast {passive matrix display}. (1995-12-09) Active Monitor A process in an {IBM} {token ring} network which ensures a token is present on the ring, removes circulating frames with unknown or invalid destinations, and performs introductions between machines on the ring. (1996-06-18) active object 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 (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 (ASP) A {scripting} environment for {Microsoft Internet Information Server} in which you can combine {HTML}, scripts and reusable {ActiveX} {server} components to create dynamic {web pages}. IIS 4.0 includes scripting engines for {Microsoft Visual Basic} Scripting Edition ({VBScript}) and {Microsoft JScript}. {ActiveX} scripting engines for {Perl} and {REXX} are available through third-party developers. {ASP (http://www.microsoft.com/iis/guide/whatisasp.asp)}. {ASP in IIS 4 (http://www.microsoft.com/iis/guide/deploy.asp?A=2&B=4)}. (1998-02-10) ActiveX {Microsoft}'s answer to {Java}. ActiveX is a stripped down implementation of {OLE} designed to run over slow {Internet} links. {Home (http://www.microsoft.com/activex/)}. [Details?] (1998-03-10) ACT ONE A specification language. ["An Algebraic Specification Language with Two Levels of Semantics", H. Ehrig et al, Tech U Berlin 83-1983-02-03]. (1994-11-08) Actor An {object-oriented} language for {Microsoft Windows} written by Charles Duff of the {Whitewater Group} ca. 1986. It has {Pascal}/{C}-like {syntax}. Uses a {token-threaded} {interpreter}. {Early binding} is an option. ["Actor Does More than Windows", E.R. Tello, Dr Dobb's J 13(1):114-125 (Jan 1988)]. (1994-11-08) actor 1. In {object-oriented} programming, an {object} which exists as a {concurrent} process. 2. In {Chorus}, the unit of resource allocation. (1994-11-08) Actors A model for {concurrency} by {Carl Hewitt}. Actors are autonomous and concurrent {object}s which execute asynchronously. The Actor model provides flexible mechanisms for building parallel and distributed software systems. ["Laws for Communicating Parallel Processes", C. Hewitt et al, IFIP 77, pp. 987-992, N-H 1977]. ["ACTORS: A Model of Concurrent Computation in Distributed Systems", Gul A. Agha , Cambridge Press, MA, 1986]. (1995-06-12) actor/singer/waiter/webmaster An elaboration of the ages-old concept of the actor/singer/waiter, the actor/singer/waiter/webmaster is someone who waits tables /for now/, but who has aspirations of breaking into the glamorous worlds of acting or New Media or both! He keeps going to auditions and sending a resumes to {C|Net (http://www.cnet.com)} -- because you have to pay your dues. His credits include being on "Friends" (as an extra), in "ER" (actually, in an ER -- he twisted his ankle once; but he counts the x-rays as screen credits), and having been the webmaster of an extensive multimedia interactive Web site (his hotlist of "Simpsons" links). (1998-04-04) Actra A {multi-processor} {exemplar}-based {Smalltalk}. [LaLonde et al, OOPSLA '86]. (1994-11-08) Actus {Pascal} with parallel extensions, similar to the earlier {Glypnir}. It has parallel constants and {index set}s. Descendants include {Parallel Pascal}, {Vector C} and {CMU}'s language {PIE}. ["A Language for Array and Vector Processors," R.H. Perrott, ACM TOPLAS 1(2):177-195 (Oct 1979)]. (1994-11-08) AD {Administrative Domain} ad The {country code} for Andorra. (1999-01-26) Ada (After {Ada Lovelace}) A {Pascal}-descended language, designed by Jean Ichbiah's team at {CII Honeywell} in 1979, made mandatory for Department of Defense software projects by the Pentagon. The original language was standardised as "Ada 83", the latest is "{Ada 95}". Ada is a large, complex, {block-structured} language aimed primarily at {embedded} applications. It has facilities for {real-time} response, {concurrency}, hardware access and reliable run-time error handling. In support of large-scale {software engineering}, it emphasises {strong typing}, {data abstraction} and {encapsulation}. The type system uses {name equivalence} and includes both {subtype}s and {derived type}s. Both fixed and {floating-point} numerical types are supported. {Control flow} is fully bracketed: if-then-elsif-end if, case-is-when-end case, loop-exit-end loop, goto. Subprogram parameters are in, out, or inout. Variables imported from other packages may be hidden or directly visible. Operators may be {overloaded} and so may {enumeration} literals. There are user-defined {exception}s and {exception handler}s. An Ada program consists of a set of packages encapsulating data objects and their related operations. A package has a separately compilable body and interface. Ada permits {generic package}s and subroutines, possibly parametrised. Ada programming places a heavy emphasis on {multitasking}. Tasks are synchronised by the {rendezvous}, in which a task waits for one of its subroutines to be executed by another. The conditional entry makes it possible for a task to test whether an entry is ready. The selective wait waits for either of two entries or waits for a limited time. Ada is often criticised, especially for its size and complexity, and this is attributed to its having been designed by committee. In fact, both Ada 83 and Ada 95 were designed by small design teams to be internally consistent and tightly integrated. By contrast, two possible competitors, {Fortran 90} and {C++} have both become products designed by large and disparate volunteer committees. See also {Ada/Ed}, {Toy/Ada}. {Home of the Brave Ada Programmers (http://lglwww.epfl.ch/Ada/)}. {Ada FAQs (http://lglwww.epfl.ch/Ada/FAQ/)} (hypertext), {text only (ftp://lglftp.epfl.ch/pub/Ada/FAQ)}. {(http://wuarchive.wustl.edu/languages/ada/)}, {(ftp://ajpo.sei.cmu.edu/)}, {(ftp://stars.rosslyn.unisys.com/pub/ACE_8.0)}. E-mail: . {Usenet} newsgroup: {news:comp.lang.ada}. {An Ada grammar (ftp://primost.cs.wisc.edu/)} including a lex scanner and yacc parser is available. E-mail: , . Another {yacc} {grammar} and {parser} for {Ada} by Herman Fischer is {here (ftp://wsmr-simtel20.army.mil/PD2:GRAM2.SRC)}. An {LR parser} and {pretty-printer} for {Ada} from NASA is available from the {Ada Software Repository}. Michael Feldman referred to this package in comp.compilers, he also has a yacc grammar for ada. {Adamakegen} generates {makefile}s for {Ada} programs. ["Reference Manual for the Ada Programming Language", ANSI/MIL STD 1815A, US DoD (Jan 1983)]. Earlier draft versions appeared in July 1980 and July 1982. ISO 1987. (1995-01-23) Ada++ An {object-oriented} extension to {Ada}, implemented as an Ada {preprocessor}. Obsoleted by {Ada 95} which includes object-oriented features. (1995-09-19) Ada 83 The original {Ada}, as opposed to {Ada 95}. (1995-03-13) Ada 95 A revision and extension of {Ada} (Ada 83) begun in 1988 and completed in 1994-12-1 by a team lead by Tucker Taft of {Intermetrics}. The printed standard was expected to be available around 1995-02-15. Additions include {object-orientation} ({tagged type}s, {abstract type}s and {class-wide type}s), hierarchical libraries and synchronisation with shared data (protected types) similar to {Orca}. It lacks {multiple inheritance} but supports the construction of multiple inheritance type hierarchies through the use of {generic}s and {type composition}. {GNAT} aims to be a free implementation of Ada 95. You can get the standard from the {Ada Joint Program Office (http://wuarchive.wustl.edu/languages/ada/ajpo/index.shtml)}. E-mail: Chris Anderson (Ada 95 Project Manager). ["Introducing Ada 9X", J.G.P. Barnes, Feb 1993]. (1999-11-04) Ada 9X The working title for {Ada 95} before its adoption as an {ISO} {standard}. (1995-01-19) ADABAS A {relational database} system by {Software AG}. While it was initially designed for large {IBM} {mainframe} systems (e.g. {S/370} in the late 1970s), it has been ported to numerous other {platform}s over the last few years such as several flavors of {Unix} including {AIX}. ADABAS stores its data in tables (and is thus "relational") but also uses some non-relational techniques, such as {multiple value}s and {periodic group}s. (1995-10-30) Ada Core Technologies (ACT) The company that maintains {Gnat}. [Details? URL?] (1999-06-24) Ada/Ed 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 . {(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 Name given by Widrow to {adaptive linear neuron}s, that is {neuron}s (see {McCulloch-Pitts}) which learn using the {Widrow-Huff Delta Rule}. See also {Madaline}. (1995-03-14) Ada Lovelace (1811-1852) The daughter of Lord Byron, who became the world's first programmer while cooperating with {Charles Babbage} on the design of his mechanical computing engines in the mid-1800s. The language {Ada} was named after her. [{"Ada, Enchantress of Numbers Prophit of the Computer Age", Betty Alexandra Toole (http://www.well.com/user/adatoole)}]. [More details?] (1999-07-17) ADAM {A Data Management system} Adam7 One of the {interlacing} methods used in {PNG} {images}. Adam7, named after its author, Adam M. Costello, consists of seven distinct passes over the image. Each pass transmits a subset of the {pixels} in the image. The pass in which each pixel is transmitted is defined by replicating the following 8-by-8 pattern over the entire image, starting at the top left: 1 6 4 6 2 6 4 6 7 7 7 7 7 7 7 7 5 6 5 6 5 6 5 6 7 7 7 7 7 7 7 7 3 6 4 6 3 6 4 6 7 7 7 7 7 7 7 7 5 6 5 6 5 6 5 6 7 7 7 7 7 7 7 7 (1998-02-17) Adamakegen A program that generates {makefiles} for {Ada} programs. Adamakegen was written by Owen O'Malley . It requires {Icon} and runs under {Verdix} and {SunAda}. Current version as of 1993-03-02: 2.6.3. {Home (http://home.earthlink.net/~owenomalley/adamakegen.html)}. (1998-10-26) ADAMO A data management system written at CERN based on the {Entity-Relationship model}. (1995-03-14) Ada-O An {Ada} subset developed at the {University of Karlsruhe} in 1979, used for {compiler} {bootstrapping}. It lacks {overloading}, {derived type}s, {real number}s, tasks and {generic}s. ["Revised Ada-O Reference Manual", G. Persch et al, U Karlsruhe, Inst fur Infor II, Bericht Nr 9/81]. (1995-02-14) Adaplan A {functional database} language based upon {Backus}' {FP} language. [Erwig&Lipeck, Proc. DBPL-3, 1991]. (1995-05-07) Adaplex An extension of {Ada} for {functional database}s. ["Adaplex: Rationale and Reference Manual 2nd ed", J.M. Smith et al, Computer Corp America, Cambridge MA, 1983]. (1995-02-14) Ada Programming Support Environment (APSE) A program or set of programs to support software development in the Ada language. [Examples?] (1997-06-30) ADAPT A subset of {APT}. [Sammet 1969, p. 606]. (1995-02-14) Adaptable User Interface (AUI, Oracle Toolkit) A toolkit from {Oracle} allowing applications to be written which will be portable between different {windowing systems}. AUI provides one {call level interface} along with a resource manager and editor across a range of "standard" {GUI}s, including {Macintosh}, {Microsoft Windows} and the {X Window System}. (1995-03-16) Adaptec 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 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 A {C++} wrapper library for communications from the {University of California at Irvine}. (1995-03-16) Adaptive Digital Pulse Code Modulation (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 (Or "{Hebbian} learning") Learning where a system programs itself by adjusting weights or strengths until it produces the desired output. (1995-03-16) adaptive routing {dynamic routing} Adaptive Simulated Annealing (ASA) A language interface to a {neural net} simulator(?) by Lester Ingber . Version 1.53. {(ftp://ftp.caltech.edu/pub/ingber/)}. Mailing list: . (1993-11-14) Adaptive TRansform Acoustic Coding (ATRAC) An audio encoding {algorithm} which relies on the masking of low-amplitude frequency components by temporaly adjacent high-amplitude components. [Does Sony Minidisk use ATRAC or {ADPCM}?] (1998-12-10) Adaptor Automatic DAta Parallelism TranslatOR. A source to source transformation tool that transforms {data parallel} programs written in {Fortran 77} with {array} extensions, parallel loops, and layout directives to parallel programs with explicit {message passing}. ADAPTOR generates {Fortran 77} host and node programs with message passing. The new generated source codes have to be compiled by the compiler of the parallel computer. Version 1.0 runs on {CM-5}, {iPCS/860}, {Meiko CS1}/CS2, {KSR 1}, {SGI}, {Alliant} or a network of {Sun}s or {RS/6000}s. {(ftp://ftp.gmd.de/gmd/adaptor/adp_1.0.tar.Z)}. E-mail: Thomas Brandes . (1993-06-01) Ada Semantic Interface Specification (ASIS) An intermediate representation for {Ada}. E-mail: . See also {Diana}. (1995-02-15) Ada Software Repository A collection of {Ada} programs? {Home (http://wuarchive.wustl.edu/languages/ada/asr/)}. (1995-01-06) ADC {Analog to Digital Converter} ADCCP {Advanced Data Communications Control Protocol} A/D converter {Analog to Digital Converter} AD/Cycle 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 (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 A Depository of Development Documents. A {public domain} Software Engineering Environment from {GMD} developed as part of the {STONE} project. (1995-02-03) additive A function f : X -> Y is additive if for all Z <= X f (lub Z) = lub { f z : z in Z } (f "preserves {lub}s"). All additive functions defined over {cpo}s are {continuous}. ("<=" is written in {LaTeX} as {\subseteq}, "lub" as \sqcup ). (1995-02-03) address 1. {e-mail address}. 2. {Internet address}. 3. {MAC address}. 4. An unsigned integer used to select one fundamental element of storage, usually known as a {word} from a computer's {main memory} or other storage device. The {CPU} outputs addresses on its {address bus} which may be connected to an {address decoder}, {cache controller}, {memory management unit}, and other devices. While from a hardware point of view an address is indeed an integer most {strongly typed} programming languages disallow mixing integers and addresses, and indeed addresses of different data types. This is a fine example for {syntactic salt}: the compiler could work without it but makes writing bad programs more difficult. (1997-07-01) address bus The connections between the {CPU} and memory which carry the {address} from/to which the CPU wishes to read or write. The number of bits of address bus determines the maximum size of memory which the processor can access. See also {data bus}. (1995-03-22) addressed call mode (ACM) A mode that permits control signals and commands to establish and terminate calls in {V.25bis}. (1997-05-07) addressing mode 1. One of a set of methods for specifying the {operand}(s) for a {machine code} instruction. Different processors vary greatly in the number of addressing modes they provide. The more complex modes described below can usually be replaced with a short sequence of instructions using only simpler modes. The most common modes are "register" - the operand is stored in a specified {register}; "absolute" - the operand is stored at a specified memory address; and "{immediate}" - the operand is contained within the instruction. Most processors also have {indirect addressing} modes, e.g. "register indirect", "memory indirect" where the specified register or memory location does not contain the operand but contains its address, known as the "{effective address}". For an absolute addressing mode, the effective address is contained within the instruction. Indirect addressing modes often have options for pre- or post- increment or decrement, meaning that the register or memory location containing the {effective address} is incremented or decremented by some amount (either fixed or also specified in the instruction), either before or after the instruction is executed. These are very useful for {stack}s and for accessing blocks of data. Other variations form the effective address by adding together one or more registers and one or more constants which may themselves be direct or indirect. Such complex addressing modes are designed to support access to multidimensional arrays and arrays of data structures. The addressing mode may be "implicit" - the location of the operand is obvious from the particular instruction. This would be the case for an instruction that modified a particular control register in the CPU or, in a {stack} based processor where operands are always on the top of the stack. 2. In {IBM} {System 370}/{XA} the addressing mode bit controls the size of the {effective address} generated. When this bit is zero, the CPU is in the 24-bit addressing mode, and 24 bit instruction and operand effective addresses are generated. When this bit is one, the CPU is in the 31-bit addressing mode, and 31-bit instruction and operand effective addresses are generated. ["IBM System/370 Extended Architecture Principles of Operation", Chapter 5., 'Address Generation', BiModal Addressing]. (1995-03-30) address mask (Or "subnet mask") A {bit mask} used to identify which bits in an {IP address} correspond to the {network address} and {subnet} portions of the address. This mask is often referred to as the subnet mask because the network portion of the address can be determined by the {class} inherent in an IP address. The address mask has ones in positions corresponding to the network and subnet numbers and zeros in the host number positions. (1996-03-21) address resolution Conversion of an {Internet address} into the corresponding physical address ({Ethernet address}). This is usually done using {Address Resolution Protocol}. The {resolver} is a library routine and a set of processes which converts {hostnames} into {Internet addresses}, though this process in not usually referred to as {resolution}. See {DNS}. (1996-04-09) Address Resolution Protocol (ARP) A method for finding a {host}'s {Ethernet address} from its {Internet address}. The sender broadcasts an ARP {packet} containing the {Internet address} of another host and waits for it (or some other host) to send back its Ethernet address. Each host maintains a {cache} of address translations to reduce delay and loading. ARP allows the Internet address to be independent of the Ethernet address but it only works if all hosts support it. ARP is defined in {RFC 826}. The alternative for hosts that do not do ARP is {constant mapping}. See also {proxy ARP}, {reverse ARP}. (1995-03-20) address space 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 (AS) One of the input signals of a memory device, especially {semiconductor} memory, which is asserted to tell the memory device that the {address} inputs are valid. Upon receiving this signal the selected memory device starts the memory access (read/write) indicated by its other inputs. It may be driven directly by the {processor} or by a {memory controller}. (1996-10-02) ADELE 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 An early system on the {IBM 704}. Version: ADES II. [Listed in CACM 2(5):16 (May 1959)]. (1995-03-20) ad hoc Contrived purely for the purpose in hand rather than planned carefully in advance. E.g. "We didn't know what to do about the sausage rolls, so we set up an ad-hoc committee". (1995-03-25) ad-hockery /ad-hok'*r-ee/ (Purdue) 1. Gratuitous assumptions made inside certain programs, especially {expert system}s, which lead to the appearance of semi-intelligent behaviour but are in fact entirely arbitrary. For example, {fuzzy-matching} of input tokens that might be typing errors against a symbol table can make it look as though a program knows how to spell. 2. Special-case code to cope with some awkward input that would otherwise cause a program to fail, presuming normal inputs are dealt with in some cleaner and more regular way. Also called "ad-hackery", "ad-hocity" (/ad-hos'*-tee/), "ad-crockery". See also {ELIZA effect}. (1995-01-05) ad-hoc polymorphism {overloading} Aditi The Aditi Deductive Database System. A multi-user {deductive database} system from the Machine Intelligence Project at the {University of Melbourne}. It supports base {relation}s defined by {fact}s (relations in the sense of {relational database}s) and {derived relation}s defined by {rule}s that specify how to compute new information from old information. Both base relations and the rules defining derived relations are stored on disk and are accessed as required during query evaluation. The rules defining derived relations are expressed in a {Prolog}-like language, which is also used for expressing queries. Aditi supports the full structured data capability of Prolog. Base relations can store arbitrarily nested terms, for example arbitrary length lists, and rules can directly manipulate such terms. Base relations can be indexed with {B-tree}s or multi-level signature files. Users can access the system through a {Motif}-based query and database administration tool, or through a command line interface. There is also in interface that allows {NU-Prolog} programs to access Aditi in a transparent manner. Proper {transaction processing} is not supported in this release. The beta release runs on {SPARC}/{SunOS4}.1.2 and {MIPS}/{Irix}4.0. E-mail: . (1992-12-17) adjacency A relationship between two {network} devices, e.g. {routers}, which are connected by one media segment so that a packet sent by one can reach the other without going through another network device. The concept of adjacency is important in the exchange of routing information. Adjacent {SNA} {nodes} are nodes connected to a given node with no intervening nodes. In {DECnet} and {OSI}, adjacent nodes share a common segment ({Ethernet}, {FDDI}, {Token Ring}). (1998-03-10) adjacent {adjacency} ADL 1. {Adventure Definition Language}. 2. {Ada} Development Language. R.A. Lees, 1989. 3. {API} Definition Language. A project for Automatic Interface Test Generation. (1995-11-17) AdLog A language which adds a {Prolog} layer to {Ada}. ["AdLog, An Ada Components Set to Add Logic to Ada", G. Pitette, Proc Ada-Europe Intl Conf Munich, June 1988]. (1995-03-21) ADM A picture {query language}, extension of {Sequel2}. ["An Image-Oriented Database System", Y. Takao et al, in Database Techniques for Pictorial Applications, A. Blaser ed, pp. 527-538]. (1995-03-21) ADMD {Administration Management Domain} admin {system administrator} Administration Management Domain (ADMD) An {X.400} {Message Handling System} {public service carrier}. The ADMDs in all countries worldwide together provide the X.400 {backbone}. Examples: {MCImail} and {ATTmail} in the U.S., {British Telecom} {Gold400mail} in the U.K. See also {PRMD}. [RFC 1208]. (1997-05-07) administrative distance 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 (AD) A collection of {host}s and {router}s, and the interconnecting network(s), managed by a single administrative authority. (1994-11-24) admissible A description of a {search algorithm} that is guaranteed to find a minimal solution path before any other solution paths, if a solution exists. An example of an admissible search algorithm is {A* search}. (1999-07-19) Adobe Systems, Inc. A California {font} foundry and {software} house. Adobe created the {PostScript} {page description language} and wrote the {Blue Book}, {Green Book}, {Red Book} and {White Book} on it. They also developed {PDF}. Adobe took over {Frame Technology Corporation} in late 1995/early 1996. {Home (http://www.adobe.com/)}. E-mail: . Address: Silicon Valley, California, USA. (1996-12-13) Adobe Type Manager (ATM) Software that produces {PostScript} {outline fonts} on screen and paper. There are versions that run under {Microsoft Windows} and on the {Macintosh}. ATM can do {hinting}, {multiple master} and {anti-aliasing}. (1998-03-10) ADPCM {Adaptive Digital Pulse Code Modulation} ADS An {expert system}. ADSL {Asymmetric Digital Subscriber Line} ADSP {AppleTalk Data Stream Protocol} ADSU {ATM Data Service Unit} ADT {abstract data type} Advanced Communication Function/Network Control Program (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 (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 (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 (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 An {ANSI} {standard} {bit-oriented} {data link} control {protocol}. (1997-05-07) Advanced Encryption Standard (AES) The {NIST}'s replacement for the {Data Encryption Standard} (DES), planned for 2000 or 2001. [Details?] (1999-11-03) Advanced Function Presentation (AFP) A {page description language} from {IBM} introduced in 1984 initially as Advanced Function Printing. AFP was first developed for {mainframes} and then brought to {minicomputers} and {workstations}. It is implemented on the various {platforms} by {Print Services Facility} (PSF) software, which generates the {native} IBM printer language, {IPDS} and, depending on the version, {PostScript} and LaserJet {PCL} as well. IBM calls AFP a "printer architecture" rather than a page description language. Advanced Function Printing {Advanced Function Presentation} Advanced Intelligent Tape (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 (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. (AMD) The fifth-largest, US manufacturer of {integrated circuit}s, founded in 1969. AMD focuses on the personal and networked computation and communications market. They produce {microprocessor}s, {embedded processor}s and related peripherals, memories, {programmable logic device}s, circuits for telecommunications and networking applications. AMD has 12000 employees in the USA and elsewhere and manufacturing facilities in Austin, Texas; Aizu-Wakamatsu, Japan; Bangkok, Thailand; Penang, Malaysia; and Singapore. AMD made the {AMD 2900} series of {bit-slice} {TTL} components and make clones of the {Intel 80386} and {Intel 486} {microprocessor}s. {Home (http://www.amd.com/)} Address: Sunnyvale, CA, USA. (1995-02-27) Advanced Network Systems Architecture (ANSA) A "{software bus}" based on a model for distributed systems developed as an {ESPRIT} project. {Home (http://www.ansa.co.uk/)} (1996-04-01) Advanced Peer-to-Peer Networking (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 (APM) A feature of some displays, usually but not always, on {laptop computers}, which turns off power to the display after a preset period of inactivity to conserve electrical power. Monitors with this capability are usually refered to as "green monitors", meaning environmentally friendly. Not to be confused with a {screen blanker} which is {software} that causes the display to go black (by setting every {pixel} to black) to prevent {burn-in}. (1997-08-25) Advanced Program-to-Program Communications (APPC) An implementation of the {IBM} {SNA}/{SDLC} {LU6.2} {protocol} that allows interconnected systems to communicate and share the processing of programs. (1995-02-03) Advanced Research Projects Agency {Defense Advanced Research Projects Agency} Advanced Research Projects Agency Network (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 (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 (ARC, previously ARCS) The baseline hardware requirements for an {ACE}-compatible system. (1995-01-16) Advanced RISC Machine (ARM, Originally {Acorn} RISC Machine). A series of low-cost, power-efficient 32-bit {RISC} {microprocessors} for embedded control, computing, {digital signal processing}, {games}, consumer {multimedia} and portable applications. It was the first commercial RISC microprocessor (or was the {MIPS R2000}?) and was licensed for production by {Asahi Kasei Microsystems}, {Cirrus Logic}, {GEC Plessey Semiconductors}, {Samsung}, {Sharp}, {Texas Instruments} and {VLSI Technology}. The ARM has a small and highly {orthogonal} {instruction set}, as do most RISC processors. Every instruction includes a four-bit code which specifies a condition (of the {processor status register}) which must be satisfied for the instruction to be executed. Unconditional execution is specified with a condition "true". Instructions are split into load and store which access memory and arithmetic and logic instructions which work on {registers} (two source and one destination). The ARM has 27 registers of which 16 are accessible in any particular processor mode. R15 combines the {program counter} and processor status byte, the other registers are general purpose except that R14 holds the {return address} after a {subroutine} call and R13 is conventionally used as a {stack pointer}. There are four processor modes: user, {interrupt} (with a private copy of R13 and R14), fast interrupt (private copies of R8 to R14) and {supervisor} (private copies of R13 and R14). The {ALU} includes a 32-bit {barrel-shifter} allowing, e.g., a single-{cycle} shift and add. The first ARM processor, the ARM1 was a prototype which was never released. The ARM2 was originally called the Acorn RISC Machine. It was designed by {Acorn Computers Ltd.} and used in the original {Archimedes}, their successor to the {BBC Micro} and {BBC Master} series which were based on the eight-bit {6502} {microprocessor}. It was clocked at 8 MHz giving an average performance of 4 - 4.7 {MIPS}. Development of the ARM family was then continued by a new company, {Advanced RISC Machines Ltd.} The {ARM3} added a {fully-associative} on-chip {cache} and some support for {multiprocessing}. This was followed by the {ARM600} chip which was an {ARM6} processor {core} with a 4-kilobyte 64-way {set-associative} {cache}, an {MMU} based on the MEMC2 chip, a {write buffer} (8 words?) and a {coprocessor} interface. The {ARM7} processor core uses half the power of the {ARM6} and takes around half the {die} size. In a full processor design ({ARM700} chip) it should provide 50% to 100% more performance. In July 1994 {VLSI Technology, Inc.} released the {ARM710} processor chip. {Thumb} is an implementation with reduced code size requirements, intended for {embedded} applications. An {ARM800} chip is also planned. {AT&T}, {IBM}, {Panasonic}, {Apple Coputer}, {Matsushita} and {Sanyo} either rely on, or manufacture, ARM 32-bit processor chips. {Usenet} newsgroup: {news:comp.sys.arm}. (1997-08-05) Advanced RISC Machines Ltd. (ARM) A company formed in 1990 by {Acorn Computers} Ltd., {Apple Computer, Inc.} and {VLSI Technology} to market and develop the {Advanced RISC Machine} {microprocessor} family, originally designed by Acorn. ARM Ltd. also designs and licenses peripheral chips and supplies supporting software and hardware tools. In April 1993, Nippon Investment and Finance, a Daiwa Securities company, became ARM's fourth investor. In May 1994 Samsung became the sixth large company to have a licence to use the ARM processor core. The success of ARM Ltd. and the strategy to widen the availability of RISC technology has resulted in its chips now being used in a range of products including the {Apple Newton}. As measured by an independent authority, more ARM processors were shipped than {SPARC} chips in 1993. ARM has also sold three times more chips than the {PowerPC} consortium. {Home (http://www.systemv.com/armltd/index.html)} E-mail: armltd.co.uk. Address: Advanced RISC Machines Ltd. Fulbourn Road, Cherry Hinton, Cambridge CB1 4JN, UK. Telephone: +44 (1223) 400 400. Fax: +44 (1223) 400 410. (1994-11-03) Advanced SCSI Peripheral Interface (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 (ASE) An {object-oriented} {application support system} from {Nixdorf}. (1995-09-12) Advanced Technology Attachment (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 (ATA-2, Enhanced Integrated Drive Electronics, EIDE) A proposed (May 1996 or earlier?) {standard} from {X3T10} (document 948D rev 3) which extends the {Advanced Technology Attachment} interface while maintaining compatibility with current {IBM PC} {BIOS} designs. ATA-2 provides for faster data rates, 32-bit transactions and (in some drives) {DMA}. Optional support for power saving modes and removable devices is also in the standard. ATA-2 was developed by {Western Digital} as "Enhanced Integrated Drive Electronics" (EIDE) around 1994. {Marketroids} call it "Fast ATA" or "Fast ATA-2". ATA-2 was followed by {ATA-4} ("Ultra DMA"). [was there ATA-3?] (1998-10-08) Advanced WavEffect (AWE) The kind of synthesis used by the {EMU 8000} music synthesizer {integrated circuit} found on the {SB AWE32} card. (1996-12-15) ADVENT /ad'vent/ The prototypical computer {Adventure} game, first implemented by Will Crowther for a {CDC} computer (probably the 6600?) as an attempt at computer-refereed fantasy gaming. ADVENT was ported to the {PDP-10}, and expanded to the 350-point {Classic} puzzle-oriented version, by Don Woods of the {Stanford Artificial Intelligence Laboratory} (SAIL). The game is now better known as Adventure, but the {TOPS-10} {operating system} permitted only six-letter filenames. All the versions since are based on the SAIL port. David Long of the {University of Chicago} Graduate School of Business Computing Facility (which had two of the four {DEC20}s on campus in the late 1970s and early 1980s) was responsible for expanding the cave in a number of ways, and pushing the point count up to 500, then 501 points. Most of his work was in the data files, but he made some changes to the {parser} as well. This game defined the terse, dryly humorous style now expected in text adventure games, and popularised several tag lines that have become fixtures of hacker-speak: "A huge green fierce snake bars the way!" "I see no X here" (for some noun X). "You are in a maze of twisty little passages, all alike." "You are in a little maze of twisty passages, all different." The "magic words" {xyzzy} and {plugh} also derive from this game. Crowther, by the way, participated in the exploration of the Mammoth & Flint Ridge cave system; it actually *has* a "Colossal Cave" and a "Bedquilt" as in the game, and the "Y2" that also turns up is cavers' jargon for a map reference to a secondary entrance. See also {vadding}. [Was the original written in FORTRAN?] (1996-04-01) Adventure Definition Language (ADL) An {adventure} game language {interpreter} designed by Ross Cunniff and Tim Brengle in 1987. ADL is semi-{object-oriented} with {Lisp}-like {syntax} and is a superset of {DDL}. It is available for {Unix}, {MS-DOS}, {Amiga} and {Acorn} {Archimedes}. {(ftp://ftp.uu.net/usenet/comp.sources.games/volume2)}, {(ftp://ftp.wustl.edu/systems/amiga/fish/fish/f0/ff091)}. (1995-03-20) ADVSYS An {adventure} game language designed by David Betz in 1986. ADVSYS is {object-oriented} and {Lisp}-like. {(ftp://ftp.uu.net/usenet/comp.sources.games/volume2)} (1995-03-20) AE {Application Executive} ae The {country code} for the United Arab Emirates. (1999-01-27) AED {Automated Engineering Design} AEGIS A {Unix} variant that was used on {Apollo} {workstations} before Apollo was bought by {Hewlett Packard}. AEGIS has some advantages over standard {BSD} or {System V} Unix. It includes faster file access and a richer command set; there are commands to find out which {process} is running on a particular node, which process is locking a particular file, etc. (1997-02-25) Aegis A {CASE} tool for project change management, from the {GNU} project. (1995-03-27) Aeolus A {concurrent} language with {atomic transaction}s. ["Rationale for the Design of Aeolus", C. Wilkes et al, Proc IEEE 1986 Intl Conf Comp Lang, IEEE 1986, pp.107-122]. (1995-03-27) AEP {Application Environment Profile} aeroplane rule "Complexity increases the possibility of failure; a twin-engine aeroplane has twice as many engine problems as a single-engine aeroplane." By analogy, in both software and electronics, the implication is that simplicity increases robustness and that the right way to build reliable systems is to put all your eggs in one basket, after making sure that you've built a really *good* basket. While simplicity is a useful design goal, and twin-engine aeroplanes do have twice as many engine problems, the analogy is almost entirely bogus. Commercial passenger aircraft are required to have at least two engines (on different wings or nacelles) so that the aeroplane can land safely if one engine fails. As Albert Einstein said, "Everything should be made as simple as possible, but not simpler". See also {KISS Principle}. (1999-03-22) AES 1. {Application environment specification}. 2. {Advanced Encryption Standard}. (1999-11-03) AESOP {An Evolutionary System for On-line Programming} af The {country code} for Afghanistan. (1999-01-27) AFAC An early system on the {IBM 704}. [Listed in CACM 2(5):16 (May 1959)]. (1995-04-04) AFAIK as far as I know. affine transformation A {linear transformation} followed by a {translation}. Given a {matrix} M and a {vector} v, A(x) = Mx + v is a typical affine transformation. (1995-04-10) affordance A visual clue to the function of an object. (1998-10-15) AFIPS {American Federation of Information Processing Societies} AFJ {April Fool's Joke} AFK away from keyboard. aflex A {Lex}-like {scanner generator} that produce {Ada} output from IRUS (Irvine Research Unit in Software). aflex comes with {ayacc}. Version 1.2a. Mailing list: . {(ftp://liege.ics.uci.edu/pub/irus/aflex-ayacc_1.2a.tar.Z)} (1993-01-06) AFNOR Association Francaise pour la Normalisation. The French national {standard}s institute, a member of {ISO}. (1994-12-14) AFP 1. {Appletalk Filing Protocol}. 2. {Advanced Function Presentation}. (1998-06-28) AFS {Andrew File System} AFUU {Association Française des Utilisateurs d'Unix} ag The {country code} for Antigua and Barbuda. (1999-01-27) agent In the {client-server} model, the part of the system that performs information preparation and exchange on behalf of a {client} or {server}. Especially in the phrase "intelligent agent" it implies some kind of automatic process which can communicate with other agents to perform some collective task on behalf of one or more humans. (1995-04-09) aggregate type A data {type} composed of multiple elements. An aggregate can be homogeneous (all elements have the same type) e.g. an {array}, a list in a {functional language}, a string of characters, a file; or it can be heterogeneous (elements can have different types) e.g. a {structure}. In most languages aggregates can contain elements which are themselves aggregates. e.g. a list of lists. See also {union}. (1996-03-23) aggregation A composition technique for building a new {object} from one or more existing objects that support some or all of the new object's required interfaces. (1996-01-07) AGL (Atelier de Genie Logiciel) French for {IPSE}. (1997-01-07) AGM Theory for Belief Revision (After the initials of the authors who established the field - Alchourron, Makinson and Gardenfors). A method of {belief revision} giving minimal properties a revision process should have. [Reference?] (1995-03-20) AGORA A distributed {object-oriented language}. AGP {Accelerated Graphics Port} AGP graphics {Accelerated Graphics Port} A Hardware Programming Language (AHPL) A {register}-level language by Hill and Peterson, some of whose operators resemble {APL}. HPSIM2 is a function-level simulator, available from Engrg Expt Sta, {University of Arizona}. ["Digital Systems: Hardware Organization and Design", F. Hill et al, Wiley 1987]. (1995-01-26) AHDL {Analog Hardware Design Language} AHPL {A Hardware Programming Language} AI {artificial intelligence} ai The {country code} for Anguilla. (1999-01-27) AIA {Application Integration Architecture} AI-complete /A-I k*m-pleet'/ (MIT, Stanford: by analogy with "{NP-complete}") A term used to describe problems or subproblems in {artificial intelligence}, to indicate that the solution presupposes a solution to the "strong AI problem" (that is, the synthesis of a human-level intelligence). A problem that is AI-complete is, in other words, just too hard. See also {gedanken}. (1995-04-12) AID {Algebraic Interpretive Dialogue} AIDA 1. A {functional} dialect of {Dictionary APL} by M. Gfeller. ["APL Arrays and Their Editor", M. Gfeller, SIGPLAN Notices 21(6):18-27 (June 1986) and SIGAPL Conf Proc]. 2. An intermediate representation language for {Ada} developed at the {University of Karlsruhe} in 1980. AIDA was merged with {TCOL.Ada} to form {Diana}. ["AIDA Introduction and User Manual", M. Dausmann et al, U Karlsruhe, Inst fur Inform II, TR Nr 38/80]. ["AIDA Reference Manual", ibid, TR Nr 39/80, Nov 1980]. (1995-04-12) AIDS /aydz/ A* Infected Disk Syndrome ("A*" is a {glob} pattern that matches, but is not limited to, {Apple Computer}), this condition is quite often the result of practicing unsafe {SEX}. See {virus}, {worm}, {Trojan horse}, {virgin}. (1995-04-13) AIDX /aydkz/ A derogatory term for {IBM}'s perverted version of {Unix}, {AIX}, especially for the AIX 3.? used in the {IBM RS/6000} series (some hackers think it is funnier just to pronounce "AIX" as "aches"). A victim of the dreaded "hybridism" disease, this attempt to combine the two main currents of the Unix stream ({BSD} and {USG Unix}) became a monstrosity to haunt system administrators' dreams. For example, if new accounts are created while many users are logged on, the load average jumps quickly over 20 due to silly implementation of the user databases. For a quite similar disease, compare {HP-SUX}. Also, compare {Macintrash} {Nominal Semidestructor}, {Open DeathTrap}, {ScumOS}, {sun-stools}. (1995-04-13) AIFF {Audio IFF} AI International One of distributors of {Prolog++}, subsumed by {Customer Engagement Company} before December 1998. (1998-12-13) AI koan /A-I koh'an/ One of a series of pastiches of Zen teaching riddles created by {Danny Hillis} at the {MIT AI Lab} around various major figures of the Lab's culture. See also {ha ha only serious}, {mu}. In reading these, it is at least useful to know that {Marvin Minsky}, {Gerald Sussman}, and Drescher are {AI} researchers of note, that {Tom Knight} was one of the {Lisp machine}'s principal designers, and that {David Moon} wrote much of Lisp Machine Lisp. * * * A novice was trying to fix a broken Lisp machine by turning the power off and on. Knight, seeing what the student was doing, spoke sternly: "You cannot fix a machine by just power-cycling it with no understanding of what is going wrong." Knight turned the machine off and on. The machine worked. * * * One day a student came to Moon and said: "I understand how to make a better garbage collector. We must keep a reference count of the pointers to each cons." Moon patiently told the student the following story: "One day a student came to Moon and said: `I understand how to make a better garbage collector... [Pure reference-count garbage collectors have problems with circular structures that point to themselves.] * * * In the days when Sussman was a novice, Minsky once came to him as he sat hacking at the PDP-6. "What are you doing?", asked Minsky. "I am training a randomly wired neural net to play Tic-Tac-Toe", Sussman replied. "Why is the net wired randomly?", asked Minsky. "I do not want it to have any preconceptions of how to play", Sussman said. Minsky then shut his eyes. "Why do you close your eyes?", Sussman asked his teacher. "So that the room will be empty." At that moment, Sussman was enlightened. * * * A disciple of another sect once came to Drescher as he was eating his morning meal. "I would like to give you this personality test", said the outsider, "because I want you to be happy." Drescher took the paper that was offered him and put it into the toaster, saying: "I wish the toaster to be happy, too." (1995-02-08) AIMACO {AIr MAterial COmmand compiler} Aimnet An {Internet} {access provider} for individuals and corporations. They provide {dial-up}, {SLIP}, {PPP} and {shell account}s as well as {ISDN}. {Home (http://www.aimnet.com/)} Address: Cupertino, CA 95014, USA. Telephone: +1 (408) 253 0900 (1995-02-08) AIR 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 (AIMACO) A modification of {FLOW-MATIC}. AIMACO was supplanted by {COBOL}. [Sammet 1969, p. 378]. (1995-02-20) airplane rule {aeroplane rule} AIT {Advanced Intelligent Tape} AIX {Advanced Interactive eXecutive} AKC {Ascending Kleene Chain} AKCL {Austin Kyoto Common Lisp} AKL {Andorra Kernel Language} AL 1. {Assembly Language}. 2. {artificial life}. al The {country code} for Albania. (1999-01-27) Aladdin Systems The developers of the {stuffit} file archiving and {compression} utility for the {Macintosh}. (1995-03-01) ALADIN 1. {A Language for Attributed Definitions}. 2. An interactive mathematics system for the {IBM 360}. ["A Conversational System for Engineering Assistance: ALADIN", Y. Siret, Proc Second Symp Symb Algebraic Math, ACM Mar 1971]. (1995-04-13) ALAM A language for {symbolic mathematics}, especially General Relativity. See also {CLAM}. ["ALAM Programmer's Manual", Ray D'Inverno, 1970]. (1994-10-28) A-language An early {ALGOL}-like {surface syntax} for {Lisp}. ["An Auxiliary Language for More Natural Expression--The A-language", W. Henneman in The Programming Language LISP, E.C. Berkeley et al eds, MIT Press 1964, pp.239- 248]. (1994-10-28) A Language Encouraging Program Hierarchy (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 (ALADIN) A language for formal specification of {attributed grammar}s. ALADIN is the input language for the {GAG} compiler generator. It is {applicative} and {strongly typed}. ["GAG: A Practical Compiler Generator", Uwe Kastens et al, LNCS 141, Springer 1982]. (1995-04-14) A Language with an Extensible Compiler (ALEC) A language Implemented using {RCC} on an {ICL 1906A}. ["ALEC - A User Extensible Scientific Programming Language", R.B.E. Napper et al, Computer J 19(1):25-31]. (1995-04-19) Alan Kay The leader of the Software Concepts Group at {Xerox} {Palo Alto Research Centre} which developed {Smalltalk}, the pioneering {object-oriented programming} system, in 1972. (1994-11-24) Alan M. Turing {Alan Turing} Alan Turing Alan M. Turing, 22/3? June 1912 - 7 June 1954. A British mathematician, inventor of the {Turing Machine}. Turing also proposed the {Turing test}. Turing's work was fundamental in the theoretical foundations of computer science. Turing was a student and fellow of {King's College Cambridge} and was a graduate student at {Princeton University} from 1936 to 1938. While at Princeton Turing published "On Computable Numbers", a paper in which he conceived an {abstract machine}, now called a {Turing Machine}. Turing returned to England in 1938 and during World War II, he worked in the British Foreign Office. He masterminded operations at {Bletchley Park}, UK which were highly successful in cracking the Nazis "Enigma" codes during World War II. Some of his early advances in computer design were inspired by the need to perform many repetitive symbolic manipulations quickly. Before the building of the {Colossus} computer this work was done by a roomful of women. In 1945 he joined the {National Physical Laboratory} in London and worked on the design and construction of a large computer, named {Automatic Computing Engine} (ACE). In 1949 Turing became deputy director of the Computing Laboratory at Manchester where the {Manchester Automatic Digital Machine}, the worlds largest memory computer, was being built. He also worked on theories of {artificial intelligence}, and on the application of mathematical theory to biological forms. In 1952 he published the first part of his theoretical study of morphogenesis, the development of pattern and form in living organisms. Turing was gay, and died rather young under mysterious circumstances. He was arrested for violation of British homosexuality statutes in 1952. He died of potassium cyanide poisoning while conducting electrolysis experiments. An inquest concluded that it was self-administered but it is now thought by some to have been an accident. There is an excellent biography of Turing by Andrew Hodges, subtitled "The Enigma of Intelligence" and a play based on it called "Breaking the Code". There was also a popular summary of his work in Douglas Hofstadter's book "Gödel, Escher, Bach". (1999-02-04) A-law The {ITU-T} {standard} for {nonuniform quantising logarithmic compression}. The equation for A-law is | A | ------- (m/mp) |m/mp| =< 1/A | 1+ln A y = | | sgn(m) | ------ (1 + ln A|m/mp|) 1/A =< |m/mp| =< 1 | 1+ln A Values of u=100 and 255, A=87.6, mp is the Peak message value, m is the current quantised message value. (The formulae get simpler if you substitute x for m/mp and sgn(x) for sgn(m); then -1 <= x <= 1.) Converting from {u-LAW} to A-LAW introduces {quantising errors}. u-law is used in North America and Japan, and A-law is used in Europe and the rest of the world and international routes. [The Audio File Formats FAQ] (1995-02-21) ALC 1. {Assembly Language Compiler}. 2. {Airline Line Control}. (1997-02-05) Alcool-90 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: . (1995-04-18) ALCOR A subset of {ALGOL}. [Sammet 1969, p. 180]. (1995-04-18) Aldat A {database} language, based on {extended algebra}. [Listed by M.P. Atkinson & J.W. Schmidt in a tutorial in Zurich, 1989]. (1995-04-19) ALDES {ALgorithm DEScription} ALDiSP {Applicative Language for Digital Signal Processing} ALEC {A Language with an Extensible Compiler} ALEF A programming language from {Bell Labs}. ALEF boasts few new ideas but is instead a careful synthesis of ideas from other languages. The result is a practical general purpose programming language which was once displacing {C} as their main implementation language. Both {shared variables} and {message passing} are supported through language constructs. A {window system}, {user interface}, {operating system} network code, {news reader}, {mailer} and variety of other tools in {Plan 9} are now implemented using ALEF. (1997-02-13) ALEPH 1. {A Language Encouraging Program Hierarchy}. 2. A system for formal {semantics} written by Peter Henderson ca. 1970. [CACM 15(11):967-973 (Nov 1972)]. (1994-12-15) Aleph ["Aleph: A language for typesetting", Luigi Semenzato and Edward Wang in Proceedings of Electronic Publishing, 1992 Ed. Vanoirbeek & Coray Cambridge University Press 1992]. (1994-12-15) aleph 0 The {cardinality} of the first {infinite} {ordinal}, {omega} (the number of {natural numbers}). Aleph 1 is the cardinality of the smallest {ordinal} whose cardinality is greater than aleph 0, and so on up to aleph omega and beyond. These are all kinds of {infinity}. The {Axiom of Choice} (AC) implies that every set can be {well-ordered}, so every {infinite} {cardinality} is an aleph; but in the absence of AC there may be sets that can't be well-ordered (don't posses a {bijection} with any {ordinal}) and therefore have cardinality which is not an aleph. These sets don't in some way sit between two alephs; they just float around in an annoying way, and can't be compared to the alephs at all. No {ordinal} possesses a {surjection} onto such a set, but it doesn't surject onto any sufficiently large ordinal either. (1995-03-29) alert /*'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 1. A {polymorphic} language being developed by Stephen Crawley of Defence Science & Tech Org, Australia. Alex has {abstract data type}s, {type inference} and {inheritance}. 2. An {ISWIM}-like language with {exception handling}. ["An Exception Handling Construct for Functional Languages", M. Brez et al, in Proc ESOP88, LNCS 300, Springer 1988]. 3. A {scanner generator}. {Alexis} is its input language. ["Alex: A Simple and Efficient Scanner Generator", H. Mossenbock, SIGPLAN Notices 21(5), May 1986]. (1994-12-15) Alexis Alex Input Specification. The input language for the {scanner generator} {Alex}. (1995-04-23) ALF {Algebraic Logic Functional language} Alfl A lazy function language. A {weakly typed}, {lazy} {functional language} developed by Paul Hudak of Yale in 1983. Alfl is implemented as a {Scheme} {preprocessor} for the {Orbit} compiler, by transforming laziness into {force}-and-{delay}. ["Alfl Reference Manual and Programmer's Guide", P. Hudak, YALEU/DCS/RR322, Yale U, Oct 1984]. See also {ParAlfl}. (1995-04-24) algebra 1. A loose term for an {algebraic structure}. 2. A {vector space} that is also a {ring}, where the vector space and the ring share the same addition operation and are related in certain other ways. An example algebra is the set of 2x2 {matrices} with {real numbers} as entries, with the usual operations of addition and matrix multiplication, and the usual {scalar} multiplication. Another example is the set of all {polynomials} with real coefficients, with the usual operations. In more detail, we have: (1) an underlying {set}, (2) a {field} of {scalars}, (3) an operation of scalar multiplication, whose input is a scalar and a member of the underlying set and whose output is a member of the underlying set, just as in a {vector space}, (4) an operation of addition of members of the underlying set, whose input is an {ordered pair} of such members and whose output is one such member, just as in a vector space or a ring, (5) an operation of multiplication of members of the underlying set, whose input is an ordered pair of such members and whose output is one such member, just as in a ring. This whole thing constitutes an `algebra' iff: (1) it is a vector space if you discard item (5) and (2) it is a ring if you discard (2) and (3) and (3) for any scalar r and any two members A, B of the underlying set we have r(AB) = (rA)B = A(rB). In other words it doesn't matter whether you multiply members of the algebra first and then multiply by the scalar, or multiply one of them by the scalar first and then multiply the two members of the algebra. Note that the A comes before the B because the multiplication is in some cases not commutative, e.g. the matrix example. Another example (an example of a {Banach algebra}) is the set of all {bounded} {linear operators} on a {Hilbert space}, with the usual {norm}. The multiplication is the operation of {composition} of operators, and the addition and scalar multiplication are just what you would expect. Two other examples are {tensor algebras} and {Clifford algebras}. [I. N. Herstein, "Topics_in_Algebra"]. (1999-07-14) ALGEBRAIC An early system on {MIT}'s {Whirlwind}. [CACM 2(5):16 (May 1959)]. (1995-01-24) algebraic In {domain theory}, a {complete partial order} is algebraic if every element is the {least upper bound} of some {chain} of {compact} elements. If the set of compact elements is {countable} it is called {omega-algebraic}. [Significance?] (1995-04-25) algebraic data type (Or "sum of products type") In {functional programming}, new types can be defined, each of which has one or more {constructor}s. Such a type is known as an algebraic data type. E.g. in {Haskell} we can define a new type, "Tree": data Tree = Empty | Leaf Int | Node Tree Tree with constructors "Empty", "Leaf" and "Node". The constructors can be used much like functions in that they can be (partially) applied to arguments of the appropriate type. For example, the Leaf constructor has the functional type Int -> Tree. A constructor application cannot be reduced (evaluated) like a function application though since it is already in {normal form}. Functions which operate on algebraic data types can be defined using {pattern matching}: depth :: Tree -> Int depth Empty = 0 depth (Leaf n) = 1 depth (Node l r) = 1 + max (depth l) (depth r) The most common algebraic data type is the list which has constructors Nil and Cons, written in Haskell using the special syntax "[]" for Nil and infix ":" for Cons. Special cases of algebraic types are {product type}s (only one constructor) and {enumeration type}s (many constructors with no arguments). Algebraic types are one kind of {constructed type} (i.e. a type formed by combining other types). An algebraic data type may also be an {abstract data type} (ADT) if it is exported from a {module} without its constructors. Objects of such a type can only be manipulated using functions defined in the same {module} as the type itself. In {set theory} the equivalent of an algebraic data type is a {discriminated union} - a set whose elements consist of a tag (equivalent to a constructor) and an object of a type corresponding to the tag (equivalent to the constructor arguments). (1994-11-23) Algebraic Interpretive Dialogue (AID) A version of {Joss} II for the {PDP-10}. ["AID (Algebraic Interpretive Dialogue)", DEC manual, 1968]. (1995-04-12) Algebraic Logic Functional language (ALF) A language by Rudolf Opalla which combines {functional programming} and {logic programming} techniques. ALF is based on {Horn clause} logic with equality which consists of {predicate}s and Horn clauses for {logic programming}, and functions and equations for {functional programming}. Any functional expression can be used in a {goal} literal and arbitrary predicates can occur in conditions of equations. ALF uses {narrowing} and {rewriting}. ALF includes a compiler to {Warren Abstract Machine} code and {run-time support}. {(ftp://ftp.germany.eu.net/pub/programming/languages/LogicFunctional)} ["The Implementation of the Functional-Logic Language ALF", M. Hanus and A. Schwab]. (1992-10-08) Algebraic Manipulation Package (AMP) A {symbolic mathematics} program written in {Modula-2}, seen on {CompuServe}. (1994-10-19) Algebraic Specification Language 1. (ASL) ["Structured Algebraic Specifications: A Kernel Language", M. Wirsing, Theor Comput Sci 42, pp.123-249, Elsevier 1986]. 2. (ASF) A language for equational specification of {abstract data types}. ["Algebraic Specification", J.A. Bergstra et al, A-W 1989]. (1995-12-13) algebraic structure Any formal mathematical system consisting of a set of objects and operations on those objects. Examples are {Boolean algebra}, numerical algebra, set algebra and matrix algebra. [Is this the most common name for this concept?] (1997-02-25) Algebra of Communicating Processes (ACP) Compare {CCS}. ["Algebra of Communicating Processes with Abstraction", J.A. Bergstra & J.W. Klop, Theor Comp Sci 37(1):77-121 1985]. [Summary?] (1994-11-08) ALGOL {ALGOL 60} ALGOL 58 An early version of {ALGOL 60}, originally known as "{IAL}". ["Preliminary report - International Algebraic Language", CACM 1(12):8, 1958]. [Details? Relationship to ALGOL 60?] (1997-03-05) ALGOL 60 ALGOrithmic Language 1960. A portable language for scientific computations. ALGOL 60 was small and elegant. It was {block-structured}, nested, {recursive} and {free form}. It was also the first language to be described in {BNF}. There were three {lexical} representations: hardware, reference, and publication. The only structured data types were {arrays}, but they were permitted to have lower bounds and could be dynamic. It also had {conditional expressions}; it introduced :=; if-then-else; very general "for" loops; switch declaration (an array of statement labels generalising {FORTRAN}'s {computed goto}). Parameters were {call-by-name} and {call-by-value}. It had {static} local "own" variables. It lacked user-defined types, character manipulation and {standard I/O}. See also {EULER}, {ALGOL 58}, {ALGOL 68}, {Foogol}. ["Report on the Algorithmic Language ALGOL 60", Peter Naur ed., CACM 3(5):299-314, May 1960]. (1995-01-25) ALGOL 60 Modified ["A Supplement to the ALGOL 60 Revised Report", R.M. DeMorgan et al, Computer J 19(4):364]. [SIGPLAN Notices 12(1) 1977]. An erratum in [Computer J 21(3):282 (Aug 1978)] applies to both. (1995-01-25) ALGOL 60 Revised (Or "Revised ALGOL 60") A revision of {Algol 60} which still lacked {standard I/O}. ["Revised Report on the Algorithmic Language ALGOL 60", Peter Naur ed, CACM 6(1):1-17 (Jan 1963)]. [Sammet 1969, p.773]. (1995-01-25) ALGOL 68 An extensive revision of {ALGOL 60} by Adriaan van Wijngaarden et al. ALGOL 68 was discussed from 1963 by Working Group 2.1 of {IFIP}. Its definition was accepted in December 1968. ALGOL 68 was complex, and posed difficulties for both implementors and users. It featured {structural equivalence}; automatic type conversion ("{coercion}") including {dereferencing}; {flexible arrays}; generalised loops (for-from-by-to-while-do-od), if-then-elif-fi, an integer case statement with an 'out' clause; {skip} and {goto} statements; blocks; procedures; user-defined operators; {procedure parameters}; {concurrent} execution (cobegin/coend); {semaphores}; generators "heap" and "loc" for {dynamic allocation}. It had no {abstract data types} or {separate compilation}. (1995-05-01) ALGOL 68C A variant of {ALGOL 68} developed by S. Bourne and Mike Guy of {Cambridge University} in 1975 and used as the implementation language for the {CHAOS} OS for the {CAP} {capability} computer. ALGOL 68C was ported to the {IBM 360}, {VAX}/{VMS}, and several other {platforms}. (1995-05-02) ALGOL 68-R A restriction of {ALGOL 68} permitting {one-pass compilation}, developed at the Royal Signals Radar Establishment, Malvern, Worcester, UK in April 1970. {Identifiers}, modes and operators must be declared before use. There is no {automatic proceduring} and no {concurrency}. It was implemented in {ALGOL 60} under {GEORGE 3} on an {ICL 1907F}. ["ALGOL 68-R, Its Implementation and Use", I.F. Currie et al, Proc IFIP Congress 1971, N-H 1971, pp. 360-363]. (1995-05-03) ALGOL 68 Revised A significant simplification of {ALGOL 68}. ["Revised Report on the Algorithmic Language ALGOL 68," A. Van Wijngaarden et al, Acta Informatica 5:1-236, 1975, also Springer 1976, and SIGPLAN Notices 12(5):1-70, May 1977]. (1995-05-03) ALGOL 68RS An extension of {ALGOL 68} supporting {function closures} by the Royal Signals Radar Establishment, Malvern UK. It has been ported to {Multics} and {VAX}/{VMS}. (1995-05-04) ALGOL 68S A subset of {ALGOL 68} allowing simpler compilation, intended mainly for numerical computation. It was rewritten in {BLISS} for the {PDP-11}, and later in {Pascal}. It is available as {shareware} from Charles Lindsey . Version 2.3 runs on {Sun3} under {SunOS} 4.x and {Atari} under {GEMDOS} (or potentially other computers supported by the {Amsterdam Compiler Kit}). ["A Sublanguage of ALGOL 68", P.G. Hibbard, SIGPLAN Notices 12(5), May 1977]. (1995-05-04) ALGOL C A variant of {ALGOL 60} developed by Clive Feather of {Cambridge University} ca. 1981. ALGOL C added {structures} and {exception} handling. It was designed for beginners and students. (1994-11-24) ALGOL D ["A Proposal for Definitions in ALGOL", B.A. Galler et al, CACM 10:204-219, 1967]. ALGOL N A successor to {ALGOL 60} proposed by Yoneda. (1994-11-24) ALGOL W A derivative of {ALGOL 60}. It introduced {double precision}, {complex numbers}, bit strings and dynamic data structures. It is parsed entirely by {operator precedence} and used the {call-by-value-result} calling convention. ["A Contribution to the Development of Algol", N. Wirth, CACM 9(6):413-431, June 1966]. ["ALGOL W Implementation", H. Bauer et al, TR CS98, Stanford U, 1968]. (1994-11-24) ALGOL X A proposed successor to {ALGOL 60}, a "short-term solution to existing difficulties". Three designs were proposed, by {Wirth}, Seegmuller and van Wijngaarden. [Sammet 1969, p. 194]. (1995-05-07) ALGOL Y A proposed successor to {ALGOL 60}, a "radical reconstruction". Originally a language that could manipulate its own programs at {run-time}, it became a collection of features that were not accepted for {ALGOL X}. (1995-05-09) algorithim It's spelled "{algorithm}". (1997-02-25) algorithm A detailed sequence of actions to perform to accomplish some task. Named after an Iranian mathematician, Al-Khawarizmi. Technically, an algorithm must reach a result after a {finite} number of steps, thus ruling out {brute force} search methods for certain problems, though some might claim that brute force search was also a valid (generic) algorithm. The term is also used loosely for any sequence of actions (which may or may not terminate). (1996-04-06) ALgorithm DEScription (ALDES) ["The Algorithm Description Language ALDES", R.G.K. Loos, SIGSAM Bull 14(1):15-39 (Jan 1976)]. (1995-04-19) ALgorIthmic ASsembly language (ALIAS) A machine oriented variant of {BLISS}. ALIAS was implemented in {BCPL} for the {PDP-9}. ["ALIAS", H.E. Barreveld, Int Rep, Math Dept, Delft U Tech, Netherlands, 1973]. (1997-03-13) Algorithmic Language {Algol 60} Algorithmic Model A method of estimating software cost using mathematical {algorithms} based on the parameters which are considered to be the major cost drivers. These estimate of effort or cost are based primarily on the size of the software or {Delivered Source Instructions} (DSI)s, and other productivity factors known as {Cost Driver Attributes}. See also {Parametric Model}. (1996-05-28) Algorithmic Processor Description Language (APDL) An {ALGOL 60}-like language for describing computer design, for the {CDC G-21}. ["The Description, Simulation, and Automatic Implementation of Digital Computer Processors", J.A. Darringer, Ph.D Thesis EE Dept, CMU May 1969]. (1995-11-26) Algorithmic Test Case Generation A computational method for identifying test cases from data, logical relationships or other software {requirements} information. (1996-05-10) ALGY An early language for {symbolic mathematics}. [Sammet 1969, p. 520]. (1995-04-12) ALIAS {ALgorIthmic ASsembly language} alias 1. A name, usually short and easy to remember and type, that is translated into another name or string, usually long and difficult to remember or type. Most {command interpreters} (e.g. {Unix}'s {csh}) allow the user to define aliases for commands, e.g. "alias l ls -al". These are loaded into memory when the interpreter starts and are expanded without needing to refer to any file. 2. One of several alternative {hostnames} with the same {Internet address}. E.g. in the {Unix} {hosts} database (/etc/hosts or {NIS} map) the first field on a line is the {Internet address}, the next is the official hostname (the "{canonical} name" or "{CNAME}") and any others are aliases. Hostname aliases often indicate that the host with that alias provides a particular network service such as {archie}, {finger}, {FTP}, or {World-Wide Web}. The assignment of services to 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. 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. 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. (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 A parallel {graph rewriting} computer developed by {Imperial College}, {University of Edinburgh} and {ICL}. (1995-01-19) alife {artificial life} A-Life {artificial life} ALJABR An implementation of {MACSYMA} for the {Macintosh} by {Fort Pond Research}. E-mail: . (1995-02-21) Allegro The code name for the major {Mac OS} release due in mid-1998. {(http://devworld.apple.com/mkt/informed/appledirections/mar97/roadmap.html)}. (1997-10-15) all-elbows Said of a {TSR} (terminate-and-stay-resident) {mess-dos} program, such as the N pop-up calendar and calculator utilities that circulate on {BBS} systems: unsociable. Used to describe a program that {rude}ly steals the resources that it needs without considering that other TSRs may also be resident. One particularly common form of rudeness is lock-up due to programs fighting over the keyboard interrupt. (1995-02-21) ALLIANCE A complete set of {CAD} tools for teaching Digital {CMOS} {VLSI} Design in Universities. It includes a {VHDL} compiler and simulator, {logic synthesis} tools, and automatic place and route tools. ALLIANCE is the result of a ten years effort at University Pierre et Marie Curie (PARIS VI, France). It runs on {Sun4}, not well supported: {MIPS}/{Ultrix}, {386}/{SystemV}. Current version: 1.1 (as of 1993-02-16). {(ftp://ftp-masi.ibp.fr/pub/cao-vlsi/alliance)}. Mailing list: . E-mail: . (1993-02-16) ALLOY A language by Thanasis Mitsolides which combines {functional programming}, {object-oriented programming} and {logic programming} ideas, and is suitable for {massively parallel} systems. Evaluating modes support serial or parallel execution, {eager evaluation} or {lazy evaluation}, {nondeterminism} or multiple solutions etc. ALLOY is simple as it only requires 29 primitives in all (half of which are for {object oriented programming} support). It runs on {SPARC}. {(ftp://cs.nyu.edu/pub/local/alloy/)}. ["The Design and Implementation of ALLOY, a Parallel Higher Level Programming Language", Thanasis Mitsolides , PhD Thesis NYU 1990]. (1991-06-11) ALM {Assembly Language for Multics} Aloha (From the Hawaiian greeting) A system of {contention resolution} devised at The {University of Hawaii}. {Packets} are {broadcast} when ready, the sender listens to see if they collide and if so re-transmits after a random time. {Slotted Aloha} constrains packets to start at the beginning of a time slot. Basic Aloha is appropriate to long propagation time nets (e.g. satellite). For shorter propagation times, {carrier sense} {protocols} are possible. (1995-12-10) Aloha Net (From the Hawaiian greeting) One of the first functioning {networks} in the USA, conceived and implimented at the {University of Hawaii} campus at Manoa. Its purpose was to link the University {mainframe} computer to client computers located on outer islands at University campuses. Put in place in the early 1970s, it was dubed the Aloha Net. {Key punch} cards were fed through a reader, and sent over the commercial phone lines. (1995-12-10) Alonzo Church A twentieth century mathematician and logician, and one of the founders of computer science. Church invented the {lambda-calculus} and posited a version of the {Church-Turing thesis}. (1995-03-25) ALP A {list processing} extension of {Mercury Autocode}. ["ALP, An Autocode List-Processing Language", D.C. Cooper et al, Computer J 5:28-31, 1962]. (1995-01-24) ALPAK A subroutine package used by {ALTRAN}. ["The ALPAK System for Nonnumerical Algebra on a Digital Computer", W.S. Brown, Bell Sys Tech J 42:2081, 1963]. [Sammet 1969, p. 502]. (1995-05-10) ALPHA (Or "Input") An extension of {ALGOL 60} for the {M-20} computer developed by A.P. Ershov at Novosibirsk in 1961. ALPHA includes {matrix} operations, {slices}, and complex arithmetic. ["The Alpha Automatic Programming System", A.P. Ershov ed., A-P 1971]. (1995-05-10) Alpha 1. A {compiler generator} written by Andreas Koschinsky and described in his thesis at the {Technische Universitaet Berlin}. Alpha takes an {attribute grammar} and uses {Bison} and {Flex} to generate a {parser}, a {scanner} and an {ASE evaluator} (Jazayeri and Walter). The documentation is in german. (1993-02-16) 2. {DEC Alpha}. (1995-05-10) Alpha AXP 21164 A 1 {GIPS} version of the {DEC Alpha} processor. The first commercially available sequential 1 GIPS processor. Announced 1994-09-7. {(http://www.digital.com/info/semiconductor/dsc-21164.html)} (1995-05-10) alpha/beta pruning An optimisation of the {minimax} {algorithm} for choosing the next move in a two-player game. The position after each move is assigned a value. The larger this value, the better the position is for me. Thus, I will choose moves with maximum value and you will choose moves with minimum value (for me). If it is my move and I have already found one move M with value alpha then I am only interested in other moves with value greater than alpha. I now consider another of my possible moves, M', to which you could reply with a move with value beta. I know that you would only make a different reply if it had a value less than beta. If beta is already less than alpha then M' is definitely worth less than M so I can reject it without considering any other replies you might make. The same reasoning applies when considering my replies to your reply. An alpha cutoff is when your reply gives a lower value than the current maximum (alpha) and a beta cutoff is when my reply to your reply gives a higher value than the current minimum value of your reply (beta). In short, if you've found one possible move, you need not consider another move which your opponent can force to be worse than the first one. (1997-05-05) alpha conversion In {lambda-calculus} and {reduction}, the renaming of a {formal parameter} in a {lambda abstraction}. This does not change the meaning of the abstraction. For example: \ x . x+1 <--> \ y . y+1 If the {actual argument} to a lambda abstraction contains instances of the abstraction's formal parameter then it is necessary to rename the parameter before applying the abstraction to avoid {name capture}. (1995-05-10) Alpha EV6 {EV6} Alpha Geek The head {geek} or geek's geek. When no one else knows the answer, or several techno-types give conflicting advise, or the error message says "consult your administrator" and you *are* the administrator, you ask the Alpha Geek. (1997-06-25) alphanumeric A decimal digit or a letter (upper or lower case). Typically, "letters" means only English letters ({ASCII} A-Z plus a-z) but it may also include non-English letters in the Roman alphabet, e.g., e-{acute}, c-{cedilla}, the {thorn letter}, and so on. Perversely, it may also include the {underscore} character in some contexts. (1997-09-11) alpha particle {bit rot} Alphard (Named after the brightest star in Hydra) A {Pascal}-like language developed by Wulf, Shaw and London of {CMU} in 1974. Alphard supports {data abstraction} using the 'form', which combines a specification and an implementation. ["Abstraction and Verification in Alphard: Defining and Specifying Iteration and Generators", Mary Shaw, CACM 20(8):553-563, Aug 1977]. (1995-05-10) alpha testing Testing of software at the developer's site by the customer. The stage before {beta testing}. (1996-05-10) ALPS 1. An early interpreted {algebraic language} for the {Bendix G15} by Richard V. Andree of the {University of Oklahoma}. ALPS is said to have preceded and influenced development of {BASIC}. Dale Peters reports that in the summer of 1966 he attended the second year of an {NSF}-sponsored summer institute in mathematics and computing at the University of Oklahoma. Richard Andree taught the computing class which mostly used the language GO-GO which was later renamed ALPS. Andree, Harold Wiebe, Ralph Howenstein, and another grad student were changing the language frequently during the class, which was occasionally a little disorienting. Dale believes it was used in the previous summer as well and that it was about this time that Kemeny (one of the designers of BASIC) saw it during a visit. 2. A parallel {logic language}. ["Synchronization and Scheduling in ALPS Objects", P. Vishnubhotia, Proc 8th Intl Conf Distrib Com Sys, IEEE 1988, pp. 256-264]. (1994-11-24) alt /awlt/ 1. The alt {modifier key} on many {keyboards}, including the {IBM PC}. On some keyboards and {operating systems}, (but not the IBM PC) the alt key sets bit 7 of the character generated. See {bucky bits}. 2. The "{clover}" or "Command" key on a {Macintosh}; use of this term usually reveals that the speaker hacked PCs before coming to the Mac (see also {feature key}). Some Mac hackers, confusingly, reserve "alt" for the Option key (and it is so labelled on some Mac II keyboards). 3. (Obsolete {PDP-10}; often "ALT") An alternate name for the {ASCII} ESC character (Escape, ASCII 27), after the keycap labelling on some older {terminals}; also "altmode" (/awlt'mohd/). This character was almost never pronounced "escape" on an {ITS} system, in {TECO} or under {TOPS-10}, always alt, as in "Type alt alt to end a TECO command" or "alt-U onto the system" (for "log onto the [ITS] system"). This usage probably arose because alt is easier to say. 4. One of the {Usenet} {newsgroup} {hierarchies}. It was founded by {John Gilmore} and {Brian Reid}. The alt hierarchy is special in that anyone can create new groups here without going though the normal voting proceduers, hence the regular appearence of new groups with names such as "alt.swedish.chef.bork.bork.bork". (1997-04-12) ALTAC An extended {FORTRAN II} for the {Philco 2000}, built on {TAC}. [Sammet 1969, p.146]. (1995-03-16) Altair 8800 An {Intel 8080}-based machine made by {MITS}. The Altair was the first popular {microcomputer} kit. It appeared on the cover of the January 1974 Popular Electronics magazine with an article (probably) by Leslie Solomon. Leslie Solomon was an editor at Popular Electronics who had a knack for spotting kits that would interest people and make them buy the magazine. The Altair 8800 was one such. The MITS guys took the prototype Altair to New York to show Solomon, but couldn't get it to work after the flight. Nonetheless, he liked it, and it appeared on the cover as "The first minicomputer in a kit." Solomon's blessing was important enough that some MITS competitors named their product the "SOL" to gain his favour. Some wags suggested {SOL} was actually an abbreviation for the condition in which kit purchasers would find themselves. {Bill Gates} and Paul Allen saw the article on the Altair 8800 in Popular Electronics. They realized that the Altair, which was programmed via its binary front panel needed a {high level language}. Legend has it that they called MITS with the claim that they had a {BASIC} {interpreter} for the Altair. When MITS asked them to demo it in Albuquerque, they wrote one on the plane. On arrival, they entered the machine code via the front panel and demonstrated and sold their "product." Thus was born "Altair BASIC." The original Altair BASIC ran in less than 4K of RAM because a "loaded" Altair had 4K memory. Since there was no {operating system} on the Altair, Altair BASIC included what we now think of as {BIOS}. It was distributed on {paper tape} that could be read on a {Teletype}. Later versions supported the 8K Altair and the 16K {diskette}-based Altair (demonstrating that, even in the 1970s, {Microsoft} was committed to {software bloat}). Altair BASIC was ported to the {Motorola 6800} for the Altair 680 machine, and to other 8080-based microcomputers produced by MITS' competitors. [Relation to {Altair 9000}?] (1997-06-30) Altair 9000 An early {microcomputer}. It was developed in the USA in the 1970s by {Forrest Mimms} and his colleagues. [Forrest M. Mimms, article in "Computers and Electronics", (formerly "Popular Electronics") mid 1980s]. [Did it really exist? Where? Features? Relation to {Altair 8800}?] (1995-03-14) Alta Vista A {World-Wide Web} site provided by {Digital} which features a very fast Web and {Usenet} {search engine}. As of April 1996 its word index is 33GB in size. AltaVista is currently (June 1996) the largest Web index, with 30 million pages from 225,000 servers, and three million articles from 14,000 {Usenet} news groups. It is accessed over 12 million times per weekday. {Home (http://www.altavista.digital.com/)}. (1996-06-10) alt bit /awlt bit/ alternate bit. See {meta bit}. altmode {alt} ALTRAN A {FORTRAN} extension for {rational algebra} developed by W.S. Brown of {Bell Labs} ca. 1968. ["The ALTRAN System for Rational Function Manipulation - A Survey", A.D. Hall, CACM 14(8):517-521 (Aug 1971)]. (1995-06-01) alt.sources A {Usenet} {newsgroup} for posting program {source code}. {Archive (ftp://wuarchive.wustl.edu/usenet/alt.sources/)}. (1995-10-18) ALU 1. {Arithmetic and Logic Unit}. 2. {Association of Lisp Users}. Aluminum Book ["Common LISP: The Language, 2nd Edition", {Guy L. Steele Jr.}, Digital Press 1990, ISBN 1-55558-041-6]. Due to a technical screwup some printings of the second edition are actually what the author calls "yucky green". {On-line version (http://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html)}. See also {book titles}. (1997-06-25) Alvey A funding programme for collaborative research in the UK. (1995-06-01) AM 1. {Amplitude Modulation}. 2. A program by {Doug Lenat} to discover concepts in elementary mathematics. AM was written in 1976 in {Interlisp}. From 100 fundamental concepts and about 250 {heuristics} it discovered several important mathematical concepts including subsets, disjoint sets, sets with the same number of elements, and numbers. It worked by filling slots in {frames} maintaining an agenda of resource-limited prioritised tasks. AM's successor was {Eurisko}. {(http://homepages.enterprise.net/hibou/aicourse/lenat.txt)}. (1999-04-19) am The {country code} for Armenia. Used for the {vanity domain} "i.am". (1999-01-27) Amanda A {functional programming language} derived mostly from {Miranda} with some small changes. Amanda was written by Dick Bruin and implemented on {MS-DOS} and {NeXT}. It is available as an {interperator} only. (1998-04-27) A Manufacturing Language (AML) A {high-level language} developed by {IBM} in the 1980s for industrial {robots}. ["AML: A Manufacturing Language", R.H. Taylor et al, Inst J Robot Res 1(3):19-43]. (1995-09-25) Amber 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 Algebraic Manipulation by Identity Translation (also claimed: "Acronym May Be Ignored Totally"). An early {pattern-matching} language, developed by C. Christensen of Massachusetts Computer Assocs in 1964, aimed at algebraic manipulation. [Sammet 1969, pp. 454-457]. (1994-12-08) AMBIT/G {AMBIT} for graphs. ["An Example of the Manipulation of Directed Graphs in the AMBIT/G Programming Language", C. Christensen, in Interactive Systems for Experimental Applied Mathematics, M. Klerer et al, eds, Academic Press 1968, pp. 423-435]. (1994-12-08) AMBIT/L {AMBIT} for lists. A variant of AMBIT supporting list handling and {pattern matching} rules based on two-dimensional diagrams. ["An Introduction to AMBIT/L, A Diagrammatic Language for List Processing", Carlos Christensen, Proc 2nd ACM Symp Symb and Alg Manip (Mar 1971)]. (1994-12-08) AMBIT/S {AMBIT} for strings. AMBUSH A language for {linear programming} problems in a materials processing and transportation network. ["AMBUSH - An Advanced Model Builder for Linear Programming", T.R. White et al, National Petroleum Refiners Assoc Comp Conf (Nov 1971)]. (1995-06-19) AMD 1. {Advanced Micro Devices}. 2. According to Don Olivier , his system manager came in to work one morningn to find his IBM system down with a message on the console that said "AMD failure". After he and the service rep had puzzled over documentation for an hour or so they called headquarters and eventually learned that it the failure was in the cooling system: an AMD is an "air movement device", IBM for "fan". (1995-01-16) AMD 29000 A {RISC} {microprocessor} descended from the {Berkley RISC} design. Like the {SPARC} design that was introduced shortly afterwards, the 29000 has a large {register set} split into local and global sets. But though it was introduced before the SPARC, it has a more elegant method of register management. The 29000 has 64 global registers, in comparison to the SPARC's eight. In addition, the 29000 allows variable sized windows allocated from the 128 register stack {cache}. The current window or stack frame is indicated by a stack pointer, a pointer to the caller's frame is stored in the current frame, like in an ordinary stack (directly supporting stack languages like {C}, a {CISC}-like philosophy). Spills and fills occur only at the ends of the cache, and registers are saved/loaded from the memory stack. This allows variable window sizes, from 1 to 128 registers. This flexibility, plus the large set of global registers, makes {register allocation} easier than in SPARC. There is no special {condition code register} - any general register is used instead, allowing several condition codes to be retained, though this sometimes makes code more complex. An {instruction prefetch} buffer (using {burst mode}) ensures a steady instruction stream. Branches to another stream can cause a delay, so the first four new instructions are cached - next time a cached branch (up to sixteen) is taken, the cache supplies instructions during the initial memory access delay. Registers aren't saved during interrupts, allowing the interrupt routine to determine whether the overhead is worthwhile. In addition, a form of register access control is provided. All registers can be protected, in blocks of 4, from access. These features make the 29000 useful for embedded applications, which is where most of these processors are used, allowing it the claim to be "the most popular RISC processor". The 29000 also includes an {MMU} and support for the {AMD 29027} {FPU}. (1995-06-19) AMD 29027 The {FPU} for the {AMD 29000}. (1995-01-16) Amdahl 1. {Amdahl Corporation}. 2. {Gene Amdahl}. Amdahl Corporation A US computer manufacturer. Amdahl is a major supplier of large {mainframes}, {UNIX} and {Open Systems} software and servers, data storage subsystems, data communications products, applications development software, and a variety of educational and consulting services. Amdahl products are sold in more than 30 countries for use in both open systems and {IBM} plug-compatible mainframe computing environments. Quarterly sales $397M, profits $13M (Aug 1994). {Home (http://www.amdahl.com/)}. (1995-05-23) Amdahl's Law (Named after {Gene Amdahl}) If F is the fraction of a calucation that is sequential, and (1-F) is the fraction that can be parallelised, then the maximum {speedup} that can be achieved by using P processors is 1/(F+(1-F)/P). (1995-05-23) AMD Am2901 A 4-bit {bit-slice} processor from {Advanced Micro Devices}. It featured sixteen 4-bit {registers} and a 4-bit {ALU} and operation signals to allow carry/borrow or shift operations and such to operate across any number of other 2901s. An {address sequencer} (such as the {2910}) could provide control signals with the use of custom {microcode} in {ROM}. (1994-11-16) AMD Am2903 A {bit-slice} prcessor from {Advanced Micro Devices} which featured hardware multiply. (1994-11-16) AMD Am2910 An {address sequencer} from {Advanced Micro Devices}. (1994-11-16) AMD K7 {Athlon} American National 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 (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 (ASME) A group involved in {CAD} standardisation. (1995-04-21) American Standard Code for Information Interchange The basis of character sets used in almost all present-day computers. {US-ASCII} uses only the lower seven {bit}s ({character points} 0 to 127) to convey some {control codes}, space, numbers, most basic punctuation, and unaccented letters a-z and A-Z. More modern coded character sets (e.g., {Latin-1}, {Unicode}) define extensions to ASCII for values above 127 for conveying special Latin characters (like accented characters, or German ess-tsett), characters from non-Latin writing systems (e.g., Cyrillic, or {Han characters}), and such desirable {glyphs} as distinct open- and close-quotation marks. ASCII replaced earlier systems such as {EBCDIC} and {Baudot}, which used fewer bytes, but were each {broken} in their own way. Computers are much pickier about spelling than humans; thus, hackers need to be very precise when talking about characters, and have developed a considerable amount of verbal shorthand for them. Every character has one or more names - some formal, some concise, some silly. Individual characters are listed in this dictionary with alternative names from revision 2.3 of the {Usenet} ASCII pronunciation guide in rough order of popularity, including their official {ITU-T} names and the particularly silly names introduced by {INTERCAL}. See {V} {ampersand}, {asterisk}, {back quote}, {backslash}, {caret}, {colon}, {comma}, {commercial at}, {control-C}, {dollar}, {dot}, {double quote}, {equals}, {exclamation mark}, {greater than}, {hash}, {left bracket}, {left parenthesis}, {less than}, {minus}, {parentheses}, {percent}, {plus}, {question mark}, {right brace}, {right brace}, {right bracket}, {right parenthesis}, {semicolon}, {single quote}, {slash}, {space}, {tilde}, {underscore}, {vertical bar}, {zero}. Some other common usages cause odd overlaps. The "#", "$", ">", and "&" characters, for example, are all pronounced "hex" in different communities because various assemblers use them as a prefix tag for {hexadecimal} constants (in particular, "#" in many assembler-programming cultures, "$" in the {6502} world, ">" at {Texas Instruments}, and "&" on the {BBC Micro}, {Acorn Archimedes}, {Sinclair}, and some {Zilog Z80} machines). See also {splat}. The inability of {US-ASCII} to correctly represent nearly any language other than English became an obvious and intolerable {misfeature} as computer use outside the US and UK became the rule rather than the exception (see {software rot}). And so national extensions to US-ASCII were developed, such as Latin-1. Hardware and software from the US still tends to embody the assumption that US-ASCII is the universal character set and that words of text consist entirely of byte values 65-90 and 97-122 (A-Z and a-z); this is a major irritant to people who want to use a character set suited to their own languages. Perversely, though, efforts to solve this problem by proliferating sets of national characters produced an evolutionary pressure (especially in protocol design, e.g., the {URL} standard) to stick to {US-ASCII} as a subset common to all those in use, and therefore to stick to English as the language encodable with the common subset of all the ASCII dialects. This basic problem with having a multiplicity of national character sets ended up being a prime justification for {Unicode}, which was designed, ostensibly, to be the *one* ASCII extension anyone will need. A system is described as "{eight-bit clean}" if it doesn't mangle text with byte values above 127, as some older systems did. See also {ASCII character table}, {Yu-Shiang Whole Fish}. (1995-03-06) America On-Line, Inc. (AOL) A US on-line service provider based in Vienna, Virginia, USA. AOL claims to be the largest and fastest growing provider of on-line services in the world, with the most active subscriber base. AOL offers its three million subscribers {electronic mail}, interactive newspapers and magazines, conferencing, software libraries, computing support, and on-line classes. In October 1994 AOL made {Internet} {FTP} available to its members and in May 1995, full Internet access including {World-Wide Web}. AOL's main competitors are {Prodigy} and {Compuserve}. {Home (http://www.aol.com/)}. (1997-08-26) America's Multimedia Online (AMO) An {Internet} technologies company which invented {Never Offline} in 1995 and was officially started in 1996. {Home (http://amo.net/)}. E-mail: AMO . Address: Albuquerque, NM, USA. (1999-11-03) AMI {Alternate Mark Inversion} Amiga A range of home computers first released by {Commodore Business Machines} in 1985 (though they did not design the original - see below). Amigas are popular for {games}, {video processing} and {multimedia}. One notable feature is a hardware {blitter} for speeding up graphics operations on whole areas of the screen. The Amiga was originally called the Lorraine, and was developed by a company named "Amiga" or "Amiga, Inc.", funded by some doctors to produce a killer game machine. After the US game machine market collapsed, the Amiga company sold some {joysticks} but no Lorraines or any other computer. They eventually floundered and looked for a buyer. Commodore at that time bought the (mostly complete) Amiga machine, infused some money, and pushed it through the final stages of development in a hurry. Commodore released it sometime[?] in 1985. Most components within the machine were known by nicknames. The {coprocessor} commonly called the "Copper" is in fact the "{Video} Timing Coprocessor" and is split between two chips: the instruction fetch and execute units are in the "Agnus" chip, and the {pixel} timing circuits are in the "Denise" chip. "Agnus" and "Denise" were responsible for effects timed to the {real-time} position of the video scan, such as midscreen {palette} changes, {sprite multiplying}, and {resolution} changes. Different versions (in order) were: "Agnus" (could only address 512K of {video RAM}), "Fat Agnus" (in a {PLCC} package, could access 1MB of video RAM), "Super Agnus" (slightly upgraded "Fat Agnus"). "Agnus" and "Fat Agnus" came in {PAL} and {NTSC} versions, "Super Agnus" came in one version, jumper selectable for PAL or NTSC. "Agnus" was replaced by "Alice" in the A4000 and A1200, which allowed for more {DMA} channels and higher bus {bandwidth}. "Denise" outputs binary video data (3*4 bits) to the "Vidiot". The "Vidiot" is a hybrid that combines and amplifies the 12-bit video data from "Denise" into {RGB} to the {monitor}. Other chips were "Amber" (a "flicker fixer", used in the A3000 and Commodore display enhancer for the A2000), "Gary" ({I/O}, addressing, {glue logic}), "Buster" (the {bus controller}, which replaced "Gary" in the A2000), "Buster II" (for handling the Zorro II/III cards in the A3000, which meant that "Gary" was back again), "Ramsey" (The {RAM} controller), "DMAC" (The DMA controller chip for the WD33C93 {SCSI adaptor} used in the A3000 and on the A2091/A2092 SCSI adaptor card for the A2000; and to control the {CD-ROM} in the {CDTV}), and "Paula" ({Peripheral}, Audio, {UART}, {interrupt} Lines, and {bus Arbiter}). There were several Amiga chipsets: the "Old Chipset" (OCS), the "Enhanced Chipset" (ECS), and {AGA}. OCS included "Paula", "Gary", "Denise", and "Agnus". ECS had the same "Paula", "Gary", "Agnus" (could address 2MB of Chip RAM), "Super Denise" (upgraded to support "Agnus" so that a few new {screen modes} were available). With the introduction of the {Amiga A600} "Gary" was replaced with "Gayle" (though the chipset was still called ECS). "Gayle" provided a number of improvments but the main one was support for the A600's {PCMCIA} port. The AGA chipset had "Agnus" with twice the speed and a 24-bit palette, maximum displayable: 8 bits (256 colours), although the famous "{HAM}" (Hold And Modify) trick allows pictures of 256,000 colours to be displayed. AGA's "Paula" and "Gayle" were unchanged but AGA "Denise" supported AGA "Agnus"'s new screen modes. Unfortunately, even AGA "Paula" did not support High Density {floppy disk drives}. (The Amiga 4000, though, did support high density drives.) In order to use a high density disk drive Amiga HD floppy drives spin at half the rotational speed thus halving the data rate to "Paula". Commodore Business Machines went bankrupt on 1994-04-29, the German company {Escom AG} bought the rights to the Amiga on 1995-04-21 and the Commodore Amiga became the Escom Amiga. In April 1996 Escom were reported to be making the {Amiga} range again but they too fell on hard times and {Gateway 2000} (now called Gateway) bought the Amiga brand on 1997-05-15. Gateway licensed the Amiga operating system to a German hardware company called {Phase 5} on 1998-03-09. The following day, Phase 5 announced the introduction of a four-processor {PowerPC} based Amiga {clone} called the "{pre\box}". Since then, it has been announced that the new operating system will be a version of {QNX}. On 1998-06-25, a company called {Access Innovations Ltd} {announced plans (http://www.compulink.co.uk/~index/aaplus.html)} to build the next Amiga custom chip set, the {AA+}. The new chips will be based partly on the AGA chips but will have a new fully 32-bit functional core with 16-bit AGA {hardware register emulation} to provide {backwards compatibility} with the AGA chip set. The new core will improve memory access, and so DMA access for the video display will take significantly less bandwidth and will be less time critical. This will result in fewer conflicts with processor operations. The AA+ chips will also allow 16-bit displays of resolutions up to 1024x768, 16-bit sound and high-density floppy drive support. An interface will implement off-chip support for low cost serial, parallel, {UDMA}, {IDE} and {USB} connections. Features such as {Firewire}, {modems} and {networks} may be implemented using a plug-in {PCI} card or an integrated PCI chip board. {Home (http://www.amiga.de/)}. {Amiga Web Directory (http://www.cucug.org/amiga.html)}. {amiCrawler (http://www.amicrawler.com/)}. Newsgroups: {news:comp.binaries.amiga}, {news:comp.sources.amiga}, {news:comp.sys.amiga}, {news:comp.sys.amiga.advocacy}, {news:comp.sys.amiga.announce}, {news:comp.sys.amiga.applications}, {news:comp.sys.amiga.audio}, {news:comp.sys.amiga.datacomm}, {news:comp.sys.amiga.emulations}, {news:comp.sys.amiga.games}, {news:comp.sys.amiga.graphics}, {news:comp.sys.amiga.hardware}, {news:comp.sys.amiga.introduction}, {news:comp.sys.amiga.marketplace}, {news:comp.sys.amiga.misc}, {news:comp.sys.amiga.multimedia}, {news:comp.sys.amiga.programmer}, {news:comp.sys.amiga.reviews}, {news:comp.sys.amiga.tech}, {news:comp.sys.amiga.telecomm}, {news:comp.Unix.amiga}. See {aminet}, {Amoeba}, {bomb}, {exec}, {gronk}, {guru meditation}, {Intuition}, {sidecar}, {slap on the side}, {Vulcan nerve pinch}. (1999-03-06) Amiga E An {Amiga} {E} {compiler} by Wouter van Oortmerssen. Amiga E compiles 20000 lines/minute on a 7 Mhz Amiga. It allows {in-line} {assembly code} and has an integrated {linker}. It has a large set of integrated functions and {modules}. V2.04 includes as modules a flexible {type} system, quoted expressions, {immediate} and typed lists, low level {polymorphism} and {exception} handling. It is written in {assembly language} and E. Version 2.1b {(ftp://ftp.wustl.edu/pub/aminet/dev/e/AmigaE21b.lha)}. {(ftp://amiga.physik.unizh.ch/amiga/dev/lang/AmigaE21b.lha)}. Mailing list: . {Usenet} newsgroup: {news:comp.sys.amiga.programmer}. (1997-08-26) Aminet (Amiga network) A collection of {FTP} {mirrors} that contain several {gigabytes} of {freely distributable software} for the {Amiga} range of computers. {Home, ftp.wustl.edu (ftp://ftp.wustl.edu)}. (1997-08-31) AML {A Manufacturing Language} AML/E (AML Entry) A simple version of {AML}, implemented on the {IBM PC}, with a graphic display of the robot position. (1995-10-03) AMO {America's Multimedia Online} Amoeba 1. A distributed {operating system} developed by {Andrew S. Tanenbaum} and others of {Vrije Universiteit, Amsterdam}. Amoeba is only available under licence from the VUA, but is free of charge and includes all {source}, {binaries} and documentation. {Home (http://www.am.cs.vu.nl/)}. [Features?] 2. A derogatory term for {Commodore}'s {Amiga} {personal computer}. (1997-05-07) AMP {Algebraic Manipulation Package} amper {ampersand} ampersand "&" {ASCII} character 38. Common names: {ITU-T}: ampersand; amper; and. Rare: address (from {C}); reference (from C++); andpersand; bitand; background (from {sh}); pretzel; amp. {INTERCAL} called this "ampersand"; what could be sillier? [Why "ampersand"?] (1995-03-06) AMPL Along with {mpl}, the intrinsic parallel languages for {MasPar}'s computers. AMPL and mpl are parallel variants of {C}. Ampl is actually now a {gcc} port. ["AMPL: Design, Implementation and Evaluation of a Multiprocessing Language", R. Dannenberg, CMU 1981]. ["Loglan Implementation of the AMPL Message Passing System", J. Milewski SIGPLAN Notices 19(9):21-29 (Sept 1984)]. [Are these the same language?] (1995-11-01) AMPLE A {FORTH}-like language for programming the 500/5000 series of add-on music synthesisers for the {BBC Microcomputer}. AMPLE was produced by Hybrid Technologies, Cambridge, England in the mid 1980s. Many AMPLE programs were published in Acorn User magazine. (1995-11-01) Amplitude Modulation (AM) A method of encoding data by varying the {amplitude} of a constant frequency {carrier}. (1996-06-18) amp off (Purdue) To run in {background}. From the {Unix} {shell} "&" (ampersand) operator. (1995-11-14) AMPPL-II {Associative Memory Parallel Processing Language} AMS {Andrew Message System} AMTRAN {Automatic Mathematical TRANslation} Amulet An implementation or the {Advanced RISC Machine} {microprocessor} architecture using the {micropipeline} design style. In April 1994 the Amulet group in the Computer Science department of {Manchester University} took delivery of the AMULET1 {microprocessor}. This was their first large scale asynchronous circuit and the world's first implementation of a commercial microprocessor architecture (ARM) in {asynchronous logic}. Work was begun at the end of 1990 and the design despatched for fabrication in February 1993. The primary intent was to demonstrate that an asynchronous microprocessor can consume less power than a synchronous design. The design incorporates a number of concurrent units which cooperate to give instruction level compatibility with the existing synchronous part. These include an Address unit, which autonomously generates instruction fetch requests and interleaves ({nondeterministic}ally) data requests from the Execution unit; a {Register} file which supplies operands, queues write destinations and handles data dependencies; an Execution unit which includes a multiplier, a shifter and an {ALU} with data-dependent delay; a Data interface which performs byte extraction and alignment and includes an {instruction prefetch} buffer, and a control path which performs {instruction decode}. These units only synchronise to exchange data. The design demonstrates that all the usual problems of processor design can be solved in this asynchronous framework: backwards {instruction set} compatibility, {interrupts} and exact {exceptions} for {memory faults} are all covered. It also demonstrates some unusual behaviour, for instance {nondeterministic} prefetch depth beyond a branch instruction (though the instructions which actually get executed are, of course, deterministic). There are some unusual problems for {compiler} {optimisation}, as the metric which must be used to compare alternative code sequences is continuous rather than discrete, and the {nondeterminism} in external behaviour must also be taken into account. The chip was designed using a mixture of custom {datapath} and compiled control logic elements, as was the synchronous ARM. The fabrication technology is the same as that used for one version of the synchronous part, reducing the number of variables when comparing the two parts. Two silicon implementations have been received and preliminary measurements have been taken from these. The first is a 0.7um process and has achieved about 28 kDhrystones running the standard {benchmark} program. The other is a 1 um implementation and achieves about 20 kDhrystones. For the faster of the parts this is equivalent to a synchronous {ARM6} clocked at around 20MHz; in the case of AMULET1 it is likely that this speed is limited by the memory system cycle time (just over 50ns) rather than the processor chip itself. A fair comparison of devices at the same geometries gives the AMULET1 performance as about 70% of that of an {ARM6} running at 20MHz. Its power consumption is very similar to that of the ARM6; the AMULET1 therefore delivers about 80 MIPS/W (compared with around 120 from a 20MHz ARM6). Multiplication is several times faster on the AMULET1 owing to the inclusion of a specialised asynchronous multiplier. This performance is reasonable considering that the AMULET1 is a first generation part, whereas the synchronous ARM has undergone several design iterations. AMULET2 (currently under development) is expected to be three times faster than AMULET1 - 120 k{dhrystones} - and use less power. The {macrocell} size (without {pad ring}) is 5.5 mm by 4.5 mm on a 1 micron {CMOS} process, which is about twice the area of the synchronous part. Some of the increase can be attributed to the more sophisticated organisation of the new part: it has a deeper {pipeline} than the clocked version and it supports multiple outstanding memory requests; there is also specialised circuitry to increase the multiplication speed. Although there is undoubtedly some overhead attributable to the asynchronous control logic, this is estimated to be closer to 20% than to the 100% suggested by the direct comparison. AMULET1 is code compatible with {ARM6} and is so is capable of running existing {binaries} without modification. The implementation also includes features such as interrupts and memory aborts. The work was part of a broad {ESPRIT} funded investigation into low-power technologies within the European {Open Microprocessor systems Initiative} (OMI) programme, where there is interest in low-power techniques both for portable equipment and (in the longer term) to alleviate the problems of the increasingly high dissipation of high-performance chips. This initial investigation into the role {asynchronous logic} might play has now demonstrated that asynchronous techniques can be applied to problems of the scale of a complete {microprocessor}. {Home (http://www.cs.man.ac.uk/amulet)} (1994-12-08) an The {country code} for the Netherlands Antilles (Dutch Antilles). (1999-01-27) analog American spelling of {analogue}. (1995-11-14) Analog Hardware Design Language (AHDL) A language under development by the US Air Force. (1995-04-09) analogue (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 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 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 A design for a general-purpose digital computer proposed by {Charles Babbage} in 1837 as a successor to his earlier special-purpose {Difference Engine}. The Analytical Engine was to be built from brass gears powered by steam with input given on {punched cards}. Babbage could never secure enough funding to build it, and so it was, and never has been, constructed. {(http://www.fourmilab.ch/babbage/)}. (1998-10-19) Analytical Machine {Analytical Engine} anchor (Or "span", "region", "button", "extent") An area within the content of a {hypertext} {node} (e.g. a {web page}) which is the source or destination of a {link}. A source anchor may be a word, phrase, image, or possibly the whole node. A destination anchor may be a whole node or some position within the node. Typically, clicking with the {mouse} on a source anchor causes the link to be followed and the anchor at the opposite end of the link to be displayed. Anchors are highlighted in some way (either always, or when the mouse is over them), or they may be marked by a special symbol. In {HTML} anchors are created with the .. construct. The opening A tag of a source anchor has an HREF (hypertext reference) attribute giving the destination in the form of a {URL} - usually a whole node or "page". E.g. Free On-line Dictionary of Computing Destination anchors are only used in HTML to name a position within a page using a NAME attribute. E.g. The name or "fragment identifier" is appended to the URL of the page with a "#": http://www.fairystory.com/goldilocks.html#chapter3 (Though it is generally better to break pages into smaller units than to have large pages with named sections). (1997-11-15) ANCP An early system on the {Datatron 200} series. [Listed in CACM 2(5):16, May 1959]. (1995-11-15) AND (Or "conjunction") The {Boolean} function which is true only if all its arguments are true. The {truth table} for the two argument AND function is: A | B | A AND B --+---+--------- F | F | F F | T | F T | F | F T | T | T AND is often written as an inverted "V" in texts on logic. In the {C} programming language it is represented by the && (logical and) {operator}. (1997-11-15) ANDF {Architecture Neutral Distribution Format} Andorra-I A {parallel} {logic programming} language with the {OR-parallelism} of {Aurora} and the {AND-parallelism} of {Parlog}. ["Andorra-I: A Parallel Prolog System that Transparently Exploits both And- and Or-Parallelism", V.S Costa et al, SIGPLAN Notices 26(7):83-93 (July 1991)]. [Imperial College? Who?] (1995-11-24) Andorra Kernel Language (AKL) The successor to {KAP} by S. Janson . A prototype implementation is available from the author. ["Programming Paradigms of the Andorra Kernel Language", S. Janson et al in Logic Programming: Proc 1991 Intl Symp, MIT Press 1991]. (1994-11-24) Andorra-Prolog ["Andorra-Prolog: An Integration of Prolog and Committed Choice Languages", S. Haridi et al, Intl Conf Fifth Gen Comp Sys 1988, ICOT 1988]. (1995-11-24) Andrei Markov 1856-1922. The Russian mathematician, after who {Markov chains} were named. {Biography (http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Markov.html)}. [Other contributions?] (1995-10-06) Andrew File System (AFS) The distributed {file system} of the {Andrew Project}, adopted by the {OSF} as part of their {Distributed Computing Environment}. {Frequently Asked Questions (http://www.transarc.com/Product/AFS/FAQ/faq.html)}. (1994-11-24) Andrew Fluegelman The author of the {MS-DOS} communications program {PC-TALK III}. He once owned the trademark "{freeware}" but it wasn't enforced after his mysterious disappearance and presumed death in 1984. (1997-08-25) Andrew Message System A {multimedia} interface to {electronic mail} and {bulletin boards}, developed as part of the {Andrew Project}. (1994-11-24) Andrew Project A distributed system project for support of educational and research computing at {Carnegie Mellon University}, named after Andrew Carnegie, an American philanthropist who provided money to establish CMU. See also {Andrew File System}, {Andrew Message System}, {Andrew Toolkit}, {class}. {Home FTP (ftp://emsworth.andrew.cmu.edu)} {Usenet} newsgroup: {news:comp.soft-sys.andrew}. [More detail?] (1997-11-17) Andrew S. Tanenbaum {Andrew Tanenbaum} Andrew Tanenbaum 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. E-mail: Andrew Tanenbaum . See {Amoeba}, {Mac-1}, {Mic-1}, {Mic-2}, {Micro Assembly Language}, {MINIX}, {MicroProgramming Language}, {standard}. (1996-04-23) Andrew Toolkit A {portable} {user interface} toolkit developed as part of the {Andrew project}, running on the {X Window System} and distributed with {X11R5}. (1995-11-24) An Evolutionary System for On-line Programming (AESOP) An early interactive {query system} on the {IBM 1800} using a {light pen}. ["AESOP: A Final Report: A Prototype Interactive Information Control System", J.K. Summers et al, in Information System Science and Technology, D. Walker ed, 1967]. [Sammet 1969, p. 703]. (1995-04-04) Angel 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 Either of the characters "<" (less-than, {ASCII} 60) and ">" (greater-than, ASCII 62). Typographers in the {Real World} use angle brackets which are either taller and slimmer (the {ISO} "{Bra}" and "{Ket}" characters), or significantly smaller (single or double guillemets) than the less-than and greater-than signs. See {broket}. (1995-11-24) angry fruit salad A bad visual-interface design that uses too many colours. (This term derives, of course, from the bizarre day-glo colours found in canned fruit salad). Too often one sees similar effects from interface designers using colour window systems such as {X}; there is a tendency to create displays that are flashy and attention-getting but uncomfortable for long-term use. (1995-11-24) ANI {Automatic Number Identification} Animated GIF (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 The creation of artificial moving images. {Usenet} newsgroup: {news:comp.graphics.animation}. {FAQ (ftp://src.doc.ic.ac.uk/usenet/news-info/comp.graphics.animation)}. (1995-11-24) Animus ["Constraint-Based Animation: The Implementation of Temporal Constraints in the Animus System", R. Duisberg, PhD Thesis U Washington 1986]. (1995-11-24) ANL {Argonne National Laboratory} Anna {ANNotated Ada} annealing {simulated annealing} annotate {annotation} ANNotated Ada (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. Extra information associated with a particular point in a document or program. Annotations may be added either by a {compiler} or by the programmer. They are not usually essential to the correct function of the program but give hints to improve performance. 2. A new commentary {node} linked to an existing node. If readers, as well as authors, can annotate nodes, then they can immediately provide feedback if the information is misleading, out of date or plain wrong. (1995-11-26) annoybot /*-noy-bot/ An irksome {IRC} {robot}. (1997-12-23) annoyware {Shareware} that reminds you frequently that you are using an unregistered copy. (1998-04-29) Annual Change Traffic (ACT) The fraction of the software product's {source code} which changes during a year, either through addition or modification. The ACT can be used to determine the product size in order to estimate software maintenance effort. (1996-05-29) anonymous FTP An interactive service provided by many {Internet} {hosts} allowing any user to transfer documents, files, programs, and other archived data using {File Transfer Protocol}. The user logs in using the special {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 (ANTLR) The {parser generator} in the {Purdue Compiler-Construction Tool Set}. (1995-10-26) ANR {Automatic Network Routing} ANS {American National Standard} ANSA {Advanced Network Systems Architecture} ANSI {American National Standards Institute} ANSI C (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 ANS X3.60-1978. [Details?] (1995-11-29) ANSI/SPARC {ANSI Standards Planning And Requirments Committee} ANSI/SPARC Architecture (Or "ANSI/SPARC model") {ANSI/SPARC}'s layered model of {database} architecture comprising a {physical schema}, a {conceptual schema} and user {views}. [Reference?] (1998-12-17) ANSI/SPARC model {ANSI/SPARC Architecture} ANSI X12 Standards defining the structure, format, and content of business transactions conducted through {Electronic Data Interchange} (EDI). ANSI X12 is produced by the committee ASC X12, supported by the {Data Interchange Standards Association, Inc.} (DISA). [{(http://www.onlinewbc.org/Docs/procure/standard.html)}]. (1999-09-18) ANSI Z39.50 Information Retrieval Service Definition and Protocol Specification for Library Applications, officially known as ANSI/NISO Z39.50-1992, and ANSI/NISO Z39.50-1995. This {standard}, used by {WAIS}, specifies an {OSI} {application layer} service to allow an application on one computer to query a {database} on another. Z39.50 is used in libraries and for searching some databases on the {Internet}. The US {Library of Congress (http://lcweb.loc.gov/z3950/agency/)} is the official maintanence agency for Z39.50. {Index Data}, a Danish company, have released a lot of Z39.50 code. Their {web site} explains the relevant {ISO} {standards} and how they are amicably converging in Z39.50 version 4.0. {Overview (http://www.nlc-bnc.ca/ifla/VI/5/op/udtop3.htm)}. {Z39.50 resources (http://lamp.cs.utas.edu.au/net.html#Z3950)}. (1996-07-22) Anthony Hoare (C. Anthony R. Hoare, Tony) A computer scientist working on programming languages, especially {parallel} ones. Hoare was responsible for {Communicating Sequential Processes} (CSP). See also: {pointer}, {Simone}. [Did he invent the Hoare {powerdomain}}? Other details?] (1999-07-22) anti-aliasing 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 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 A {relation} R is antisymmetric if, for all x and y, x R y and y R x => x == y. I.e. no two different elements are mutually related. {Partial orders} and {total orders} are antisymmetric. If R is also {symmetric} (x R y => y R x) then x R y => x == y. I.e. different elements are not related. (1995-04-18) antivirus software Programs to detect and remove computer {viruses}. The simplest kind scans executable files and {boot blocks} for a list of known viruses. Others are constantly active, attempting to detect the actions of general classes of viruses. antivirus software should always include a regular update service allowing it to keep up with the latest viruses as they are released. (1998-02-25) ANTLR {ANother Tool for Language Recognition} ANU {Australian National University} ANU ML An implementation of {SML} by the {Australian National University} for {Motorola 68020}, {Vax} and {Pyramid}. (1995-11-26) anytime algorithm An {algorithm} that returns the best answer possible even if it is not allowed to run to completion, and may improve on the answer if it is allowed to run longer. [Example?] (1998-02-26) ao The {country code} for Angola. (1999-01-27) AOCE {Apple Open Collaboration Environment} AOL {America On-Line} AOP {aspect-oriented programming} AOS 1. /aws/ (East Coast), /ay-os/ (West Coast) A {PDP-10} instruction that took any memory location and added 1 to it. AOS meant "Add One and do not Skip". Why, you may ask, does the "S" stand for "do not Skip" rather than for "Skip"? Ah, here was a beloved piece of PDP-10 folklore. There were eight such instructions: AOSE added 1 and then skipped the next instruction if the result was Equal to zero; AOSG added 1 and then skipped if the result was Greater than 0; AOSN added 1 and then skipped if the result was Not 0; AOSA added 1 and then skipped Always; and so on. Just plain AOS didn't say when to skip, so it never skipped. For similar reasons, AOJ meant "Add One and do not Jump". Even more bizarre, SKIP meant "do not SKIP"! If you wanted to skip the next instruction, you had to say "SKIPA". Likewise, JUMP meant "do not JUMP"; the unconditional form was JUMPA. However, hackers never did this. By some quirk of the 10's design, the {JRST} (Jump and ReSTore flag with no flag specified) was actually faster and so was invariably used. Such were the perverse mysteries of assembler programming. 2. /A-O-S/ or /A-os/ A {Multics}-derived {operating system} supported at one time by {Data General}. A spoof of the standard AOS system administrator's manual ("How to Load and Generate your AOS System") was created, issued a part number, and circulated as photocopy folklore; it was called "How to Goad and Levitate your CHAOS System". 3. Algebraic Operating System, in reference to those calculators which use {infix} instead of {postfix} (reverse Polish) notation. (1995-11-26) APA {Application Portability Architecture} Apache 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.teaser.fr/apache/docs/FAQ.html)}. (1999-10-27) APAL {Array Processor Assembly Language} APAREL {A PArse REquest Language} A PArse REquest Language (APAREL) A {PL/I} extension to provide {BNF} {parsing} routines, for {IBM 360}. ["APAREL: A Parse Request Language", R.W. Balzer et al, CACM 12(11) (Nov 1969)]. (1995-11-26) APC {Association for Progressive Communications} APDL {Algorithmic Processor Description Language} apE A graphics package from the Ohio Supercomputer Centre. (1995-11-29) API {Application Program Interface} APIC {Advanced Programmable Interrupt Controller} APL {A Programming Language} APL2 An {APL} extension from {IBM} with nested {arrays}. ["APL2 Programming: Language Reference", IBM, Aug 1984. Order No. SH20-9227-0]. (1995-11-29) APLGOL An {APL} variant with {ALGOL}-like control structure, from {Hewlett-Packard}(?). (1995-11-29) APLWEB A {Web} to {APL} and {Web} to {TeX} translator by Dr. Christoph von Basum of The University of Bielefeld, Germany. {(ftp://watserv1.uwaterloo.ca/languages/apl/aplweb/)}. (1992-12-27) APM {Advanced Power Management} Apollo Computer A company making {workstations} often used for {CAD}. Apollo became a division of {Hewlett-Packard} some time before November 1995. [Dates? More details?] (1998-03-13) apostrophe {single quote} app {application program} APPC {Advanced Program-to-Program Communications} AppKit A set of objects used by the {application builder} for the {NEXTSTEP} environment. (1995-03-13) APPLE A revision of {APL} for the {Illiac IV}. (1995-04-28) Apple Computer, Inc. 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 An 8-bit {personal computer} with a {6502} processor, from {Apple Computer}. It was invented by {Steve Wozniak} and was very popular from about 1980 until the first several years of {MS-DOS} {IBM PC}s. (1995-01-12) Apple Macintosh {Macintosh} Apple Newton A {Personal Digital Assistant} produced by {Apple Computer}. The Newton provides a clever, {user-friendly} interface and relies solely on pen-based input. Eagerly anticipated, the Newton uses handwriting recognition software to "learn" the users handwriting and provide reliable {character recognition}. Various third-party software applications are now available and add-on {peripherals} like wireless {modems} for {Internet} access are being sold by {Apple Computer, Inc.} and its licensees. {Newton Inc.}'s {NewtonOS} currenlty competes with {Microsoft Corporation}'s {Windows CE}, and will be compatible with {DEC}'s new {StrongARM} SA-1100, an embedded 200MHz {microprocessor}, due in 1998. {Home (http://www.newton.apple.com/)}. {Handwriting recognition example (http://www-personal.engin.umich.edu/~jxm/tablespoons.html)}. (1997-09-12) Apple Open Collaboration Environment (AOCE) Software for {electronic mail} and directory services. (1995-03-08) AppleScript An {object-oriented} {shell} language for the {Macintosh}, approximately a superset of {HyperTalk}. (1995-12-10) Applesoft BASIC A version of {BASIC} for {Apple} computers. (1995-12-10) applet A {Java} program which can be distributed as an attachment in a {World-Wide Web} document and executed a Java-enabled {web browser} such as Sun's {HotJava} or {Netscape Navigator} version 2.0 or later. Navigator severely restricts the applet's file system and network access in order to prevent accidental or deliberate security violations. Full Java applications, which run outside of the browser, do not have these restrictions. Web browsers can also be extended with {plug-ins} though these differ from applets in that they usually require manual installation and are {platform}-specific. Various other languages can now be embedded within {HTML} documents, the most common being {JavaScript}. Despite Java's aim to be a "write once, run anywhere" language, the difficulty of accomodating the variety of browsers in use on the Internet has led many to abandon client-side processing in favour of {server}-side Java programs for which the term {servlet} was coined. (1999-06-15) Appletalk 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 (ADSP) A {protocol} which provides a simple transport method for data accross a network. (1996-06-18) AppleTalk Filing Protocol (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 (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 (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 (ACA) {DEC}'s implementation of {ORB}. (1994-11-08) application enablement services {IBM}-speak for {API}s to services such as telecoms, database, etc. within and between address spaces. (1999-01-20) Application environment specification (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 (AE) An {embeddable language}, written as a {C} {interpreter} by Brian Bliss . AE is compiled with an {application} and thus exists in the same process and address space. It includes a {dbx} {symbol table} scanner to access compiled variables and routines, or you can enter them manually by providing a type/name declaration and the address. When the {interpreter} is invoked, {source code} fragments are read from the input stream (or a string), parsed, and evaluated immediately. The user can call compiled functions in addition to a few {built-in} intrinsics, declare new data types and data objects, etc. Different input streams can be evaluated in parallel on {Alliant} computers. AE has been ported to {SunOS} (cc or {gcc}), {Alliant FX} and {Cray YMP} (soon). {(ftp://sp2.csrd.uiuc.edu/pub/at.tar.Z)} {(ftp://sp2.csrd.uiuc.edu/pub/bliss/ae.tex.Z)}. (1992-04-21) Application Integration Architecture (AIA) {DEC}'s "open standards" specifications. application layer The top layer of the {OSI} seven layer model. This layer handles issues like {network transparency}, resource allocation and problem partitioning. The application layer is concerned with the user's view of the network (e.g. formatting {electronic mail} messages). The {presentation layer} provides the application layer with a familiar local representation of data independent of the format used on the network. (1994-11-28) Application Portability Architecture (APA) {DEC}'s plan for portable applications software. (1994-11-28) application program (Or "application", "app") A complete, self-contained program that performs a specific function directly for the user. This is in contrast to system software such as the {operating system} {kernel}, {server} processes and libraries which exists to support application programs. Editors 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 (API, or "application programming interface") The interface (calling conventions) by which an {application program} accesses {operating system} and other services. An API is defined at {source code} level and provides a level of {abstraction} between the application and the {kernel} (or other privileged utilities) to ensure the {portability} of the code. An API can also provide an interface between a {high level language} and lower level utilities and services which were written without consideration for the {calling conventions} supported by compiled languages. In this case, the API's main task may be the translation of parameter lists from one format to another and the interpretation of {call-by-value} and {call-by-reference} arguments in one or both directions. (1995-02-15) Application Programming Interface {Application Program Interface} Application Protocol Data Unit (APDU) A {packet} of data exchanged between two {application} programs across a {network}. This is the highest level view of communication in the {OSI} {seven layer model} and a single packet exchanged at this level may actually be transmitted as several packets at a lower layer as well as having extra information (headers) added for {routing} etc. (1995-12-19) Application Service Element (ASE) Software in the {presentation layer} of the {OSI} seven layer model which provides an abstracted interface layer to service {application protocol data units} (APDU). Because {applications} and {networks} vary, ASEs are split into common services and specific services. Examples of services provided by the {common application service element} (CASE) include remote operations (ROSE) and {database} {concurrency control and recovery} (CCR). The {specific application service element} (SASE) provides more specialised services. (1995-12-19) applications language {Ousterhout's dichotomy} application software {application program} Application Software Installation Server (ASIS) Something at {CERN}. [What?] (1999-10-21) Application-Specific Integrated Circuit (ASIC) An {integrated circuit} designed to perform a particular function by defining the interconnection of a set of basic circuit building blocks drawn from a library provided by the circuit manufacturer. (1995-02-15) Applications Programming Interface {Application Programming Interface} Application Visualisation System (AVS) A portable, modular, {Unix}-based graphics package supported by a consortium of vendors including {Convex}, {DEC}, {IBM}, {HP}, {SET Technologies}, {Stardent} and {WaveTracer}. (1994-11-28) applicative language 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 (ALDiSP) A {functional language} with special features for {real-time} {I/O} and numerical processing, developed at the {Technical University of Berlin} in 1989. ["An Applicative Real-Time Language for DSP - Programming Supporting Asynchronous Data-Flow Concepts", M. Freericks in Microprocessing and Microprogramming 32, N-H 1991]. (1995-04-19) applicative order reduction An {evaluation strategy} under which an expression is evaluated by repeatedly evaluating its leftmost innermost {redex}. This means that a function's arguments are evaluated before the function is applied. This method will not terminate if a function is given a non-terminating expression as an argument even if the function is not {strict} in that argument. Also known as {call-by-value} since the values of arguments are passed rather than their names. This is the evaluation strategy used by {ML}, {Scheme}, {Hope} and most {procedural languages} such as {C} and {Pascal}. See also {normal order reduction}, {parallel reduction}. (1995-01-25) APPLOG A language which unifies {logic programming} and {functional programming}. ["The APPLOG Language", S. Cohen in Logic Programming, deGroot et al eds, P-H 1986, pp.39-276]. (1995-01-25) APPN {Advanced Peer-to-Peer Networking} approximation algorithm An {algorithm} for an {optimisation} problem that generates {feasible} but not necessarily {optimal} solutions. Unlike "{heuristic}", the term "approximation algorithm" often implies some proven worst or average case bound on performance. The terms are often used interchangeably however. (1997-10-28) April Fool's Joke (AFJ) Elaborate April Fool's hoaxes are a long-established tradition on {Usenet} and {Internet}; see {kremvax} for an example. In fact, April Fool's Day is the *only* seasonal holiday marked by customary observances on the hacker networks. (1995-01-25) A Programming Language (APL) A language designed originally by Ken Iverson at {Harvard University} in 1957-1960 as a notation for the concise expression of mathematical {algorithms}. It went unnamed (or just called {Iverson's Language}) and unimplemented for many years. Finally a subset, APL\360, was implemented in 1964. APL is an {interactive} {array-oriented} language with many innovative features. It was originally written using a non-standard {character set} but now can use {ISO8485}. It is {dynamically typed} with {dynamic scope}. APL introduced several functional forms but is not {purely functional}. {Dijkstra} got the size of it when he said that APL was a language designed to perfection - in the wrong direction. {IBM} once adopted APL - can one be ruder? Versions: APL\360, APL SV, VS APL, Sharp APL, Sharp APL/PC, APL*PLUS, APL*PLUS/PC, APL*PLUS/PC II, MCM APL, Honeyapple, and DEC APL. See also {Kamin's interpreters}. {APLWEB} translates {WEB} to {APL}. ["A Programming Language", Kenneth E. Iverson, Wiley, 1962]. (1995-11-29) APSE {Ada Programming Support Environment} APT 1. {Automatically Programmed Tools}. 2. {Audio Processing Technology}. (1996-01-15) APX III An early system on the {Datatron 200} series. [Listed in CACM 2(5):16 (May 1959)]. (1995-05-04) aq The {country code} for Antarctica. (1999-01-27) AQL A picture {query language}, extension of {APL}. ["AQL: A Relational Database Management System and Its Geographical Applications", F. Antonacci et al, in Database Techniques for Pictorial Applications, A. Blaser ed, pp. 569-599]. (1995-05-04) ar The {country code} for Argentina. (1999-01-27) arbitrary precision calculator An arbitrary precision {C}-like calculator. {Interpreter} version 1.26.4 by David I. Bell . Ported to {Linux}. {(ftp://ftp.uu.net/pub/calc)} (1993-06-15) ARC {Advanced RISC Computing Specification} arc 1. 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. An {edge} in a {tree}. "{branch}" is a generally more common synonym. (1998-12-29) Arcade 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 4.4 {BSD-Lite} for the {Acorn} {Archimedes}. (1994-11-08) archie A system to automatically gather, index and serve information on the {Internet}. The initial implementation of archie by {McGill University} School of Computer Science provided an indexed directory of filenames from all {anonymous FTP} archives on the Internet. Later versions provide other collections of information. See also {archive site}, {Gopher}, {Prospero}, {Wide Area Information Servers}. (1995-12-28) Archimedes 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 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 (ANDF) An emerging {OSF} {standard} for software distribution. Programs are compiled into ANDF before distribution and {executables} are produced from it for the local target system. This allows software to be developed and distributed in a single version then installed on a variety of hardware. See also {UNCOL}. Mailing list: . ["Architecture Neutral Distribution Format: A White Paper", Open Software Foundation, Nov 1990]. (1995-10-20) archive 1. A single file containing one or (usually) more separate files plus information to allow them to be extracted (separated) by a suitable program. Archives are usually created for software distribution or {backup}. {tar} is a common format for {Unix} archives, and {arc} or {PKZIP} for {MS-DOS} and {Microsoft Windows}. 2. To transfer files to slower, cheaper media (usually {magnetic tape}) to free the {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. {archive site}. (1996-12-08) archive site (Or "FTP site", "FTP archive") An {Internet} {host} where program source, documents, {e-mail} or {news} messages are stored for public access via {anonymous FTP}, {Gopher}, {World-Wide Web} or other document distribution system. There may be several archive sites for e.g. a {Usenet} {newsgroup} though one may be recognised as the main one. 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 A {network} developed by {DataPoint}. ARCnet was {proprietary} until the late 1980s and had about as large a marketshare as {Ethernet} among small businesses. It was almost as fast and was considerably cheaper at the time. (1995-01-16) ARCS {ARC} Arctic 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 The area of memory attached to a {Unix} process by the {brk} and {sbrk} {system calls} and used by {malloc} as dynamic storage. So named from a "malloc: corrupt arena" message emitted when some early versions detected an impossible value in the free block list. See {overrun screw}, {aliasing bug}, {memory leak}, {memory smash}, {smash the stack}. (1995-12-28) ARES A pictorial {query language}. ["A Query Manipulation System for Image Data Retrieval", T. Ichikawa et al, Proc IEEE Workshop Picture Data Description and Management, Aug 1980, pp. 61-67]. (1995-10-10) AREV {Advanced Revelation} AREXX {REXX} for the {Amiga}. {ARexxGuide (http://www.halcyon.com/robin/www/arexxguide/main.html)} (1996-02-06) arg {argument} argument ("arg" or parameter) A value or reference passed to a {function}, {procedure}, {subroutine}, command or program, by the caller. For example, in the function: square(x) = x * x x is the {formal argument} and in the call y = square(3+3) 3+3 is the {actual argument}. This will execute the function square with x having the value 6. There are many different conventions for passing arguments to functions and procedures including {call-by-value}, {call-by-name}, {call-by-need}. These affect whether the value of the argument is computed by the caller or the callee (the function) and whether the callee can modify the value of the argument as seen by the caller (if it is a variable). Arguments to a program are usually given after the command name, separated by spaces, e.g.: cat myfile yourfile hisfile Here "cat" is the command and "myfile", "yourfile", and "hisfile" are the arguments. (1995-01-24) Argus 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 et al, TOPLAS 5(3):381-404 (1983)]. (1995-12-28) Ariel An {array}-oriented language for the {CDC 6400}. ["Ariel Reference Manual", P. Devel, TR 22, CC UC Berkeley, Apr 1968]. ["A New Survey of the Ariel Programming Language", P. Deuel, TR 4, Ariel Consortium, UC Berkeley, June 1972]. [Deuel or Devel?] (1995-12-29) ARITH-MATIC {A-3} Arithmetic and Logic Unit (ALU or "mill") The part of the {central processing unit} which performs operations such as addition, subtraction and multiplication of integers and {bit-wise} {AND}, {OR}, {NOT}, {XOR} and other {Boolean} operations. The CPU's instruction decode logic determines which particular operation the ALU should perform, the source 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 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 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 An {object-oriented programming} system developed by a team led by Professor Santosh Shrivastava at the {University of Newcastle}, implemented entirely in {C++}. Arjuna provides a set of tools for the construction of {fault-tolerant} {distributed} applications. It exploits features found in most object-oriented languages (such as {inheritance}) and only requires a limited set of system capabilities commonly found in conventional {operating systems}. Arjuna provides the programmer with {classes} that implement {atomic transactions}, {object level recovery}, {concurrency} control and {persistence}. The system is {portable}, modular and flexible; the system software has been available via FTP since 1992. {Home (http://arjuna.ncl.ac.uk/)} E-mail: . (1995-03-06) ARL {ASSET Reuse Library} ARM 1. {Advanced RISC Machine}. Originally {Acorn} RISC Machine. 2. {Advanced RISC Machines} Ltd. 3. ["The Annotated C++ Reference Manual", Margaret A. Ellis and Bjarne Stroustrup, Addison-Wesley, 1990]. 4. {Active Reconfiguring Message}. (1997-10-03) ARM610 A 32-bit {RISC} {microprocessor} based on the {ARM6} processor core designed by {Advanced RISC Machines} Ltd. The ARM610 is the successor to the {ARM3} processor and is produced by {VLSI Technology Inc}. It consumes 500mW at 33MHz with a 5V supply. (1995-12-29) ARM7 A {RISC} {microprocessor} architecture from {Advanced RISC Machines} Ltd. (ARM). Building upon the {ARM6} family, the goal of the ARM7 design was to offer higher levels of raw compute performance at even lower levels of power consumption. The ARM7 architecture is now (Dec 1994) the most powerful low voltage {RISC} processor available on the market. The ARM7 offers several architectural extensions which address specific market needs, encompassing fast multiply and innovative embedded {ICE} support. Software development tools are available. The ARM7 architecture is made up of a core CPU plus a range of system peripherals which can be added to a CPU core to give a complete system on a chip, e.g. 4K or 8K {cache}, {Memory Management Unit}, {Write Buffer}, {coprocessor} interface, {ICEbreaker} embedded {ICE} support and {JTAG} {boundary scan}. The {ARM710} {microprocessor} is built around the ARM7 core. {(http://www.systemv.com/armltd/arm7.html)} (1995-01-05) ARM710 A 32-bit {RISC} {microprocessor} based on the {ARM7} processor core designed by {Advanced RISC Machines} Ltd. The A710 is the successor to the {ARM610} processor. It was released in July 1994 by {VLSI Technology Inc}. The ARM710 can run at 40MHz (fastest sample 55MHz) dissipating 500mW with a 5V supply or 25MHz with 3.3V supply. It has an 8 kilobyte on-chip {cache}, {memory management unit} and {write buffer}. The ARM700 and ARM710 processors represent a significant improvement over the {ARM610} processors. They have a higher maximum clock speed and a number of architectural improvements such as double the size of internal cache, this means that more of any process can be executed internally without accessing the (relatively) slow external memory. Other improvements are an improved {write buffer} and an enlarged {Translation Lookaside Buffer} in the {MMU}. All of these improvements increase the performance of the system and deliver more real performance than a simple comparison of clock speeds would indicate. The ARM710 has been optimised for integer performance. The FPA11 {floating point} {coprocessor} has a peak throughput of up to 5 {MFLOPS} and achieves an average throughput in excess of 3 MFLOPS for a range of calculations. (1995-04-21) ARM7500 An {ARM7} core with I/O and {VIDC20} all on one {integrated circuit}. (1994-09-23) ARM8 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 A {microprocessor} based on the {ARM8} processor core designed by {Advanced RISC Machines} Ltd. Planned features include a 60-100Mhz {clock rate}; 0.35-0.4 micron silicon fabrication; an improvement on the {ARM7}'s 1.4 cycle/instruction; a 16 Kbyte {cache}. Some estimates were 100 MIPS and 120 Kdhrystones at 70Mhz (twice the {ARM700}). Samples of the ARM800 are expected to be available in late 1995. It may run on a voltage below 3.3V. {Digital Semiconductor}'s Hudson fab is 0.35 micron and they have announced a licensing deal for the ARM architecture (see {StrongARM}). (1995-02-07) ARM Ltd {Advanced RISC Machines Ltd.} ARMM {Automated Retroactive Minimal Moderation} armour-plated {bulletproof} ARP {Address Resolution Protocol} ARPA {Defense Advanced Research Projects Agency} ARPANET {Advanced Research Projects Agency Network} ARQ {Automatic Repeat Request} array 1. A collection of identically typed data items distinguished by their indices (or "subscripts"). The number of dimensions an array can have depends on the language but is usually unlimited. A single ordinary variable (a "{scalar}") could be considered as a zero-dimensional array. A one-dimensional array is also known as a "{vector}". A reference to an array element is written something like A[i,j,k] where A is the array name and i, j and k are the indices. The {C} language is peculiar in that each index is written in separate brackets, e.g. A[i][j][k]. This expresses the fact that, in C, an N-dimensional array is actually a vector, each of whose elements is an N-1 dimensional array. Elements of an array are usually stored contiguously. Languages differ as to whether the leftmost or rightmost index varies most rapidly, i.e. whether each row is stored contiguously or each column (for a 2D array). Arrays are appropriate for storing data which must be accessed in an unpredictable order, in contrast to {lists} which are best when accessed sequentially. See also {associative array}. 2. A {processor array}, not to be confused with an {array processor}. (1995-01-25) array processor (Or "vector processor") A {computer}, or extension to its {arithmetic unit}, that is capable of performing simultaneous computations on elements of an {array} or table of data in some number of dimensions. Common uses for array processors include analysis of fluid dynamics and rotation of {3d} objects, as well as data retrieval, in which elements of a {database} are scanned simultaneously. Array processors are very rare now (1998). {Array presentation (http://www.cs.njit.edu/leon/105/c5/index.htm)}. [What sort of computations? How much parallelism? Example brands?] (1998-03-13) Array Processor Assembly Language (APAL) The {assembly language} for the {DAP} parallel computer. (1994-11-28) Array Theory A theory developed by Trenchard More Jr. and used as the basis for the {NIAL} language. Papers are available from the IBM Cambridge Scientific Center, Cambridge MA. (1995-01-25) arrow key 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 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 A {microkernel} currently under development by Dave Hudson , scheduled for release under {GPL} in May 1995. It is targeted at {embedded} applications on {Intel 80386}, {Intel 486} and {Pentium} based systems. (1995-03-29) Artifex A {CASE} environment from {ARTIS} of Turin for the development of large {event-driven} distributed systems. It has code-generation and rapid prototyping features. (1996-01-24) artificial intelligence (AI) The subfield of computer science concerned with the concepts and methods of {symbolic inference} by computer and symbolic {knowledge representation} for use in making inferences. AI can be seen as an attempt to model aspects of human thought on computers. It is also sometimes defined as trying to solve by computer any problem that a human can solve faster. Examples of AI problems are {computer vision} (building a system that can understand images as well as a human) and {natural language processing} (building a system that can understand and speak a human language as well as a human). These may appear to be modular, but all attempts so far (1993) to solve them have foundered on the amount of context information and "intelligence" they seem to require. See also {AI-complete}, {neats vs. scruffies}, {neural network}, {genetic programming}, {fuzzy computing}, {artificial life}. {ACM SIGART (http://sigart.acm.org/)}. {U Cal Davis (http://phobos.cs.ucdavis.edu:8001)}. {CMU Artificial Intelligence Repository (http://www.cs.cmu.edu/Web/Groups/AI/html/repository.html)}. (1995-10-29) Artificial Intelligence Lab {MIT AI Lab} Artificial Life (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 (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. A company, known for the {LANtastic} range of networking products. Originally providers of proprietary, {peer-to-peer} network hardware and software for small installations, Artisoft now also sells {Ethernet} and {Novell}-compatible hardware and software. {Home (http://www.artisoft.com/)} Telephone: +1 (800) 809 1257. Address: Tucson, Arizona, USA; Phoenix, Arizona, USA. (1995-04-24) ARTSPEAK An early simple language for {plotter} graphics. ["The Art of Programming, ARTSPEAK", Henry Mullish, Courant Inst (Nov 1974)]. (1995-02-21) AS 1. {Autonomous System}. 2. {Address Strobe}. (1999-04-08) as The {country code} for American Samoa. (1999-01-27) as31 An {8031}/{8051} {assembler} by Ken Stauffer and Theo Deraadt which produces a variety of {object code} output formats. The distribution includes an {assembler}, {yacc} parser and documentation. as31 runs on {Sun 3}, {Sun 4}, {SunOS 4.0}, {Tandy 6000}, and {Xenix}. Current version as of 1990-01-26: 1. {Washington (ftp://wuarchive.wustl.edu/usenet/comp.sources.misc/volume10/asm.8051.Z)}, {UUNET (ftp://ftp.uu.net/usenet/comp.sources.misc/volume10/asm.8051.Z)}. (1990-01-26) AS400 {AS/400} AS/400 An {IBM} {minicomputer} for small business and departmental users, released in 1988 and still in production in October 1998. Features include a menu-driven interface, {multi-user} support, terminals that are (in the grand {IBM} tradition) incompatible with anything else including the {IBM 3270} series, and an extensive library-based {operating system}. The machine survives because its {API} layer allows the {operating system} and {application programs} to take advantage of advances in hardware without recompilation and which means that a complete system that costs $9000 runs the exact same operating system and software as a $2 million system. There is a 64-bit {RISC} processor operating system implementation. Programming languages include {RPG}, {assembly language}, {C}, {COBOL}, {SQL}, {BASIC}, and {REXX}. Several {CASE} tools are available: {Synon}, {AS/SET}, {Lansa}. {Home (http://www.as400.ibm.com/)}. (1999-07-26) ASA {Adaptive Simulated Annealing} asap As soon as possible. (1999-10-13) asbestos Used as a modifier to anything intended to protect one from {flames}; also in other highly {flame}-suggestive usages. E.g., {asbestos longjohns}, {asbestos cork award}. (1996-02-06) asbestos cork award Once, long ago at {MIT}, there was a {flamer} so consistently obnoxious that another hacker designed, had made, and distributed posters announcing that said flamer had been nominated for the "asbestos cork award". (Any reader in doubt as to the intended application of the cork should consult the etymology under {flame}.) Since then, it is agreed that only a select few have risen to the heights of bombast required to earn this dubious dignity - but there is no agreement on *which* few. (1996-02-06) asbestos longjohns Notional garments donned by {Usenet} posters just before emitting a remark they expect will elicit {flamage}. This is the most common of the {asbestos} coinages. Also "asbestos underwear", "asbestos overcoat", etc. (1997-07-04) ascender A lowercase letter that extends above the "x-height" (the height of the letter "x"), such as "d", "t", or "h". Also used to denote the part of the letter extending above the x-height. Compare {descender}. (1998-03-27) ASCII {American Standard Code for Information Interchange} ASCII art (Or "character graphics", "ASCII graphics") The fine art of drawing diagrams using the {ASCII} character set (mainly "|-/\+"). See also {boxology}. Here is a serious example: o----)||(--+--|<----+ +---------o + D O L )||( | | | C U A I )||( +-->|-+ | +-\/\/-+--o - T C N )||( | | | | P E )||( +-->|-+--)---+--)|--+-o U )||( | | | GND T o----)||(--+--|<----+----------+ A power supply consisting of a full wave rectifier circuit feeding a capacitor input filter circuit Figure 1. And here are some very silly examples: |\/\/\/| ____/| ___ |\_/| ___ | | \ o.O| ACK! / \_ |` '| _/ \ | | =(_)= THPHTH! / \/ \/ \ | (o)(o) U / \ C _) (__) \/\/\/\ _____ /\/\/\/ | ,___| (oo) \/ \/ | / \/-------\ U (__) /____\ || | \ /---V `v'- oo ) / \ ||---W|| * * |--| || |`. |_/\ //-o-\\ ____---=======---____ ====___\ /.. ..\ /___==== Klingons rule OK! // ---\__O__/--- \\ \_\ /_/ _____ __...---'-----`---...__ _=============================== ,----------------._/' `---..._______...---' (_______________||_) . . ,--' / /.---' `/ '--------_- - - - - _/ `--------' Figure 2. There is an important subgenre of ASCII art that puns on the standard character names in the fashion of a rebus. +--------------------------------------------------------+ | ^^^^^^^^^^^^ | | ^^^^^^^^^^^ ^^^^^^^^^ | | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ | | ^^^^^^^ B ^^^^^^^^^ | | ^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^ | +--------------------------------------------------------+ "A Bee in the Carrot Patch" Figure 3. Within humorous ASCII art, there is, for some reason, an entire flourishing subgenre of pictures of silly cows. One is shown in Figure 2; here are three more: (__) (__) (__) (\/) ($$) (**) /-------\/ /-------\/ /-------\/ / | 666 || / |=====|| / | || * ||----|| * ||----|| * ||----|| ~~ ~~ ~~ ~~ ~~ ~~ Satanic cow This cow is a Yuppie Cow in love Figure 4. {(http://gagme.wwa.com/~boba/scarecrow.html)} (1996-02-06) ASCIIbetical order /as'kee-be'-t*-kl or'dr/ Used to indicate that data is sorted in {ASCII} collated order rather than alphabetical order. The main difference is that, in ASCII, all the upper case letters come before any of the lower case letters so, e.g., "Z" comes before "a". (1999-04-08) ASCIIbonics (From {ASCII} and Ebonics) A style of text communication in English which is most common on {talk} systems such as {irc}. Its notable characteristics are: Typing all in lowercase (and occasionally all in uppercase). Copious use of abbreviations of the sort "u" for "you" "1" for "one" (and therefore "some1" for "someone", "ne1" for "anyone"), "2" for "to", "r" for "are", etc. A general lack of punctuation, except for strings of question marks and exclamation marks. Common use of the idiom "m or f?", meant to elicit a statement of the listener's gender. Typical extended discourse in ASCIIbonics: "hey wasup ne1 want 2 {cyber}?" "m or f?" ASCIIbonics is similar to the way {B1FF} talked, although B1FF used more punctuation (lots more), and used all uppercase, rather than all lowercase. What's more, B1FF was only interested in {warez}, and so never asked "m or f?". It has been widely observed that some of the purest examples of ASCIIbonics come from non-native speakers of English. The phenomenon of ASCIIbonics predates by several years the use of the word "ASCIIbonics", as the word could only have been coined in or after late 1996, when "Ebonics" was first used in the US media to denote the US English dialects known in the linguistic literature as "Black Vernacular English". (1997-06-21) ASCII character table The following list gives the {octal}, decimal and {hexadecimal} {ASCII} codes for each character along with its printed representation and common name(s). Oct Dec Hex Name 000 0 0x00 NUL 001 1 0x01 SOH, Control-A 002 2 0x02 STX, Control-B 003 3 0x03 ETX, Control-C 004 4 0x04 EOT, Control-D 005 5 0x05 ENQ, Control-E 006 6 0x06 ACK, Control-F 007 7 0x07 BEL, Control-G 010 8 0x08 BS, backspace, Control-H 011 9 0x09 HT, tab, Control-I 012 10 0x0a LF, line feed, newline, Control-J 013 11 0x0b VT, Control-K 014 12 0x0c FF, form feed, NP, Control-L 015 13 0x0d CR, carriage return, Control-M 016 14 0x0e SO, Control-N 017 15 0x0f SI, Control-O 020 16 0x10 DLE, Control-P 021 17 0x11 DC1, XON, Control-Q 022 18 0x12 DC2, Control-R 023 19 0x13 DC3, XOFF, Control-S 024 20 0x14 DC4, Control-T 025 21 0x15 NAK, Control-U 026 22 0x16 SYN, Control-V 027 23 0x17 ETB, Control-W 030 24 0x18 CAN, Control-X 031 25 0x19 EM, Control-Y 032 26 0x1a SUB, Control-Z 033 27 0x1b ESC, escape 034 28 0x1c FS 035 29 0x1d GS 036 30 0x1e RS 037 31 0x1f US 040 32 0x20 space 041 33 0x21 !, exclamation mark 042 34 0x22 ", double quote 043 35 0x23 #, hash 044 36 0x24 $, dollar 045 37 0x25 %, percent 046 38 0x26 &, ampersand 047 39 0x27 ', quote 050 40 0x28 (, open parenthesis 051 41 0x29 ), close parenthesis 052 42 0x2a *, asterisk 053 43 0x2b +, plus 054 44 0x2c ,, comma 055 45 0x2d -, minus 056 46 0x2e ., full stop 057 47 0x2f /, oblique stroke 060 48 0x30 0, zero 061 49 0x31 1 062 50 0x32 2 063 51 0x33 3 064 52 0x34 4 065 53 0x35 5 066 54 0x36 6 067 55 0x37 7 070 56 0x38 8 071 57 0x39 9 072 58 0x3a :, colon 073 59 0x3b ;, semicolon 074 60 0x3c <, less than 075 61 0x3d =, equals 076 62 0x3e >, greater than 077 63 0x3f ?, question mark 0100 64 0x40 @, commercial at 0101 65 0x41 A 0102 66 0x42 B 0103 67 0x43 C 0104 68 0x44 D 0105 69 0x45 E 0106 70 0x46 F 0107 71 0x47 G 0110 72 0x48 H 0111 73 0x49 I 0112 74 0x4a J 0113 75 0x4b K 0114 76 0x4c L 0115 77 0x4d M 0116 78 0x4e N 0117 79 0x4f O 0120 80 0x50 P 0121 81 0x51 Q 0122 82 0x52 R 0123 83 0x53 S 0124 84 0x54 T 0125 85 0x55 U 0126 86 0x56 V 0127 87 0x57 W 0130 88 0x58 X 0131 89 0x59 Y 0132 90 0x5a Z 0133 91 0x5b [, open square bracket 0134 92 0x5c \, backslash 0135 93 0x5d ], close square bracket 0136 94 0x5e ^, caret 0137 95 0x5f _, underscore 0140 96 0x60 `, back quote 0141 97 0x61 a 0142 98 0x62 b 0143 99 0x63 c 0144 100 0x64 d 0145 101 0x65 e 0146 102 0x66 f 0147 103 0x67 g 0150 104 0x68 h 0151 105 0x69 i 0152 106 0x6a j 0153 107 0x6b k 0154 108 0x6c l 0155 109 0x6d m 0156 110 0x6e n 0157 111 0x6f o 0160 112 0x70 p 0161 113 0x71 q 0162 114 0x72 r 0163 115 0x73 s 0164 116 0x74 t 0165 117 0x75 u 0166 118 0x76 v 0167 119 0x77 w 0170 120 0x78 x 0171 121 0x79 y 0172 122 0x7a z 0173 123 0x7b {, open curly bracket 0174 124 0x7c |, vertical bar 0175 125 0x7d }, close curly bracket 0176 126 0x7e ~, tilde 0177 127 0x7f delete See {NUL}, {SOH}, {STX}, {ETX}, {ETX}, {EOT}, {ENQ}, {ACK}, {BEL}, {BS}, {HT}, {line feed}, {VT}, {FF}, {CR}, {SO}, {SI}, {DLE}, {XON}, {DC1}, {DC2}, {DC3}, {DC4}, {NAK}, {SYN}, {ETB}, {CAN}, {EM}, {SUB}, {ESC}, {FS}, {GS}, {RS}, {US}, {space}, {exclamation mark}, {double quote}, {hash}, {dollar}, {percent}, {ampersand}, {quote}, {open parenthesis}, {close parenthesis}, {asterisk}, {plus}, {comma}, {minus}, {full stop}, {oblique stroke}, {colon}, {semicolon}, {less than}, {equals}, {greater than}, {question mark}, {commercial at}, {open square bracket}, {backslash}, {close square bracket}, {caret}, {underscore}, {back quote}, {open curly bracket}, {vertical bar}, {close curly bracket}, {tilde}, {delete}. (1996-06-24) ASCII graphics {ASCII art} ASDIMPL {ASDO IMPlementation Language} ASDL {Abstract-Type and Scheme-Definition Language} ASDO IMPlementation Language (ASDIMPL) A {C}-like language, run on {Burroughs}' {mainframes} in the early 1980s, and {cross-compile}d to {x86}-based {embedded processors}. (1996-02-06) ASE 1. {Advanced Software Environment}. 2. {Application Service Element}. (1999-07-06) A* search A {graph} search {algorithm}. A* is guaranteed to find a minimal solution path before any other solution paths, if a solution exists, in other words, it is an "{admissible}" search algorithm. Each path is assigned a value based on the cost of the path (e.g. its length) and an (under)estimate of the cost of completing the path, i.e. the cost of a path from the end of the current path to a solution. (1995-03-31) ASF {Algebraic Specification Language} ash A {Bourne Shell} clone by Kenneth Almquist. It works pretty well. For running scripts, it is sometimes better and sometimes worse than {Bash}. Ash runs under {386BSD}, {NetBSD}, {FreeBSD}, and {Linux}. {FTP Linux version (ftp://ftp.win.tue.nl/pub/linux/ports/ash-linux-0.1.tar.gz)}. (1995-07-20) Ashmedai A {symbolic mathematics} package by Michael Levine that influenced {SMP} and {FORM}. There are versions for the {Univac 1108} and {VAX}/{VMS}. (1995-03-21) Ashton-Tate Corporation The original developer and vendor of the {dBASE} {relational database} and application development tool. In the early 1990s it was taken over by {Borland International, Inc.} [Dates? Address?] (1996-03-09) ASIC {Application-Specific Integrated Circuit} A Simulation Process-Oriented Language (ASPOL) An {ALGOL}-like language for computer {simulation}. ["Process and Event Control in ASPOL", M.H. MacDougall, Proc Symp on Simulation of Computer Systems, NBS (Aug 1975)]. (1996-03-25) ASIS 1. {Application Software Installation Server}. 2. {Ada Semantic Interface Specification}. ?? (1999-10-21) ASK {Amplitude Shift Keying} ASL {Algebraic Specification Language} ASL+ An {algebraic specification language} by David Aspinall of the {University of Edinburgh}. ASL+ has rules for proving the satisfaction of specifications. It can also be viewed as a {type theory} with {subtyping}, featuring {contravariant refinement} for Pi-abstracted specifications and a notion of {stratified equality} for {higher-order} objects. (1994-09-14) ASM {assembly language} ASME {American Society of Mechanical Engineers} ASN {Autonomous System Number} ASN.1 {Abstract Syntax Notation 1} ASP 1. {Active Server Pages}. 2. A {query language}(?). [Sammet 1969, p.702]. 3. {Attached Support Processor}. (1999-01-12) ASPECT An {IPSE} developed by an {Alvey} project, using {Z} to specify the {object-management system} and tool interface. (1996-03-25) ASpecT Algebraic specification of {abstract data types}. A {strict} {functional language} that compiles to {C}. Versions are available for {Sun}, {Ultrix}, {NeXT}, {Macintosh}, {OS/2} 2.0, {Linux}, {RS/6000}, {Atari}, {Amiga}. {(ftp://wowbagger.uni-bremen.de/pub/programming/languages)} (1996-03-25) aspect In {aspect-oriented programming}, a modular unit of control over emergent entities. (1999-08-31) aspect-oriented 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 using automatic tools. 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) aspect ratio The ratio of width to height of a {pixel} or a display screen. Square pixels (1:1) are considered preferable but displays are usually about 5:4. (1994-11-30) ASPEN A {toy language} for teaching {compiler} construction. ["ASPEN Language Specifications", T.R. Wilcox, SIGPLAN Notices 12(11):70-87 (Nov 1977)]. (1994-11-30) ASPI {Advanced SCSI Peripheral Interface} ASPIK 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 A {freeware} language from {MITRE Corp} for the description of {neural network}s. A compiler, bpmake, is included. Aspirin is designed for use with the {MIGRAINES} interface. {Version: 6.0 (ftp://ftp.cognet.ucla.edu/alexis/)} (1995-03-08) ASPLE A {toy language}. ["A Sampler of Formal Definitions", M. Marcotty et al, Computing Surveys 8(2):191-276 (Feb 1976)]. (1995-02-08) ASPOL {A Simulation Process-Oriented Language} ASQC {American Society for Quality Control} ASR {Automatic Send Receive} assembler A program which converts {assembly language} into {machine code}. (1996-03-25) ASSEMBLY An early system on the {IBM 702}. [Listed in CACM 2(5):1959-05-16]. (1996-06-27) assembly code {assembly language} Assembly Language (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 (Or "assembly code") A symbolic representation of the {machine language} of a specific computer. Assembly language is converted to {machine code} by an {assembler}. Programming in assembly language is slow and error-prone but is the only way to squeeze every last bit of performance out of the hardware. {Filename extension}: .s ({Unix}), .asm ({CP/M} and others). See also {second generation language}. (1996-09-17) Assembly Language Compiler (ALC) An alternative name for {IBM 360} {assembly language}. Compare {BAL}. (1995-01-04) Assembly Language for Multics (ALM) The {assembly language} of the {GE645} in which critical portions of the {Multics} {kernel} were written. (1994-11-24) assertion 1. An expression which, if false, indicates an error. Assertions can be used for {debugging} by catching {can't happen} errors. 2. In {logic programming}, a new {fact} or {rule} added to the database by the program at {run time}. This is an {extralogical} or impure feature of logic programming languages. (1997-06-30) ASSET {Asset Source for Software Engineering Technology} Asset Management The process whereby a large organisation collects and maintains a comprehensive list of the items it owns such as hardware and software. This data is used in connection with the financial aspects of ownership such as calculating the total cost of ownership, depreciation, licensing, maintenance and insurance. (1997-03-30) Asset Source for Software Engineering Technology (ASSET) A programme to promote software {reuse} by the US {DoD}. See also {ASSET Reuse Library}. (1996-08-19) assigned numbers The {RFC} {STD 2} documenting the currently assigned values from several series of numbers used in network {protocol} implementations. This RFC is updated periodically and, in any case, current information can be obtained from the {Internet Assigned Numbers Authority} (IANA). If you are developing a protocol or application that will require the use of a link, {socket}, {port}, protocol, etc., you should contact the IANA to receive a number assignment. (1996-08-19) assignment Storing the value of an expression in a variable. This is commonly written in the form "v = e". In {Algol} the assignment operator was ":=" (pronounced "becomes") to avoid mathematicians qualms about writing statements like x = x+1. Assignment is not allowed in {functional language}s, where an identifier always has the same value. See also {referential transparency}, {single assignment}, {zero assignment}. (1996-08-19) assignment problem (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 (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 (ACL) The international scientific and professional society for people working on problems involving {natural language} and computation. Membership includes the ACL quarterly journal, "Computational Linguistics", reduced registration at most ACL-sponsored conferences, discounts on ACL-sponsored publications, and participation in ACL Special Interest Groups. The ACL is in its 31st year; there are more than 2000 members worldwide. E-mail: . {Home (http://www.cs.columbia.edu/~acl/)}. (1999-08-31) Association for Computing (ACM, before 1997 - "Association for Computing Machinery") The largest and oldest international scientific and educational computer society in the industry. Founded in 1947, only a year after the unveiling of {ENIAC}, ACM was established by mathematicians and electrical engineers to advance the science and application of information technology. {John Mauchly}, co-inventor of the ENIAC, was one of ACM's founders. Since its inception ACM has provided its members and the world of computer science a forum for the sharing of knowledge on developments and achievements necessary to the fruitful interchange of ideas. ACM has 90,000 members - educators, researchers, practitioners, managers, and engineers - who drive the Association's major programs and services - publications, special interest groups, chapters, conferences, awards, and special activities. The ACM Press publishes journals (notably {CACM}), book series, conference proceedings, CD/ROM, Hypertext and Video, and specialized publications such as curricula recommendations and self-assessment procedures. {Home (http://info.acm.org/)}. (1998-02-24) Association for Computing Machinery {Association for Computing} Association for Progressive Communications (APC) A world-wide organisation of like-minded computer {networks} providing a global communications network dedicated to the free and balanced flow of information. APC's partner organisations, include The {Institute for Global Communications} (San Francisco), Alternex (Brazil), Nicarao (Nicaragua) and GlasNet (Russia). These organisations serve people working toward goals that include the prevention of warfare, elimination of militarism and poverty, protection of the environment, human rights, social and economic justice, participatory democracy, nonviolent conflict resolution, and the promotion of sustainable development. {Home (http://www.apc.org/)}. E-mail: . (1996-11-06) Association for SIMULA Users See {SIMULA}. Address: Royal Institute of Technology, S-100 44 Stockholm, Sweden. [Details?] (1995-03-29) Association Française des Utilisateurs d'Unix (et des systčmes ouverts, AFUU) French Association of {Unix} Users. {Home (http://www.afuu.fr/)}. (1996-06-07) Association of American Publishers (AAP) A group engaged in standardisation efforts in document preparation. Association of C and C++ Users (ACCU) A community of people with an interest in the {C} family of programming languages: {K&R C}, {ANSI C} and {C++}. The community includes professional programmers, the suppliers of {compilers}, and those who are just interested in the languages. ACCU members are using C and C++ on a wide range of platforms - {Unix}, {MS-DOS}, {OS/2}, {CP/M} - home computers, {IBM PC}s, {workstations} and {super-computers}. Although the organisation is based in the UK, the membership is worldwide. There are members in the US, mainland Europe, Russia, the Middle East and Australia. E-mail: , , (Academic Liaison Officer). Address: The Membership Secretary, 64 Southfield Road, Oxford OX4 1PA, United Kingdom. (1996-12-02) Association of Lisp Users (ALU) A user group which aims to promote {Lisp}, help inform and educate Lisp users in general, and help represent Lisp users as a group to the vendors. The ALU holds an annual conference and supports the formation of inter-vendor standards. ALU has international membership and is incorporated in the US. {Usenet} {newsgroups}: {news:comp.org.lisp-users} {news:comp.std.lisp}. Mailing list: . {Home (http://www.cs.rochester.edu/u/miller/ALU/home.html)} (1996-12-07) associative array An {array} where the {indices} are not just {integers} but may be arbitrary strings. {awk} and its descendants (e.g. {Perl}) have associative arrays which are implemented using {hash coding}. (1995-02-16) associative memory {content addressable memory} Associative Memory Parallel Processing Language (AMPPL-II) A language from the early 1970s. (1995-11-14) ASTAP Advanced STatistical Analysis Program. Analysing electronic circuits and other networks. ["Advanced Statistical Analysis Program (ASTAP) Program Reference Manual", SH-20-1118, IBM, 1973]. asterisk "*". Common names include: star; {INTERCAL}: {splat}; {ITU-T}: asterisk. Rare: {wild card}; gear; dingle; mult; spider; aster; times; twinkle; glob (see {glob}); {Nathan Hale}. Asterix was a fictional Gaul. (1995-03-06) asterix Do you mean "{asterisk}"? (1997-03-01) Astral Based on {Pascal}, never implemented. ["ASTRAL: A Structured and Unified Approach to Database Design and Manipulation", T. Amble et al, in Proc of the Database Architecture Conf, Venice, June 1979]. AST Research Computer manufacturer. Quarterly sales $409M, profits $14M (Aug 1994). asymmetrical modulation A scheme to maximise use of a communications line by giving a larger share of the {bandwidth} to the {modem} at the end which is transmitting the most information. Only one end of the connection has full bandwidth, the other has only a fraction of the bandwidth. Normally, which end gets the full bandwidth is chosen dynamically. Asymmetrical modulation was made famous by the {HST} mode of the early high-speed modems from {US Robotics}. (1998-03-13) Asymmetric Digital Subscriber Line (ADSL, or Asymmetric Digital Subscriber Loop) A form of {Digital Subscriber Line} in which the bandwidth available for {downstream} connection is significantly larger then for {upstream}. Although designed to minimise the effect of {crosstalk} between the upstream and downstream channels this setup is well suited for {web browsing} and {client}-{server} applications as well as for some emerging applications such as {video on demand}. The data-rate of ADSL strongly depends on the length and quality of the line connecting the end-user to the telephone company. Typically the upstream data flow is between 16 and 640 {kilobits} per second while the downstream data flow is between 1.5 and 9 {megabits} per second. ADSL also provides a voice channel. ADSL can be configured to carry digital data, analog voice and broadcast {MPEG2} video in a variety of implementations to meet customer needs. ["Data Cooks, But Will Vendors Get Burned?", "Supercomm Spotlight On ADSL" & "Lucent Sells Paradine", Wilson & Carol, Inter@ctive Week Vol. 3 #13, p1 & 6, June 24 1996]. See also {Carrierless Amplitude/Phase Modulation}, {Discrete MultiTone} and the {ADSL Forum Home Page (http://www.adsl.com/)}. (1998-05-18) Asymmetric Digital Subscriber Loop {Asymmetric Digital Subscriber Line} asynchronous Not synchronised by a shared signal such as {clock} or {semaphore}, proceeding independently. Opposite: {synchronous}. 1. A {process} in a {multitasking} system whose execution can proceed independently, "in the {background}". Other processes may be started before the asynchronous process has finished. 2. A communications system in which data transmission may start at any time and is indicated by a {start bit}, e.g. {RS-232}. A data {byte} (or other element defined by the {protocol}) ends with a {stop bit}. A continuous marking condition (identical to stop bits but not quantized in time), is then maintained until data resumes. (1995-12-08) Asynchronous Balanced Mode A communication mode of {HDLC} and derivative protocols, supporting {peer-oriented} {point-to-point} communications between two nodes, where either node can initiate transmission. (1997-05-07) Asynchronous Communications Interface Adapter (ACIA) A kind of {integrated circuit} that provides data formatting and control to {RS-232} serial interfaces. [Is this the same as a {UART}?] (1997-05-07) asynchronous logic A {data-driven} circuit design technique where, instead of the components sharing a common clock and exchanging data on clock edges, data is passed on as soon as it is available. This removes the need to distribute a common clock signal throughout the circuit with acceptable {clock skew}. It also helps to reduce power dissipation in {CMOS} circuits because gates only switch when they are doing useful work rather than on every clock edge. There are many kinds of asynchronous logic. Data signals may use either "dual rail encoding" or "data bundling". Each dual rail encoded {Boolean} is implemented as two wires. This allows the value and the timing information to be communicated for each data bit. Bundled data has one wire for each data bit and another for timing. Level sensitive circuits typically represent a logic one by a high voltage and a logic zero by a low voltage whereas transition signalling uses a change in the signal level to convey information. A speed independent design is tolerant to variations in gate speeds but not to propagation delays in wires; a delay insensitive circuit is tolerant to variations in wire delays as well. The purest form of circuit is delay-insensitive and uses dual-rail encoding with transition signalling. A transition on one wire indicates the arrival of a zero, a transition on the other the arrival of a one. The levels on the wires are of no significance. Such an approach enables the design of fully delay-insensitive circuits and automatic layout as the delays introduced by the layout compiler can't affect the functionality (only the performance). Level sensitive designs can use simpler, stateless logic gates but require a "return to zero" phase in each transition. {(http://www.cs.man.ac.uk/amulet/async/)} (1995-01-18) Asynchronous Transfer Mode (ATM, or "fast packet") A method for the dynamic allocation of {bandwidth} using a fixed-size {packet} (called a cell). See also {ATM Forum}, {Wideband ATM}. {ATM acronyms (http://www.atmforum.com/atmforum/acronym_index.html)}. {Indiana acronyms (http://cell-relay.indiana.edu/cell-relay/FAQ/ATM-Acronyms.html)}. [Data rate(s)?] (1996-04-01) asyncronous It's spelled "{asynchronous}". (1996-12-13) AT {IBM PC AT} at 1. {commercial at}. 2. The {country code} for Austria. (1999-01-27) AT-3 Original name of {MATH-MATIC}. [Sammet 1969, p.135]. ATA {Advanced Technology Attachment} ATA-2 {Advanced Technology Attachment Interface with Extensions} ATA-4 /ul'tr* D M A/ (Or "Ultra DMA", "UDMA", "Ultra-ATA", "Ultra-DMA/33") A development of the {Advanced Technology Attachment} specifications which gives nearly twice the maximum transfer speed of the {ATA-3} standard ({PIO} Mode 4). ATA-4 Extensions Ultra DMA/33 Synchronous DMA Mode maximum burst transfer rates: Mode Cycle Time Transfer Rate ns MB/s 0 235 16 1 160 24 2 120 33 This is achieved by improving timing windows in the {protocol} on the ATA interface; reducing propagation delays by {pipelining} data transfers and transferring data in {synchronous} (strobed) mode. Developed by {Quantum Corporation}, ATA-4 has been freely licensed to manufacturers and is supported by {Intel Corporation}. (1998-09-30) ATAPI {AT Attachment Packet Interface} Atari 1. A maker of arcade games, home video game systems, and home computers, especially during the 1970s and 1980s. Atari are best known for their range of 16- and 32-bit {microcomputers}, notable for having a built-in {MIDI} interface. As of February 1994 the range included the Atari 520ST, 1040ST, Mega ST, STe, STacy, Mega STe, TT, and Falcon. There are also emulators for the Apple {Macintosh} and {IBM PC}/XT/AT available. {Home (http://www.atarigames.com/)}. {Usenet newsgroups}: {news:comp.binaries.atari.st}, {news:comp.sys.atari.st.tech}, {news:comp.sources.atari.st}, {news:comp.sys.atari.st}, {news:comp.sys.atari.advocacy}, {news:comp.sys.atari.programmer}, {news:stgt.atari}, {news:alt.steinberg.cubase}, {news:demon.ip.support.atari}, {news:muc.lists.atarix}. German: {news:maus.sys.atari}, {news:maus.sys.atari.desktop}, {news:maus.sys.atari.f030}, {news:maus.sys.atari.gemini}, {news:maus.sys.atari.hardware}, {news:maus.sys.atari.mint}, {news:maus.sys.atari.okami}, {news:maus.sys.atari.software}, {news:maus.sys.atari.talk}, {news:maus.gui.gem}, {news:maus.comp.medusa}, {news:maus.os.minix}, {news:z-netz.rechner.atari.allgemein}, {news:z-netz.rechner.atari.hardware}, {news:zer.z-netz.rechner.atari.hardware}, {news:zer.z-netz.rechner.atari.programmieren}, {news:zer.z-netz.rechner.atari.spiele}, {news:fido.ger.atari}, {news:sfnet.atk.atari} [Finnish], {news:fr.comp.sys.atari} [French]. {Michigan U (ftp://atari.archive.umich.edu)} [141.211.164.8], {UK (ftp://micros.hensa.ac.uk/)}, {Germany (ftp://ftp.Germany.EU.net)} [192.76.144.75], {Netherlands (ftp://ftp.cs.ruu.nl/)} [131.211.80.17], {UK (ftp://src.doc.ic.ac.uk/computing/systems/atari/umich)}. (1999-07-12) AT Attachment {Advanced Technology Attachment} AT Attachment Packet Interface (ATAPI) Part of the {EIDE} interface that provides additional commands to control a {CD-ROM} drive or {magnetic tape}. [Winn L. Rosch "The Winn L. Rosch Hardware Bible" (Third Edition), Sams Publishing, 1994]. (1998-11-01) AT bus architecture {Industry Standard Architecture} AtFS Attributed File System: the basis of the Shape_VC toolkit. Cooperative work within projects is supported by a status model controlling visibility of version objects, locking, and "long transactions" for synchronizing concurrent updates. The concept of object attributes provides a basis for storing management information with versions and passing this information between individual tools. This mechanism is useful for building integrated environments from a set of unrelated tools. Athena Project Athena: a distributed system project for support of educational and research computing at MIT. Much of the software developed is now in wider use, especially the X Window System Atherton Atherton Technology developed the Software BackPlane CASE framework. Their Atherton Tool Integration Services were the basis for the ATIS standard. Athlon (K7) {AMD}'s 7th generation {x86} {processor}, released in June 1999. Athlon uses a {Slot A} {motherboard} and is not compatible with {Slot 1} motherboards. (1999-08-05) ATIS {A Tools Integration Standard} ATK The Andrew Toolkit ATLAS Abbreviated Test Language for Avionics Systems. MIL-spec language for automatic testing of avionics equipment. Replaced/upgraded Gaelic and several other test languages. "IEEE Standard ATLAS Test Language", IEEE Std 416-1976. Atlas Autocode Autocode for the {Ferranti} {Atlas}, which may have been the first commercial computer with {hardware-paged} {virtual memory}. Whereas other {autocode}s were basically symbolic {assembly language}s, Atlas Autocode was high-level and {block-structured}, resembling a cross between {FORTRAN} and {ALGOL 60}. It had {call-by value}, loops, declarations, complex numbers, pointers, {heap} and {stack} storage generators, {dynamic array}s and extensible {syntax}. ATM 1. {Asynchronous Transfer Mode}. 2. Automatic Teller Machine. A cash dispenser. 3. At the moment. 4. {Adobe Type Manager}. (1995-12-04) ATM Forum 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 . {Home (http://www.atmforum.com/)}. (1999-06-14) atob /A too B/ A utility that does {ASCII} to {binary} conversion. The reverse process is {btoa}. (1997-08-08) ATOLL Acceptance, Test Or Launch Language. Language used for automating the checkout and launch of Saturn rockets. ["SLCC ATOLL User's Manual", IBM 70-F11-0001, Huntsville AL Dec 1970]. atomic [Greek "atomos", indivisible] Indivisible; cannot be split up. For example, an instruction may be said to do several things "atomically", i.e. all the things are done immediately, and there is no chance of the instruction being half-completed or of another being interspersed. Used especially to convey that an operation cannot be interrupted. An atomic data type has no internal structure visible to the program. It can be represented by a flat domain (all elements are equally defined). Machine integers and {Booleans} are two examples. An atomic {database} transaction is one which is guaranteed to complete successfully or not at all. If an error prevents a partially-performed transaction from proceeding to completion, it must be "backed out'" to prevent the database being left in an inconsistent state. A Tools Integration Standard (ATIS) An {object-oriented} interface to a set of services that allows the saving, accessing and managing of information in a common repository. Developed by {Atherton Technology} and {DEC}, based on an extended version of the {Software BackPlane}, now proposed as an industry standard. (1994-10-25) ATRAC {AdaptiveTRansform Acoustic Coding} ATS {Attribute Translation System} at sign {commercial at} AT&T American Telephone and Telegraph, Inc. One of the largest US telecommunications providers. Also noted for being the birthplace of the {Unix} {operating system} and the {C} and {C++} programming languages. AT&T was incorporated in 1885, but traces its lineage to Alexander Graham Bell and his invention of the telephone in 1876. As parent company of the former {Bell System}, AT&T's primary mission was to provide telephone service to virtually everyone in the United States. In its first 50 years, AT&T established subsidiaries and allied companies in more than a dozen other countries. It sold these interests in 1925 and focused on achieving its mission in the United States. It did, however, continue to provide international long distance service. The Bell System was dissolved at the end of 1983 with AT&T's divestiture of the Bell telephone companies. Today, AT&T operates worldwide in competitive, high-technology markets, with only its long distance services remaining under government regulation. With 2.4 million registered shareowners, AT&T's is the most widely held stock in America. See also {3DO}, {Advanced RISC Machine}, {Berkeley System Distribution}, {Bell Laboratories}, {Concurrent C}, {Death Star}, {dinosaurs mating}, {InterNIC}, {System V}, {Nawk}, {Open Look}, {rc}, {S}, {Standard ML of New Jersey}, {Unix International}, {Unix conspiracy}, {USG Unix}, {Unix System Laboratories}. {Home (http://www.att.com/)}. {Research (http://www.research.att.com/)}. [Would someone write a story around those "see also"s?] (1994-12-07) Attachment Unit Interface (AUI) The part of the {IEEE} {Ethernet} {standard} located between the {MAC}, and the {MAU}. The AUI is a {transceiver} cable that provides a path between a {node}'s Ethernet interface and the MAU. (1996-12-08) AT&T Bell Labs {Bell Laboratories} atto- {prefix} attoparsec About 3.1 cm (one inch). "atto-" is the standard {SI} {prefix} for multiplication by 10^-18. A parsec (parallax-second) is 3.26 light-years; an attoparsec is thus 3.26 * 10^-18 light years. Thus, one attoparsec per {microfortnight} is about one inch per second. This unit is reported to be in use (though probably not very seriously) among hackers in the UK. (1996-12-08) Attribute Translation System (ATS) A {BNF}-based {parser generator} from the {University of Saskatchewan}(?). It generates table-driven {LL1} {parser}s with full {insert-only error recovery}. It also has full left-attribute semantic handling, which is a dream compared to using {YACC}'s parser actions. E-mail: Dave Bocking ? (1988-11-29) ATX An {open} {PC} {motherboard} specification by {Intel}. ATX is a development of the {Baby AT} specification with the motherboard rotated 90 degrees in the chassis. The {CPU} and {SIMM} sockets have been relocated away from the {expansion card} slots meaning that all the slots support full-length cards. More {I/O} functions are integrated on the motherboard. As the longer edge of the board is now at the back of the chassis, there is more space for connectors; also, the I/O opening on the back panel of the chassis has been defined as double the previous height, allowing vendors to add extra on-board I/O functions over and above the standard. Most {Pentium Pro} boards use this {form factor}. As well as the motherboard size, layout, and placement, the ATX specification also includes requirements for power supply and fan specification and location. The full size ATX board measures 305mm wide by 244mm deep. There is also a Mini-ATX form factor, 284mm by 208mm. {Intel Home (http://developer.intel.com/design/motherbd/atx.htm)}. {Teleport Home (http://www.teleport.com/~atx/)}. (1996-12-10) au 1. The two character {country code} for Australia used in {Internet} {domain names}. 2. {audio}. (1995-02-15) aubergine A secret term used to refer to computers in the presence of computerphobic third parties. (1995-01-24) audio Sound, one component of {multimedia}. Computers (and audio compact discs and digital audio tape) work with {digital audio}, in contrast to vinyl disks or analogue tape. (1999-07-30) audiographics {Audiographic Teleconferencing} audiographic teleconferencing (Or "electronic whiteboarding", "screen sharing") A form of {teleconferencing} in {real time} using both an {audio} and a data connection. The computer screen is shared by more than one site, and used as an electronic blackboard, overhead projector or still video projector. Some systems allow for sharing software also. (1995-10-06) Audio IFF (AIFF) A format developed by {Apple Computer} Inc. for storing high-quality sampled {audio} and musical instrument information. It is also used by {SGI} and several professional audio packages. (1994-10-10) AudioOne Digital recording and editing software developed by {BizTrack Software Development} for the dance, music, and audio industries. AudioOne includes a waveform recorder that allows signal manipulation, editing, and recording. (1996-09-28) Audio Processing Technology (APT) A company that produces {codecs} based on {predictive analysis} rather than {frequency coding}. (1996-01-15) Audio Video Interleave (AVI) An {audio}-{video} {standard} designed by {Microsoft}. Apparently proprietary and {Microsoft Windows}-specific. {(http://www2.echo.lu/oii/en/video.html#AVI)}. [Details?] (1996-09-08) Augumented Backus-Naur Form An extension of {Backus-Naur Form} documented in {RFC 2234}. [Summary?] (1997-11-23) AUI 1. {Adaptable User Interface}. 2. {Attachment Unit Interface}. (1996-12-08) A'UM A {stream}-based, {concurrent}, {logic}, {object-oriented} language by K. Yoshida and T. Chikayama , built on top of {KL1}. ["A'UM - A Stream-based Concurrent Logic Object-Oriented Language", K. Yoshida et al, Proc 3rd Intl Conf Fifth Gen Comp Sys, Springer 1988, pp. 638-649]. (1996-12-08) AUP {acceptable use policy} Aurora ["The Aurora Or-Parallel Prolog System", E. Lusk et al, Proc 3rd Intl Conf on Fifth Generation Comp Systems, pp. 819-830, ICOT, A-W 1988]. Austin Kyoto Common Lisp (AKCL) A collection of ports, bug fixes, and performance improvements to {KCL} by William Schelter , , University of Texas. Version 1-615 includes ports to {Decstation} 3100, {HP9000}/300, {i386}/{Sys V}, {IBM-PS2}/{AIX}, {IBM-RT}/{AIX}, {SGI}, {Sun-3}/{Sunos} 3 or 4, {Sun-4}, {Sequent Symmetry}, {IBM370}/{AIX}, {VAX}/{BSD VAX}/{Ultrix}, {NeXT}. {(ftp://rascal.ics.utexas.edu/pub/akcl-1-609.tar.Z)} (1992-04-29) authentication The verification of the identity of a person or process. In a communication system, authentication verifies that messages really come from their stated source, like the signature on a (paper) letter. authoring Creating a {hypertext} or {hypermedia} document. (1994-11-07) autobaud {automatic baud rate detection} autobogotiphobia /aw'toh-boh-got`*-foh'bee-*/ See {bogotify}. AutoCAD A {CAD} {software} package for mechanical engineering marketed by {Autodesk, Inc.} (1994-11-09) Autocode 1. The name given to the {assembly language} accepted by {AUTOCODER}. 2. A generic term for symbolic {assembly language}. Versions of Autocode were developed for {Ferranti} {Atlas}, {Titan}, {Mercury} and {Pegasus} and {IBM 702} and {IBM 705}. AUTOCODER Possibly the first primitive {compiler}. It was written by Alick E. Glennie in 1952. It translated symbolic statements into {machine language} for the {Manchester Mark I} computer. Autocoding later came to be a generic term for {assembly language} programming. (1994-11-07) Autodesk, Inc. The distributors of the {AutoCAD} {CAD} package. Address: Sausalito, CA, USA. (1994-11-09) AUTOEXEC.BAT The {batch file} containing commands, loaded by {MS-DOS} after running {CONFIG.SYS}. AUTOEXEC.BAT contains normal DOS commands and can be used for additional system configuration such as setting paths and variables, configuring network connections and running {application program}s. (1995-03-18) AUTOGRAF A system for describing {bar chart}s. ["User's Manual for AUTOGRAF", Cambridge Computer Assoc (Dec 1972)]. AUTOGRP AUTOmated GRouPing system. An interactive statistical analysis system, an extension of {CML}. ["AUTOGRP: An Interactive Computer System for the Analysis of Health Care Data", R.E. Mills et al, Medical Care 14(7) (Jul 1976)]. (1994-11-07) Auto Idle A facility provided by some {Intel} {clock doubled} {microprocessor}s where the internal clock can be slowed to the external {clock rate} while the processor is waiting for data from memory, returning to full speed as soon as the data arrives. See also {System Management Mode}. (1994-11-09) Autolisp A dialect of {Lisp} used by the {Autocad} {CAD} package from {Autodesk}. (1994-11-09) autoloader {stack loader} automagically /aw-toh-maj'i-klee/ or /aw-toh-maj'i-k*l-ee/ Automatically, but in a way that, for some reason (typically because it is too complicated, or too ugly, or perhaps even too trivial), the speaker doesn't feel like explaining to you. See {magic}. "The C-INTERCAL compiler generates C, then automagically invokes {cc} to produce an executable." automata {automaton} automata theory {automaton} Automated Engineering Design (AED) (Or "ALGOL Extended for Design") A systems language for the {IBM 7090} and {IBM 360} developed at {MIT} System Laboratory ca. 1965 by a team led by Douglas T. Ross (now at {Softech}). AED is an extension of {ALGOL 60} with {record}s ("plexes"), pointers, and {dynamic allocation}. {DYNAMO II} was written in AED, as was the first {BCPL} {compiler}. Versions: AED-0, AED-1, AED-JR. ["The Automated Engineering Design (AED) Approach to Generalized Computer-Aided Design", D.T. Ross, Proc ACM 22nd Natl Conf, 1967]. [Sammet 1969 and 1978]. (1995-03-26) Automated Retroactive Minimal Moderation (ARMM) A {Usenet} robot created by Dick Depew of Munroe Falls, Ohio. ARMM was intended to automatically cancel posts from anonymous-posting sites. Unfortunately, the robot's recogniser for anonymous postings triggered on its own automatically-generated control messages! Transformed by this stroke of programming ineptitude into a monster of Frankensteinian proportions, it broke loose on the night of March 31, 1993 and proceeded to {spam} {news:news.admin.policy} with a recursive explosion of over 200 messages. ARMM's bug produced a recursive {cascade} of messages each of which mechanically added text to the ID and Subject and some other headers of its parent. This produced a flood of messages in which each header took up several screens and each message ID and subject line got longer and longer and longer. Reactions varied from amusement to outrage. The pathological messages crashed at least one mail system, and upset people paying line charges for their {Usenet} feeds. One poster described the ARMM debacle as "instant {Usenet} history" (also establishing the term {despew}), and it has since been widely cited as a cautionary example of the havoc the combination of good intentions and incompetence can wreak on a network. Compare {Great Worm}; {sorcerer's apprentice mode}. See also {software laser}, {network meltdown}. (1996-01-08) automated testing Software testing assisted with software tools that require no operator input, analysis, or evaluation. (1996-05-10) AUTOMATH Eindhoven, Netherlands. A very high level language for writing proofs. "The Mathematical Language AUTOMATH, Its Usage and Some of its Extensions", N.G. deBruijn, in Symp on Automatic Demonstration, LNM 125, Springer 1970. Automatically Programmed Tools (APT) A language for numerically controlled machine tools. Versions: APT II (IBM 704, 1958), APT III (IBM 7090, 1961). ["APT Part Programming", McGraw-Hill]. [Sammet 1969, p. 605]. (1995-05-04) automatic baud rate detection (ABR, autobaud) A process by which a receiving device determines the speed, code level, and stop bits of incoming data by examining the first character, usually a preselected sign-on character. ABR allows the receiving device to accept data from a variety of transmitting devices operating at different speeds without needing to establish data rates in advance. (1996-06-18) automatic hyphenation 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 (AMTRAN) A system developed by NASA Huntsville in 1966 for {IBM 1620}, based on the {Culler-Fried} System. It required a special terminal. ["AMTRAN: An Interactive Computing System", J. Reinfelds, Proc FJCC 37:537- 542, AFIPS (Fall 1970)]. (1995-11-14) Automatic Network Routing (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 (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 (ARQ) A {modem} error control {protocol} in which the receiver asks the transmitter to resend corrupted data. (1995-11-14) Automatic Send Receive (ASR) Part of a designation for a hard-copy {terminal}, manufactured by {Teletype Corporation}, which could be commanded remotely to send the contents of its {paper tape} reader. The ASR-33 was the most common {minicomputer} terminal in the early 1970s. (1995-11-23) Automatic Sequence Controlled Calculator {Mark 1} automation Automatic, as opposed to human, operation or control of a process, equipment or a system; or the techniques and equipment used to achieve this. Most often applied to computer (or at least electronic) control of a manufacturing process. See also {design automation}, {office automation}, {manularity}, {Manufacturing Automation Protocol}, {PEARL}, {QBE}. (1994-10-21) Automatische Rechenplanfertigung A programming language published in 1952 by Heinz Rutishauser (1918-70). automaton (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. The company which produced {CAM-PC}. Address: Ballston Spa, NY, USA. {Home (http://www.automatrix.com/)} (1995-04-21) Autonomous System (AS) A collection of {router}s under a single administrative authority using a common {Interior Gateway Protocol} for routing packets. Autonomous System Number (ASN) Used for {routing} on {Internet}. See {Autonomous System}. Autopass ["Autopass: An Automatic Programming System for Computer-Controlled Mechanical Assembly", L.I. Lieberman et al, IBM J Res Dev 21(4):321-333 (1979)]. autoprojector A self-applicable {partial evaluator}. AUTO-PROMPT Numerical control language from IBM for 3d milling. [Sammet 1969, p.606]. Autostat ["Autostat: A Language for Statistical Programming", A.S. Douglas et al, Computer J 3:61 (1960)]. autostereogram {SIRDS} A/UX (Apple's UniX) {Apple}'s version of {Unix} for {Macintosh} computers. A/UX merges the {Macintosh Finder} ({GUI}) with a Unix core, offering functions from both systems. It will run on some late-model {Motorola 68000} Macs, but not on {Power Macintoshes}. A/UX is based on {AT&T} Unix {System V}.2.2 with numerous extensions from V.3, V.4 and {BSD} 4.2/4.3. It also provides full {POSIX} compliance. A/UX 3.x.x incorporates {System 7} for the Macintosh, thus supporting the vast majority of Macintosh {applications}. System 7 and Unix are fully integrated under A/UX 3.x.x with the Unix file system being seen as a disk drive by the Finder. {jagubox's A/UX Home Page (http://jagubox.gsfc.nasa.gov/aux/Info/FAQ.auxl)}. (1997-12-13) auxiliary storage An obsolete term for a {hard disk} {drive}. (1997-04-14) av {avatar} Avalon/C++ 1986. Fault-tolerant distributed systems, influenced by {Argus}. A concurrent extension of {C++} with servers and transactions. "Camelot and Avalon: A Distributed Transaction Facility", J.L. Eppinger et al, Morgan Kaufmann 1990. Avalon/Common LISP Prototype only. "Reliable Distributed Computing with Avalon/Common LISP", S.M. Clamen et al, CMU-CS-89-186 and Proc Intl Conf on Computer Languages, Mar 1990. avatar 1. An {image} representing a user in a multi-user {virtual reality} (or VR-like, in the case of {Palace}) space. 2. (CMU, Tektronix) {root}, {superuser}. There are quite a few {Unix} computers on which the name of the superuser account is "avatar" rather than "root". This quirk was originated by a {CMU} hacker who disliked the term "superuser", and was propagated through an ex-CMU hacker at {Tektronix}. (1997-09-14) average seek time The mean time it takes to move the head of a {disk drive} from one {track} to another, averaged over the source and destination cylinders. The average seek time gives a good measure of the speed of the drive in a multi-user environment where successive read/write request are largely uncorrelated. Ten ms is common for a {hard disk} and 200 ms for an eight-speed {CD-ROM}. (1997-07-22) AVI {Audio Video Interleave} Avon A {dataflow} language. ["AVON: A Dataflow Language", A. Deb, ICS 87, Second Intl Conf on Supercomputing, v.3, pp.9-19 (ISI 1987)]. (1994-11-28) AVS {Application Visualisation System} aw The {country code} for Aruba. (1999-01-27) AWE {Advanced WavEffect} awk 1. (Named from the authors' initials) An interpreted language included with many versions of {Unix} for massaging text data developed by Alfred Aho, Peter Weinberger, and Brian Kernighan in 1978. It is characterised by {C}-like syntax, declaration-free variables, {associative array}s, and field-oriented text processing. There is a {GNU} version called {gawk} and other varients including {bawk}, {mawk}, {nawk}, {tawk}. {Perl} was inspired in part by awk but is much more powerful. {Unix manual page}: awk(1). {netlib WWW (http://plan9.att.com/netlib/research/index.html)}. {netlib FTP (ftp://netlib.att.com/netlib/research/)}. ["The AWK Programming Language" A. Aho, B. Kernighan, P. Weinberger, A-W 1988]. 2. An expression which is awkward to manipulate through normal {regexp} facilities, for example, one containing a {newline}. (1995-10-06) AWT {Abstract Windowing Toolkit} aXe A {text editor} for the {X Window System}. No longer maintained. (1998-03-13) AXIOM A commercially available subset of {Scratchpad}, from {IBM}. ["Axiom - The Scientific Computing System", R. Jenks et al, Springer 1992]. (1995-02-21) axiom A {well-formed formula} which is taken to be true without proof in the construction of a {theory}. Compare: {lemma}. (1995-03-31) AXIOM* A {symbolic mathematics} system. {A#} is one component of AXIOM*. Version: 2. (1995-02-21) Axiomatic Architecture Description Language ["AADL: A Net-Based Specification Method for Computer Architecture Design", W. Damm et al in Languages for Parallel Architectures, J.W. deBakker ed, Wiley 1989]. (1995-02-07) axiomatic semantics 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 {Set theory}, if approached naively, leads to all sorts of problems, the most famous being {Russell's paradox}. For this reason mathematicians do set theory axiomatically: that is, there is a {formal language} for talking about sets, and a collection of {axioms} describing how they behave, and the only legitimate way of drawing conclusions about sets is to use the axioms. There are many different {axiomatisations} for set theory. Each takes a slightly different approach to the problem of finding a theory that captures as much as possible of the intuitive idea of what a set is, while avoiding the {paradoxes} that result from accepting all of it. The main source of trouble in naive set theory is the idea that you can specify a set by saying whether each object in the universe is in the "set" or not. Accordingly, the most important differences between different axiomatisations of set theory concern the restrictions they place on this idea (known as "comprehension"). {Zermelo Fränkel set theory}, the most commonly used axiomatisation, gets round it by (in effect) saying that you can only use this principle to define subsets of existing sets. NBG (von Neumann-Bernays-Goedel) set theory sort of allows comprehension for all {formulae} without restriction, but distinguishes between two kinds of set, so that the sets produced by applying comprehension are only second-class sets. NBG is exactly as powerful as ZF, in the sense that any statement that can be formalised in both theories is a theorem of ZF if and only if it is a theorem of ZFC. MK (Morse-Kelley) set theory is a strengthened version of NBG, with a simpler axiom system. It is strictly stronger than NBG, and it is possible that NBG might be consistent but MK inconsistent. {NF (http://math.idbsu.edu/faculty/holmes/nf.html)} ("New Foundations"), a theory developed by Willard Van Orman Quine, places a very different restriction on comprehension: it only works when the formula describing the membership condition for your putative set is "stratified", which means that it could be made to make sense if you worked in a system where every set had a level attached to it, so that a level-n set could only be a member of sets of level n+1. (This doesn't mean that there are actually levels attached to sets in NF). NF is very different from ZF; for instance, in NF the universe is a set (which it isn't in ZF, because the whole point of ZF is that it forbids sets that are "too large"), and it can be proved that the {Axiom of Choice} is false in NF! ML ("Modern Logic") is to NF as NBG is to ZF. (Its name derives from the title of the book in which Quine introduced an early, defective, form of it). It is stronger than ZF (it can prove things that ZF can't), but if NF is consistent then ML is too. (1997-05-11) Axiom of Choice (AC, or "Choice") An {axiom} of {set theory}: If X is a set, and S is the union of all the elements of X, then there exists a function f:X -> S such that for all non-empty x in X, f(x) is an element of x. In other words, we can always choose an element from each set in a set of sets, simultaneously. Function f is a "choice function" for X - for each x in X, it chooses an element of x. Most people's reaction to AC is: "But of course that's true! From each set, just take the element that's biggest, stupidest, closest to the North Pole, or whatever". Indeed, for any {finite} set of sets, we can simply consider each set in turn and pick an arbitrary element in some such way. We can also construct a choice function for most simple {infinite set}s of sets if they are generated in some regular way. However, there are some infinite sets for which the construction or specification of such a choice function would never end because we would have to consider an infinite number of separate cases. For example, if we express the {real number} line R as the union of many "copies" of the {rational number}s, Q, namely Q, Q+a, Q+b, and infinitely (in fact uncountably) many more, where a, b, etc. are {irrational number}s no two of which differ by a rational, and Q+a == {q+a : q in Q} we cannot pick an element of each of these "copies" without AC. An example of the use of AC is the theorem which states that the {countable} union of countable sets is countable. I.e. if X is countable and every element of X is countable (including the possibility that they're finite), then the sumset of X is countable. This requires AC to be true in general. Even if one accepts the axiom, it doesn't tell you how to construct a choice function, only that one exists. Most mathematicians are quite happy to use AC if they need it, but those who are careful will, at least, draw attention to the fact that they have used it. There is something a little odd about Choice, and it has some alarming consequences, so results which actually "need" it are somehow a bit suspicious, e.g. the {Banach-Tarski paradox}. On the other side, consider {Russell's Attic}. AC is not a {theorem} of {Zermelo Fränkel set theory} (ZF). Gödel and Paul Cohen proved that AC is independent of ZF, i.e. if ZF is consistent, then so are ZFC (ZF with AC) and ZF(~C) (ZF with the negation of AC). This means that we cannot use ZF to prove or disprove AC. (1995-04-12) Axiom of Comprehension An {axiom schema} of {set theory} which states: if P(x) is a {property} then {x : P} is a set. I.e. all the things with some property form a set. Acceptance of this axiom leads to {Russell's Paradox} which is why {Zermelo set theory} replaces it with a restricted form. (1995-03-31) AXLE An early string processing language. Program consists of an assertion table which specifies patterns, and an imperative table which specifies replacements. "AXLE: An Axiomatic Language for String Transformations", K. Cohen et al, CACM 8(11):657-661 (Nov 1965). ayacc A {Yacc}-like {parser generator} from the {Irvine Research Unit in Software} written in {Ada} that produce {Ada} output. Comes with {aflex}. Version 1.2a. {(ftp://liege.ics.uci.edu/pub/irus/aflex-ayacc_1.2a.tar.Z)} Mailing list: . (1993-01-06) AYT Are you there? (1996-03-09) az The {country code} for Azerbaijan. (1999-01-27) AZERTY {QWERTY} B 1. {byte}. 2. A systems language written by {Ken Thompson} in 1970 mostly for his own use under {Unix} on the {PDP-11}. B was later improved by Kerninghan(?) and Ritchie to produce {C}. B was used as the systems language on {Honeywell}'s {GCOS-3}. B was, according to Ken, greatly influenced by {BCPL}, but the name B had nothing to do with BCPL. B was in fact a revision of an earlier language, {bon}, named after Ken Thompson's wife, Bonnie. ["The Programming Language B", S.C. Johnson & B.W. Kernighan, CS TR 8, Bell Labs (Jan 1973)]. [Features? Differences from C?] (1997-02-02) 3. A simple interactive programming language by Lambert Meertens and Steven Pemberton. B was the predecessor of {ABC}. {(ftp://ftp.uni-kl.de/pub/languages/B.tar.Z)} ["Draft Proposal for the B Language", Lambert Meertens, CWI, Amsterdam, 1981]. 4. A specification language by Jean-Raymond Abrial of {B Core UK}, Magdalen Centre, Oxford Science Park, Oxford OX4 4GA. B is related to {Z} and supports development of {C} code from specifications. B has been used in major {safety-critical system} specifications in Europe, and is currently attracting increasing interest in industry. It has robust, commercially available tool support for specification, design, proof and code generation. E-mail: . (1995-04-24) b {bit} or maybe {byte} (B). (1996-11-03) B-0 The original name of {FLOW-MATIC} from {Remington Rand}. B-0 was used on the {UNIVAC} I or II about 1958. (1997-01-09) B1FF {BIFF} B1 security {Orange Book} B2 security {Orange Book} B3 security {Orange Book} b4 before. ba The {country code} for Bosnia and Herzegowina. (1999-01-27) Baan A provider of {enterprise resource planning} and {manufacturer resource planning} software. {Home (http://www.baan.com/)}. (1998-07-07) Babbage The structured {assembly language} for the {General Electric Company} 4xxx range of computers and their {OS4000} {operating system}. It is strictly an assembler in that the generated code is relatively predictable but it can be written in a sufficiently structured manner, with indentation, control statements, function and procedure calls, to make the resultant source easy to read and manage. Even with this visible structure however, it is important to remember that the assembly of the statement is done left to right. The British {videotext} system, {Prestel} is programmed in Babbage. [1980's article in Datamation]. Babbage, Charles {Charles Babbage} babbling error An {Ethernet} node attempting to transmit more than 1518 data bytes - the largest allowed Ethernet {packet}. This is why the {Maximum Transmission Unit} for {IP} traffic on Ethernet is 1500. [Why 1518?] (1998-03-13) BABEL 1. A subset of {ALGOL 60}, with many {ALGOL W} extensions. ["BABEL, A New Programming Language", R.S. Scowen, Natl Phys Lab UK, Report CCU7, 1969]. 2. Mentioned in The Psychology of Computer Programming, G.M. Weinberg, Van Nostrand 1971, p.241. 3. A language based on {higher-order function}s and {first-order logic}. ["Graph-Based Implementation of a Functional Logic Language", H. Kuchen et al, Proc ESOP 90, LNCS 432, Springer 1990, pp.271-290]. ["Logic Programming with Functions and Predicates: The Language BABEL", Moreno-Navarro et al, J Logic Prog 12(3) (Feb 1992)]. (1994-11-28) BABT {British Approval Boards for Telecommunications} Baby AT The redesigned {AT} motherboard that had the same size as the {XT} motherboard had (8.5" x 11") and could thus fit into an XT case. The original 12" x 13" AT motherboards are now largely forgotten. Compare {ATX}. (1997-02-20) BABYLON A development environment for {expert system}s. It includes {frame}s, {constraint}s, a {prolog}-like logic formalism, and a description language for diagnostic applications. It requires {Common Lisp}. {(ftp://ftp.gmd.de/gmd/ai-research/Software/)} (1995-02-08) BACAIC Boeing Airplane Company Algebraic Interpreter Coding system. A pre-{FORTRAN} system on the {IBM 701} and {IBM 650}. (1995-02-08) Bachman A proposed a style of {Entity-Relationship model} which differs from Chen's. (1995-02-08) Bachman Information Systems The company which merged with {CADRE} to form {Cayenne Software} in July 1996. (1998-02-06) backbone 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 A group of large-site administrators who pushed through the {Great Renaming} and reined in the chaos of {Usenet} during most of the 1980s. The cabal {mailing list} disbanded in late 1988 after a bitter internal cat-fight. (1994-11-28) backbone site A key {Usenet}, {electronic mail} and/or {Internet} site; one that processes a large amount of third-party traffic, especially if it is the home site of any of the regional coordinators for the {Usenet} maps. Notable backbone sites as of early 1993 include {uunet} and the mail machines at {Rutgers University}, UC Berkeley, {DEC}'s Western Research Laboratories, {Ohio State University} and the {University of Texas}. Compare {rib site}, {leaf site}. (1994-11-28) back door (Or "{trap door}", "{wormhole}"). A hole in the security of a system deliberately left in place by designers or maintainers. The motivation for such holes is not always sinister; some {operating system}s, for example, come out of the box with privileged accounts intended for use by field service technicians or the vendor's maintenance programmers. See also {iron box}, {cracker}, {worm}, {logic bomb}. Historically, back doors have often lurked in systems longer than anyone expected or planned, and a few have become widely known. The infamous {RTM} worm of late 1988, for example, used a back door in the {BSD} Unix "sendmail(8)" utility. {Ken Thompson}'s 1983 Turing Award lecture to the {ACM} revealed the existence of a back door in early {Unix} versions that may have qualified as the most fiendishly clever security hack of all time. The C compiler contained code that would recognise when the "login" command was being recompiled and insert some code recognizing a password chosen by Thompson, giving him entry to the system whether or not an account had been created for him. Normally such a back door could be removed by removing it from the source code for the compiler and recompiling the compiler. But to recompile the compiler, you have to *use* the compiler - so Thompson also arranged that the compiler would *recognise when it was compiling a version of itself*, and insert into the recompiled compiler the code to insert into the recompiled "login" the code to allow Thompson entry - and, of course, the code to recognise itself and do the whole thing again the next time around! And having done this once, he was then able to recompile the compiler from the original sources; the hack perpetuated itself invisibly, leaving the back door in place and active but with no trace in the sources. The talk that revealed this truly moby hack was published as ["Reflections on Trusting Trust", "Communications of the ACM 27", 8 (August 1984), pp. 761--763]. (1995-04-25) back-end Any software performing either the final stage in a process, or a task not apparent to the user. A common usage is in a {compiler}. A compiler's back-end generates {machine language} and performs optimisations specific to the machine's {architecture}. The term can also be used in the context of {network} applications. E.g. "The back-end of the system handles {socket} protocols". Contrast {front end}. (1996-04-09) Back End Generator (BEG) A {code generator}. Its input language is {Back End Generator Language} (BEGL). {(ftp://gatekeeper.dec.com/pub/gmd/cocktail/beg)}. ["BEG - A Generator for Efficient Back Ends", H. Emmelmann et al, SIGPLAN Notices 24(7):227-237 (Jul 1989)]. ["BEG - A Back End Generator - User Manual", H. Emmelmann , GMD, U Karlsruhe 1990]. [Summary?] (1994-12-14) Back End Generator Language {Back End Generator} backgammon See {bignum}, {moby}, {pseudoprime}. background 1. A task running in the background (a background task) is detached from the terminal where it was started (and often running at a lower priority); opposite of {foreground}. This means that the task's input and output must be from/to files (or other processes). Nowadays this term is primarily associated with {Unix}, but it appears to have been first used in this sense on {OS/360}. Compare {amp off}, {batch}, {slopsucker}. 2. For a human to do a task "in the background" is to do it whenever {foreground} matters are not claiming your undivided attention, and "to background" something means to relegate it to a lower priority. "For now, we'll just print a list of nodes and links; I'm working on the graph-printing problem in the background." Note that this implies ongoing activity but at a reduced level or in spare time, in contrast to mainstream "back burner" (which connotes benign neglect until some future resumption of activity). Some people prefer to use the term for processing that they have queued up for their unconscious minds (often a fruitful tack to take upon encountering an obstacle in creative work). (1996-05-28) backing store Character storage in memory or on disk, as opposed to displayed or printed characters. This distinction is important where the visual ordering of characters differs from the order in which they are stored, e.g. bidirectional or non-spacing layout. In a {Unicode} encoding, text is stored in sequential order in the backing store. Logical or backing store order corresponds to the order in which text is typed on the keyboard (after corrections such as insertions, deletions, and overtyping). A text rendering process converts Unicode text in the backing store to readable text. ["The Unicode Standard: Worldwide Character Encoding", Version 1.0, Vol. 1. Addison-Wesley, 1991]. (1996-05-28) back link A {link} in one direction implied by the existence of an explicit link in the other direction. (1996-05-28) backoff A {host} which has experienced a {collision} on a {network} waits for a amount of time before attempting to retransmit. A random backoff minimises the probability that the same nodes will collide again, even if they are using the same backoff algorithm. Increasing the backoff period after each collision also helps to prevent repeated collisions, especially when the network is heavily loaded. An example algorithm is {binary exponential backoff}. (1996-05-28) BackOffice A suite of network {server} software from {Microsoft} that includes {Windows NT} Server, BackOffice Server (for the integrated development, deployment, and management of BackOffice applications in departments, branch offices, and medium sized businesses); {Exchange Server}; {Proxy Server}; {Site Server} for {intranet} publishing, management, and search; Site Server Commerce Edition For comprehensive {Internet commerce} transactions; {Small Business Server} for business operations, resource management, and customer relations; {SNA Server} for the integration of existing and new systems and data; {SQL Server} for scalable, reliable database and data-warehousing; {Systems Management Server} (SMS) for centralised change- and {configuration-management}. (1999-09-16) back-propagation (Or "backpropagation") A learning {algorithm} for modifying a {feed-forward} {neural network} which minimises a continuous "{error function}" or "{objective function}." Back-propagation is a "{gradient descent}" method of training in that it uses gradient information to modify the network weights to decrease the value of the error function on subsequent tests of the inputs. Other gradient-based methods from {numerical analysis} can be used to train networks more efficiently. Back-propagation makes use of a mathematical trick when the network is simulated on a digital computer, yielding in just two traversals of the network (once forward, and once back) both the difference between the desired and actual output, and the derivatives of this difference with respect to the connection weights. back quote "`" {ASCII} code 96. Common names: left quote; left single quote; open quote; {ITU-T}: grave accent; grave. Rare: backprime; {INTERCAL}: backspark; unapostrophe; birk; blugle; back tick; back glitch; push; {ITU-T}: opening single quotation mark; quasiquote. Back quote is used in {Unix} shells to invoke {command substitution}. (1996-11-26) backside cache 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 "\" {ASCII} code 92. Common names: escape (from C/Unix); reverse slash; slosh; backslant; backwhack. Rare: bash; {ITU-T}: reverse slant; reversed virgule; {INTERCAL}: backslat. (1995-11-17) backtick {back quote} backtracking 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 (Sometimes "back up" when used as a verb) A spare copy of a file, file system or other resource for use in the event of failure or loss of the original. The term is most commonly used to refer to a copy of all the files on a computer's {disks} which is made periodically and kept on {magnetic tape} or other removable medium (also called a "{dump}"). This essential precaution is neglected by most new computer users until the first time they experience a {disk crash} or accidentally delete the only copy of the file they have been working on for the last six months. Ideally the backup copies should be kept at a different site or in a fire safe since, though your hardware may be insured against fire, the data on it is almost certainly neither insured nor easily replaced. See also {incremental backup}. Compare {archive}. (1998-04-17) backup pumpkin {pumpkin} Backus-Naur Form (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: ::= ::= | "." ::= [] | ::= [] ::= "," This translates into English as: "A postal-address consists of a name-part, followed by a street-address part, followed by a zip-code part. A personal-part consists of either a first name or an initial followed by a dot. A name-part consists of either: a personal-part followed by a last name followed by an optional "jr-part" (Jr., Sr., or dynastic number) and end-of-line, or a personal part followed by a name part (this rule illustrates the use of recursion in BNFs, covering the case of people who use multiple first and middle names and/or initials). A street address consists of an optional apartment specifier, followed by a street number, followed by a street name. A zip-part consists of a town-name, followed by a comma, followed by a state code, followed by a ZIP-code followed by an end-of-line." Note that many things (such as the format of a personal-part, apartment specifier, or ZIP-code) are left unspecified. These lexical details are presumed to be obvious from context or specified somewhere nearby. There are many variants and extensions of BNF, possibly containing some or all of the {regexp} {wild cards} such as "*" or "+". {EBNF} is a common one. In fact the example above isn't the pure form invented for the {ALGOL 60} report. "[]" was introduced a few years later in {IBM}'s {PL/I} definition but is now universally recognised. {ABNF} is another extension. (1997-11-23) Backus Normal Form {Backus-Naur Form} backward analysis 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 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 /bak'w*d k*m-bat'*-bil'*-tee/ (Play on "{backward compatibility}") A property of hardware or software revisions in which previous {protocols}, formats, layouts, etc. are irrevocably discarded in favour of "new and improved" protocols, formats and layouts, leaving the previous ones not merely deprecated but actively defeated. (Too often, the old and new versions cannot definitively be distinguished, such that lingering instances of the previous ones yield crashes or other infelicitous effects, as opposed to a simple "version mismatch" message.) A backwards compatible change, on the other hand, allows old versions to coexist without crashes or error messages, but too many major changes incorporating elaborate backwards compatibility processing can lead to extreme {software bloat}. See also {flag day}. (1997-03-01) backward compatible A system is backward compatible if it is {compatible} with (e.g. can share data with) earlier versions of itself, or sometimes other earlier systems, particularly systems it intends to supplant. For example, {WordPerfect} 6.0 can read WordPerfect 5.1 files, so it is backward compatible. It can be said that {Perl} is backward compatible with {awk}, because Perl was (among other things) intended to replace awk, and can, with a converter, run awk programs. See also: {backward combatability}. Compare: {forward compatible}. (1998-01-15) backwards compatibility {backward compatible} backwards compatible {backward compatible} BAD /B-A-D/ [IBM: acronym, "Broken As Designed"] Said of a program that is {bogus} because of bad design and misfeatures rather than because of bugginess. See {working as designed}. Bad command or file name 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 (From the 1930 Sellar & Yeatman parody "1066 And All That") Something that can't possibly result in improvement of the subject. This term is always capitalised, as in "Replacing all of the 9600-baud modems with bicycle couriers would be a Bad Thing". Opposite: {Good Thing}. British correspondents confirm that {Bad Thing} and {Good Thing} (and probably therefore {Right Thing} and {Wrong Thing}) come from the book referenced in the etymology, which discusses rulers who were Good Kings but Bad Things. This has apparently created a mainstream idiom on the British side of the pond. bag on the side An extension to an established hack that is supposed to add some functionality to the original. Usually derogatory, implying that the original was being overextended and should have been thrown away, and the new product is ugly, inelegant, or bloated. Also "to hang a bag on the side [of]". "C++? That's just a bag on the side of C." "They want me to hang a bag on the side of the accounting system." BAL {Basic Assembly Language} balanced computing Matching computer tools to job activities so that the computer system structure parallels the organisation structure and work functions. Both {personal computers} and employees operate in a decentralised environment with monitoring of achievement of management objectives from centralised corporate systems. {(http://www.moultonco.com/balanced.htm)} (1996-04-15) balanced tree (B-tree) An optimisation of a {binary tree} which aims to keep equal numbers of items on each side of each node so as to minimise the maximum path from the root to any {leaf node}. As items are inserted and deleted, the B-tree is restructured to keep the nodes balanced and the search paths uniform. Such an {algorithm} is appropriate where the overheads of the reorganisation on update are outweighed by the benefits of faster search. A B+-tree (as used by {IBM}'s {VSAM}) is a B-tree where the leaves are also linked sequentially, thus allowing both fast random access and sequential access to data. (1996-04-15) BALGOL {ALGOL} on {Burroughs 220}. [Sammet 1969, p. 174]. (1996-04-15) BALITAC Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). BALM Block And List Manipulation. Harrison, 1970. Extensible language with LISP-like features and ALGOL-like syntax, for CDC 6600. "The Balm Programming Language", Malcolm Harrison, Courant Inst (May 1973). balun A transformer connected between a balanced source or load and an unbalanced source or load. A balanced line has two conductors, with equal currents in opposite directions. The unbalanced line has just one conductor; the current in it returns via a common ground or earth path. (1996-10-17) bamf /bamf/ 1. [Old X-Men comics] Notional sound made by a person or object teleporting in or out of the hearer's vicinity. Often used in {virtual reality} (especially {MUD}) electronic {fora} when a character wishes to make a dramatic entrance or exit. 2. The sound of magical transformation, used in virtual reality {fora}. Banach algebra An {algebra} in which the {vector space} is a {Banach space}. (1997-02-25) Banach inverse mapping theorem In a {Banach space} the inverse to a {continuous} {linear mapping} is continuous. (1998-06-25) Banach space A {complete} {normed} {vector space}. Several theorems hold only in Banach spaces, e.g. the {Banach inverse mapping theorem}. All finite-dimensional real and complex vector spaces are Banach spaces. {Hilbert spaces}, spaces of {integrable functions} and spaces of {absolutely convergent series} are examples of infinite-dimensional Banach spaces. (1998-06-25) Banach-Tarski paradox It is possible to cut a solid ball into finitely many pieces (actually about half a dozen), and then put the pieces together again to get two solid balls, each the same size as the original. This {paradox} is a consequence of the {Axiom of Choice}. (1995-03-29) banana label The labels often used on the sides of {macrotape} reels, so called because they are shaped roughly like blunt-ended bananas. This term, like macrotapes themselves, is still current but visibly headed for obsolescence. banana problem (From the story of the little girl who said "I know how to spell "banana", but I don't know when to stop"). Not knowing where or when to bring a production to a close (compare {fencepost error}). One may say "there is a banana problem" of an algorithm with poorly defined or incorrect termination conditions, or in discussing the evolution of a design that may be succumbing to featuritis (see also {creeping elegance}, {creeping featuritis}). See item 176 under {HAKMEM}, which describes a banana problem in a {Dissociated Press} implementation. Also, see {one-banana problem} for a superficially similar but unrelated usage. (1995-01-31) bandwidth 1. The difference between the highest and lowest frequencies of a transmission channel. 2. The amount of {data} that can be sent through a given communications circuit per second. 3. On {Usenet}, a measure of network capacity that is often wasted by people complaining about how items posted by others are a waste of bandwidth. (1994-11-28) bang 1. A common spoken name for "!" (ASCII 33), especially when used in pronouncing a {bang path} in spoken hackish. In {elder days} this was considered a {CMU}ish usage, with {MIT} and {Stanford} hackers preferring {excl} or {shriek}; but the spread of {Unix} has carried "bang" with it (especially via the term {bang path}) and it is now certainly the most common spoken name for "!". Note that it is used exclusively for non-emphatic written "!"; one would not say "Congratulations bang" (except possibly for humorous purposes), but if one wanted to specify the exact characters "foo!" one would speak "Eff oh oh bang". See {pling}, {shriek}, {ASCII}. 2. An exclamation signifying roughly "I have achieved enlightenment!", or "The dynamite has cleared out my brain!" Often used to acknowledge that one has perpetrated a {thinko} immediately after one has been called on it. (1995-01-31) bang on (Or "pound on"). To stress-test a piece of hardware or software: "I banged on the new version of the simulator all day yesterday and it didn't crash once. I guess it is ready for release." bang path 1. 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. A {shebang}. (1998-05-06) banner 1. The title page added to printouts by most {print spoolers}. Typically includes user or account ID information in very large character-graphics capitals. Also called a "burst page", because it indicates where to burst (tear apart) fanfold paper to separate one user's printout from the next. 2. A similar printout generated (typically on multiple pages of fan-fold paper) from user-specified text, e.g. by a program such as {Unix}'s "banner". 3. {splash screen}. (1994-11-28) Banyan A {personal computer} networking company, best known for its "{Vines}" products for {local area networks}. Address: Westborough MA, USA. [More info?] (1995-03-01) BAP 1. An early system used on the {IBM 701}. [Listed in CACM 2(5):16 (May 1959)]. (1994-11-28) 2. {Brain Aid Prolog}. (1995-03-07) bar 1. /bar/ The second {metasyntactic variable}, after {foo} and before {baz}. E.g. "Suppose function FOO calls functions BAR..." 2. Often appended to {foo} to produce {foobar}. (1995-03-07) bar code A printed horizontal strip of vertical bars of varying widths, groups of which represent decimal digits and are used for identifying commercial products or parts. Bar codes are read by a bar code reader and the code interpreted either through {software} or a {hardware} decoder. All products sold in open trade are numbered and bar-coded to a worldwide standard, which was introduced in the US in 1973 and to the rest of the world in 1977. The Uniform Code Council in the US, along with the international article numbering authority, EAN International, allocate blocks of unique 12 or 13-digit numbers to member companies through a national numbering authority. In Britain this is the Article Number Association. Most companies are allocated 100,000 numbers that they can use to identify any of their products, services or locations. Each code typically contains a leading "quiet" zone, start character, data character, optional {check digit}, stop character and a trailing quiet zone. The check digit is used to verify that the number has been scanned correctly. The quiet zone could be white, red or yellow if viewed by a red scanner. Bar code readers usually use visible red light with a wavelength between 632.8 and 680 nanometres. [Details of code?] (1997-07-18) bare metal 1. New computer hardware, unadorned with such snares and delusions as an {operating system}, an {HLL}, or even {assembler}. Commonly used in the phrase "programming on the bare metal", which refers to the arduous work of {bit bashing} needed to create these basic tools for a new computer. Real bare-metal programming involves things like building {boot PROM}s and {BIOS} chips, implementing basic {monitor}s used to test {device driver}s, and writing the assemblers that will be used to write the compiler back ends that will give the new computer a real development environment. 2. "Programming on the bare metal" is also used to describe a style of {hand-hacking} that relies on bit-level peculiarities of a particular hardware design, especially tricks for speed and space optimisation that rely on crocks such as overlapping instructions (or, as in the famous case described in {The Story of Mel}, interleaving of opcodes on a magnetic drum to minimise fetch delays due to the device's rotational latency). This sort of thing has become less common as the relative costs of programming time and computer resources have changed, but is still found in heavily constrained environments such as industrial embedded systems, and in the code of hackers who just can't let go of that low-level control. See {Real Programmer}. In the world of personal computing, bare metal programming is often considered a {Good Thing}, or at least a necessary evil (because these computers have often been sufficiently slow and poorly designed to make it necessary; see {ill-behaved}). There, the term usually refers to bypassing the BIOS or OS interface and writing the application to directly access device registers and computer addresses. "To get 19.2 kilobaud on the serial port, you need to get down to the bare metal." People who can do this sort of thing well are held in high regard. barf /barf/ [mainstream slang for "vomit"] 1. Term of disgust. This is the closest hackish equivalent of the Val\-speak "gag me with a spoon". (Like, euwww!) See {bletch}. 2. To say "Barf!" or emit some similar expression of disgust. "I showed him my latest hack and he barfed" means only that he complained about it, not that he literally vomited. 3. To fail to work because of unacceptable input, perhaps with a suitable error message, perhaps not. Examples: "The division operation barfs if you try to divide by 0." (That is, the division operation checks for an attempt to divide by zero, and if one is encountered it causes the operation to fail in some unspecified, but generally obvious, manner.) "The text editor barfs if you try to read in a new file before writing out the old one". See {choke}, {gag}. In Commonwealth Hackish, "barf" is generally replaced by "puke" or "vom". {barf} is sometimes also used as a {metasyntactic variable}, like {foo} or {bar}. (1996-02-26) barfmail Multiple {bounce messages} accumulating to the level of serious annoyance, or worse. The sort of thing that happens when an inter-network {mail gateway} goes down or misbehaves. (1996-01-05) barfulation /bar`fyoo-lay'sh*n/ Variation of {barf} used around the Stanford area. An exclamation, expressing disgust. On seeing some particularly bad code one might exclaim, "Barfulation! Who wrote this, Quux?" barfulous /bar'fyoo-l*s/ (Or "barfucious", /bar-fyoo-sh*s/) Said of something that would make anyone barf, if only for aesthetic reasons. (1995-02-22) barney In Commonwealth hackish, "barney" is to {fred} as {bar} is to {foo}. That is, people who commonly use "fred" as their first {metasyntactic variable} will often use "barney" second. The reference is, of course, to Fred Flintstone and Barney Rubble in the Flintstones cartoons. (1994-11-28) Baroque An early {logic programming} language written by Boyer and Moore in 1972. ["Computational Logic: Structure Sharing and Proof of program Properties", J. Moore, DCL Memo 67, U Edinburgh 1974]. (1995-02-22) baroque Feature-encrusted; complex; gaudy; verging on excessive. Said of hardware or (especially) software designs, this has many of the connotations of {elephantine} or monstrosity but is less extreme and not pejorative in itself. "{Metafont} even has features to introduce random variations to its letterform output. Now *that* is baroque!" See also {rococo}. (1995-02-22) barrel shifter 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 {radix}. base 64 A file format using 64 {ASCII} characters to encode the six bit {binary data} values 0-63. To convert data to base 64, the first byte is placed in the most significant eight bits of a 24-bit buffer, the next in the middle eight, and the third in the least significant eight bits. If there a fewer than three bytes to encode, the corresponding buffer bits will be zero. The buffer is then used, six bits at a time, most significant first, as indices into the string "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" and the indicated character output. If there were only one or two input bytes, the output is padded with two or one "=" characters respectively. This prevents extra bits being added to the reconstructed data. The process then repeats on the remaining input data. Base 64 is used when transmitting binary data through text-only media such as {electronic mail}, though {uuencode} is more common. (1995-03-21) baseband A transmission medium through which digital signals are sent without frequency shifting. In general, only one communication channel is available at any given time. {Ethernet} is an example of a baseband network. See also {broadband}. (1995-02-22) base class (Or "superclass") The {class} from which another class (a "subclass") inherits. "base class" is the term used in {C++}. The term "superclass" is perhaps confusing since objects of the subclass have a superset of the fields of objects in the superclass. See {inheritance}. (1996-08-04) baseline {released version} base memory The lowest 640 {kilobytes} of memory in an {IBM PC}-compatible computer running {MS-DOS}. Other PC {operating systems} can usually compensate and "ignore" the fact that there is a 640K limit to base memory. This was put in place because the original {CPU} - the {Intel 8088} - could only access one {megabyte} of memory, and {IBM} wanted to reserve the upper 384KB for {device drivers}. The {high memory area} (HMA) lies above 640KB and can be accessed on MS-DOS computers that have an {A20 handler}. (1997-05-30) basename The name of a file which, in contrast to a {pathname}, does not mention any of the {directories} containing the file. Examples: pathname basename -------- -------- /etc/hosts hosts ./alma alma korte/a.a a.a a.a a.a See also {pathname}. (1996-11-23) Base Technology The company which developed and distributes {Liana}. {Home (http://www.BaseTechnology.com/)}. E-mail: Jack Krupansky (owner). Address: Base Technology, Attn: Jack Krupansky, 1500 Mass. Ave. NW #114 Washington, DC 2005, USA. 800-786-9505 Telephone: +1 800 876 9505. (1999-06-29) bash Bourne Again SHell. {GNU}'s {command interpreter} for {Unix}. Bash is a {Posix}-compatible {shell} with full {Bourne shell} syntax, and some {C shell} commands built in. The Bourne Again Shell supports {Emacs}-style command-line editing, job control, functions, and on-line help. Written by Brian Fox . The latest version is 1.14.1. It includes a {yacc} parser, the interpreter and documentation. {(ftp://prep.ai.mit.edu/bash-1.14.1.tar.gz)} or from a {GNU archive site}. E-mail: . {Usenet} newsgroup: {news:gnu.bash.bug}. (1994-07-15) BASIC Beginner's All-purpose Symbolic Instruction Code. A simple language designed by John G. Kemeny and Thomas E. Kurtz at Dartmouth College in 1963. It first ran on an {IBM 704} on 1964-05-01. It was designed for quick and easy programming by students and beginners. BASIC exists in many dialects, and is popular on {microcomputer}s with sound and graphics support. Most micro versions are interactive and interpreted, but the original Dartmouth BASIC was compiled. BASIC was originally designed for Dartmouth's experimental {time-sharing} system and has since become the leading cause of brain-damage in proto-hackers. This is another case (like {Pascal}) of the cascading lossage that happens when a language deliberately designed as an educational toy gets taken too seriously. A novice can write short BASIC programs (on the order of 10--20 lines) very easily; writing anything longer is (a) very painful, and (b) encourages bad habits that will make it harder to use more powerful languages well. This wouldn't be so bad if historical accidents hadn't made BASIC so common on low-end micros. As it is, it ruins thousands of potential wizards a year. Originally, all references to code, both {GOTO} and GOSUB (subroutine call) referred to the destination by its line number. This allowed for very simple editing in the days before {text editor}s were considered an essential tool on every computer. Just typing the line number deleted the line and to edit a line you just typed the new line with the same number. Programs were typically numbered in steps of ten to allow for insertions. Later versions, such as {BASIC V}, allow {GOTO}-less {structured programming} with named procedures and functions, IF-THEN-ELSE-ENDIF constructs and {WHILE} loops etc. Early BASICs had no graphic operations except with graphic characters. In the 1970s BASIC {interpreter}s became standard features in {mainframe}s and {minicomputer}s. Some versions included matrix operations as language primitives. A {public domain} {interpreter} for a mixture of {DEC}'s {MU-Basic} and {Microsoft Basic} is {here (ftp://oak.oakland.edu/pub/Unix-c/languages/basic/basic.tar-z)}. A {yacc} {parser} and {interpreter} were in the comp.sources.unix archives volume 2. Mailing list: . See also {ANSI Minimal BASIC}, {bournebasic}, {bwBASIC}, {ubasic}. (1995-03-15) Basic Assembly Language (BAL) What most people called {IBM 360} {assembly language}. See {ALC}. (1995-04-13) BASIC AUTOCODER Early system on IBM 7070. Listed in CACM 2(5):16 (May 1959). Basic COBOL A subset of {COBOL} from {COBOL-60} standards. [Sammet 1969, p. 339]. (1997-12-07) Basic Encoding Rules (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 A subset of {FORTRAN}. [Sammet 1969, p. 150]. (1999-06-09) Basic Input/Output 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 A subset of {JOVIAL} written ca. 1965. [Sammet 1969, p.529]. (1995-04-19) Basic Language for Implementation of System Software (BLISS, or allegedly, "System Software Implementation Language, Backwards") A language designed by W.A. Wulf at {CMU} around 1969. BLISS is an {expression language}. It is {block-structured}, and typeless, with {exception handling} facilities, {coroutines}, a {macro} system, and a highly {optimising compiler}. It was one of the first non-{assembly languages} for {operating system} implementation. It gained fame for its lack of a {goto} and also lacks implicit {dereferencing}: all symbols stand for addresses, not values. Versions: CMU {BLISS-10} for the PDP-10; CMU {BLISS-11}, DEC {BLISS-32} for {VAX}/{VMS}. ["BLISS: A Language for Systems Programming", CACM 14(12):780-790, Dec 1971]. (1997-03-01) Basic Multilingual Plane The first, and to date the only, {UCS-2} plane defined. It was developed by merging the ISO draft for 16-bit character codes with the code used by {Unicode}. It inherited features from both, compatibility with other standards (such as {ISO Latin 1}) from the ISO draft, character combining (such as writing the letter "á" as a combination of "a" and "'") from Unicode. Presently the BMP is half empty, although it covers all major languages, including Roman, Greek, Cyrillic, Chinese, hiragana, katakana, Devanagari, Easter Island "rongo-rongo", and even {Elvish} (but leaves out {Klingon}). (1997-07-04) Basic Object System (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 . {(ftp://barkley.berkeley.edu/tcl)}. (1992-08-21) Basic 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 (BPS, colloquially: Barely Programming Support) A suite of utility routines from {IBM} to perform very simple procedures like formatting a disk or labelling a tape. BPS was only available on {punched cards}. (1998-07-08) Basic Rate Interface (BRI) A kind of {Integrated Services Digital Network} channel consisting of two 64 Kbit per second "bearer" (B) channels for user-data transfer plus a 16 kbps "delta" (D) channel for control and signalling information. A BRI provides a total data rate of 144 kilobits per second. The B channels are used for voice or data, and the D channel is used for signalling and/or {X.25} {packet} networking. BRI is the kind of ISDN interface most likely to be found in residential service. (1994-11-28) BASIC V The version of the {Basic} programming language which comes on {ROM} in {Acorn}'s {RISC} computers: the {Archimedes} range and the {Risc PC}. It features REPEAT and WHILE loops, multi-line IF statements, procedures and functions, local variables, error handling, {system call}s and a built-in {assembler}. (1995-01-05) Bastard Operator From Hell (BOFH) A rogue {network operator} character invented by Simon Travaglia , 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 (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 A system that takes a set (a "batch") of commands or jobs, executes them and returns the results, all without human intervention. This contrasts with an {interactive} system where the user's commands and the computer's responses are interleaved during a single run. A batch system typically takes its commands from a disk file (or a set of {punched cards} or {magnetic tape} in the old days) and returns the results to a file (or prints them). Often there is a queue of jobs which the system processes as resources become available. Since the advent of the {personal computer}, the term "batch" has come to mean automating frequently performed tasks that would otherwise be done interactively by storing those commands in a "{batch file}" or "{script}". Usually this file is read by some kind of {command interpreter} but batch processing is sometimes used with GUI-based applications that define script equivalents for menu selections and other mouse actions. Such a recorded sequence of GUI actions is sometimes called a "{macro}". This may only exist in memory and may not be saved to disk whereas a batch normally implies something stored on disk. (1998-06-26) bathtub curve Common term for the curve (resembling an end-to-end section of one of those claw-footed antique bathtubs) that describes the expected failure rate of electronics with time: initially high, dropping to near 0 for most of the system's lifetime, then rising again as it "tires out". See also {burn-in period}, {infant mortality}. baud /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 /bawd barf/ The garbage one gets on the {display screen} when using a {modem} connection with some {protocol} setting (especially line speed) incorrect, or when someone picks up a voice extension on the same line, or when really bad line noise disrupts the connection. Baud barf is not completely {random}, by the way; hackers with a lot of serial-line experience can usually tell whether the device at the other end is expecting a higher or lower speed than the {terminal} is set to. *Really* experienced ones can identify particular speeds. (1996-02-22) Baudot {Baudot code} Baudotbetical order /baw do bet' i k*l/ Sorted into an order where numerics and special characters are intermixed by sorting a 5-bit Baudot code file ignoring the numeric shift and unshift codes. (1997-02-11) Baudot code (For etymology, see {baud}) A {character set} predating {EBCDIC} and used originally and primarily on {paper tape}. Use of Baudot reportedly survives in {TDD}s and some HAM radio applications. In Baudot, characters are expressed using five {bit}s. Baudot uses two code sub-sets, the "letter set" (LTRS), and the "figure set" (FIGS). The FIGS character (11011) signals that the following code is to be interpreted as being in the FIGS set, until this is reset by the LTRS (11111) character. binary hex LTRS FIGS -------------------------- 00011 03 A - 11001 19 B ? 01110 0E C : 01001 09 D $ 00001 01 E 3 01101 0D F ! 11010 1A G & 10100 14 H # 00110 06 I 8 01011 0B J BELL 01111 0F K ( 10010 12 L ) 11100 1C M . 01100 0C N , 11000 18 O 9 10110 16 P 0 10111 17 Q 1 01010 0A R 4 00101 05 S ' 10000 10 T 5 00111 07 U 7 11110 1E V ; 10011 13 W 2 11101 1D X / 10101 15 Y 6 10001 11 Z " 01000 08 CR CR 00010 02 LF LF 00100 04 SP SP 11111 1F LTRS LTRS 11011 1B FIGS FIGS 00000 00 [..unused..] Where CR is {carriage return}, LF is {linefeed}, BELL is the {bell}, SP is space, and STOP is the stop character. Note: these bit values are often shown in inverse order, depending (presumably) which side of the {paper tape} you were looking at. Local implementations of Baudot may differ in the use of #, STOP, BELL, and '. (1997-01-30) baud rate {baud} bawk An {Awk}-like pattern-matching language by Bob Brodt, distributed with {MINIX}. (1994-11-28) bay (As in an aeroplane "cargo bay") A space in a cabinet into which a device of a certain size can be physically mounted and connected to power and data. Common examples are a "drive bay" into which a {disk drive} (usually either 3.5 inch or 5.25 inch) can be inserted or the space in a {docking station} where you insert a {notebook computer} or {laptop computer} to work in desktop mode or to charge their batteries, print, or connect to the office network, etc. (1999-01-11) baz /baz/ The third {metasyntactic variable} "Suppose we have three functions: FOO, BAR, and BAZ. FOO calls BAR, which calls BAZ..." (See also {fum}). Occasionally appended to {foo} to produce "foobaz". Early versions of the Hacker Jargon dictionary derived "baz" as a Stanford corruption of {bar}. However, Pete Samson (compiler of the {TMRC} lexicon) reports it was already current when he joined TMRC in 1958. He says "It came from "Pogo". Albert the Alligator, when vexed or outraged, would shout "Bazz Fazz!" or "Rowrbazzle!" The club layout was said to model the (mythical) New England counties of Rowrfolk and Bassex (Rowrbazzle mingled with Norfolk/Suffolk/Middlesex/ Essex)." bb The {country code} for Barbados. (1999-01-27) BBC {British Broadcasting Corporation} BBC Microcomputer A series of {6502}-based personal computers launched by {Acorn Computers} Ltd. in January 1982, for use in the British Broadcasting Corporation's educational programmes on computing. The computers are noted for their reliability (many are still in active service in 1994) and both hardware and software were designed for easy expansion. The 6502-based computers were succeeded in 1987 by the Acorn {Archimedes} family. {xbeeb} is a BBC Micro {emulator} for {Unix} and {X11}. BBC Networking Club A {bulletin board} run by the {British Broadcasting Corporation} Education department from April 1994 to 30 Nov 1995. (1997-01-20) BBL (I will) be back later. BBN {Bolt, Beranek and Newman} bboard {bulletin board system} BBS {bulletin board system} BC An {arbitrary precision} numeric processing language with {C}-like {syntax}. Traditionally implemented as a front-end to {DC}. There is a {GNU} version called {GNU BC}. {Unix manual page}: bc(1). BCBF {Branch on Chip Box Full} BCC 1. {Blind Carbon Copy}. 2. {Block Check Character}. 3. {Blocked Call Cleared}. (1997-02-05) BCD {binary coded decimal} BCL The successor to {Atlas Commercial Language}. ["The Provisional BCL Manual", D. Hendry, U London 1966]. BC NELIAC Version of NELIAC, post 1962. Sammet 1969, p.197. BCNU Be seein' you. BCPL (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 . (1995-03-26) BCS 1. {British Computer Society}. 2. {Binary Compatibility Standard}. bd The {country code} for Bangladesh. (1999-01-27) BDL Block Diagram Compiler. A block-diagram simulation tool, with associated language. "A Software Environment for Digital Signal-Processing Simulations," D.H. Johnson & R.E. Vaughan, Circuits Systems and Signal Processing 6(1):31-43, (1987). BDPA {Black Data Processing Associates} be The {country code} for Belgium. (1999-01-27) BEA Basic programming Environment for interactive-graphical Applications, from Siemens-Nixdorf. beam [Star Trek Classic's "Beam me up, Scotty!"] To transfer {softcopy} of a file electronically; most often in combining forms such as "beam me a copy" or "beam that over to his site". Compare {blast}, {snarf}, {BLT}. beamer A video projector that can be connected to a computer instead of, or as well as, a {monitor}, and used for making presentations. [Examples? Proper term?] (1999-10-24) beam search An optimisation of the {best first search} graph search {algorithm} where only a predetermined number of paths are kept as candidates. The number of paths is the "width of the beam". If more paths than this are generated, the worst paths are discarded. This reduces the space requirements of best first search. bean {JavaBeans} beanie key {feature key} bearer channel Originally, a channel suited for carrying one voice-grade connection. Typically a {DS0} channel. Compare {data channel}. (1997-03-7) bear paw The {Vulcan nerve pinch} for {SGI} computers. The five key keyboard combination resets the graphics subsystem, including the {window manager}. (1996-10-28) Beats the shit outa me (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 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 . (1996-10-27) BeBox A {microcomputer} produced by {Be Inc}, containing between two and eight {PowerPCs} (the initial model has two {PPC} 603s). The BeBox can take standard {IBM PC} {peripherals}, such as {ISA} and {PCI} cards, {IDE} and {SCSI} disks, and a standard {PS/2} keyboard. Newsgroup: {news:comp.sys.be}. {Home (http://www.be.com/)}. [Dates?] (1996-10-05) BEDO {Burst Extended Data Out DRAM} Bedrock A {C++} {class} library for {Macintosh} user interface portability. beep {bell} beeper {pager} BEG {Back End Generator} @Begin The {Scribe} equivalent of {\begin}. \begin 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 "" and "" (a la {HTML}), or "#ifdef FLAME" and "#endif FLAME" (a la {C preprocessor}). (1998-09-21) BEGL {Back End Generator} beige toaster {Macintosh} Be Inc The company that produced the {BeBox}, founded by Jean-Louis Gassee, former product chief at {Apple}. (1996-10-05) BEL {bell} belief revision The area of {theory change} in which preservation of the information in the theory to be changed plays a key role. A fundamental issue in belief revision is how to decide what information to retract in order to maintain consistency, when the addition of a new belief to a theory would make it inconsistent. Usually, an ordering on the sentences of the theory is used to determine priorities among sentences, so that those with lower priority can be retracted. This ordering can be difficult to generate and maintain. The postulates of the {AGM Theory for Belief Revision} describe minimal properties a revision process should have. [Better definition?] (1995-03-20) BELL An early system on the {IBM 650} and {Datatron 200} series. Versions: BELL L2, BELL L3. [Listed in CACM 2(5):16 (May 1959)]. [Is Datatron version the same?] (1994-12-06) Bell {Bell Telephone} or {Bell Laboratories}. (1997-04-07) bell {ASCII} 7, ASCII {mnemonic} "BEL", the {character code} which prodces a standard audibile warning from the computer or {terminal}. In the {teletype} days it really was a bell, since the advent of the {VDU} it is more likely to be a sound sample (e.g. the sound of a bell) played through a loudspeaker. Also called "G-bell", because it is typed as Control-G. The term "beep" is preferred among some {microcomputer} hobbyists. Compare {feep}, {visible bell}. (1997-04-08) Bell 103 The original variant of {V.21} created by {AT&T} when they had a telephone system monopoly in the USA. (1995-02-02) Bell Communications Research, Inc (Bellcore) The research laboratory for the seven regional {Bell Telephone} companies in the USA that were created by the divestiture of {AT&T} in 1984. It can be compared to {Bell Laboratories}, for which many Bellcore employees used to work. Currently jointly owned by the seven baby bells (as they are called), there are rumours that it is to be sold by its current owners to become an independent research laboratory Its headquarters are in Livingstone, New Jersey. It has offices in Morristown, Lincroft, and Piscataway, all in New Jersey, USA. Telephone: +1 (201) 74 3000, +1 (800) 521 CORE. (1994-12-06) Bellcore {Bell Communications Research, Inc.} bell curve {normal distribution}. Bell Laboratories One of {AT&T}'s research sites, in Murray Hill, New Jersey, USA. It was the birthplace of the {transistor}, {Unix}, {C} and {C++} and the current home of research on {Plan 9} and {ODE}. {AT&T Research (http://www.research.att.com/)} {(ftp://ftp.research.att.com/)} {netlib} sources {(ftp://netlib.att.com)}. (1994-11-17) Bell Labs {Bell Laboratories} bells and whistles [By analogy with the toyboxes on theatre organs]. Features added to a program or system to make it more {flavourful} from a hacker's point of view, without necessarily adding to its utility for its primary function. Distinguished from {chrome}, which is intended to attract users. "Now that we've got the basic program working, let's go back and add some bells and whistles." No one seems to know what distinguishes a bell from a whistle. bells, whistles, and gongs A standard elaborated form of {bells and whistles}; typically said with a pronounced and ironic accent on the "gongs". benchmark A standard program or set of programs which can be run on different computers to give an inaccurate measure of their performance. "In the computer industry, there are three kinds of lies: lies, damn lies, and benchmarks." A benchmark may attempt to indicate the overall power of a system by including a "typical" mixture of programs or it may attempt to measure more specific aspects of performance, like graphics, I/O or computation (integer or {floating-point}). Others measure specific tasks like {rendering} polygons, reading and writing files or performing operations on matrices. The most useful kind of benchmark is one which is tailored to a user's own typical tasks. While no one benchmark can fully characterise overall system performance, the results of a variety of realistic benchmarks can give valuable insight into expected real performance. Benchmarks should be carefully interpreted, you should know exactly which benchmark was run (name, version); exactly what configuration was it run on (CPU, memory, compiler options, single user/multi-user, peripherals, network); how does the benchmark relate to your workload? Well-known benchmarks include {Whetstone}, {Dhrystone}, {Rhealstone} (see {h}), the {Gabriel benchmarks} for {Lisp}, the {SPECmark} suite, and {LINPACK}. See also {machoflops}, {MIPS}, {smoke and mirrors}. {Usenet} newsgroup: {news:comp.benchmarks}. {A database of some benchmark results (http://netlib2.cs.utk.edu/performance/html/PDSreports.html)}. (1999-10-12) Bend Over, Here It Comes Again (BOHICA) An utterance of frustration by computer support personnel who anticipate being told (usually via phone) to do something that can't be done, by a boss who doesn't know his ass from deep center field about what he's asking his minions to do. (1995-09-20) Benoit B. Mandelbrot {Benoit Mandelbrot} Benoit Mandelbrot /ben'wa man'dl-bro/ Benoit B. Mandelbrot. The {IBM} scientist who wrote several original books on {fractals} and gave his name to the set he was discovered, the {Mandelbrot set} and coined the term "fractal" in 1975 from the Latin fractus or "to break". (1997-07-02) BeOS The {operating system} designed to run on the {BeBox} {microcomputer}. BeOS is good at both {multitasking} and {real-time} operation. It has a {bash} command shell, with ports of many {GNU} programs by Be, Inc. It has a {GUI} front end (not {X}). A {C++} {compiler} is supplied with the machine, and there are rumours of other languages being ported in the future. (1996-10-05) BER {Basic Encoding Rules} Berkeley {University of California at Berkeley} Berkeley 4.2 {Berkeley System Distribution} Berkeley EDIF200 translator-building toolkit Wendell C. Baker and Prof A. Richard Newton of the Electronics Research Laboratory, Department of Electrical Engineering and Computer Sciences at the {University of California, Berkeley}. Version 7.6. Restriction: no-profit without permission. {(ftp://ic.berkeley.edu/pub/edif)} (1990-07-01) Berkeley FP A version of {Backus}'s {FP} distributed with {4.2BSD} {Unix}. {(ftp://apple.com/ArchiveVol1/Unix_lang)} (1997-12-15) Berkeley Internet Name Domain (BIND) An implementation of a {DNS} {server} developed and distributed by the {University of California at Berkeley}. Many {Internet} {hosts} run BIND, and it is the ancestor of many commercial implementations. (1997-12-15) Berkeley Logo A {Logo} {interpreter} by Brian Harvey . Berkeley Logo programs will run on {Unix}, {IBM PC} and {Macintosh}. It doesn't do anything fancy about graphics and only allows one {turtle}. Version: 4.2, 4.3 "in the works" (1997-11-26). {MswLogo} is a {Microsoft Windows} {front end}. {(ftp://anarres.cs.berkeley.edu/pub/ucblogo)}. (1997-11-26) Berkeley Network (B-NET) Top level {Unix} {Ethernet} software developed at the {University of California at Berkeley}. There are no formal specifications but UCB's {4.2BSD} {Unix} implementation on the {VAX} is the de facto standard. Distributed by {Unisoft}. Includes net.o driver routines for specific hardware, {pseudo tty}s, {daemons}, hostname command to set/get name, /etc/hosts database of names and {Internet address}es of other hosts, /etc/hosts.equiv host-wide database to control remote access, .rhosts per user version of hosts.equiv. UCB's implementation of the {Internet Protocol} includes trailers to improve performance on paged memory management systems such as {VAXen}. These trailers are an exception to the Internet Protocol specification. Berkeley Quality Software (Often abbreviated "BQS") Term used in a pejorative sense to refer to software that was apparently created by rather spaced-out hackers late at night to solve some unique problem. It usually has nonexistent, incomplete, or incorrect documentation, has been tested on at least two examples, and core dumps when anyone else attempts to use it. This term was frequently applied to early versions of the "dbx(1)" debugger. See also {Berzerkeley}. (1996-01-15) Berkeley Software Design, Inc (BSDI) A company that sells {BSD/OS}, a commercial version of {Berkeley Standard Distribution} {Unix}, networking, and Internet technologies originally developed by the {Computer Systems Research Group} (CSRG) at the {University of California at Berkeley}. Leading CSRG computer scientists founded BSDI in 1991. BSDI's BSD/OS represents over 20 years of development by the worldwide BSD technical community. BSD technology is known worldwide for its powerful, flexible and portable architecture and advanced development environments. BSDI designs, develops, markets, and supports the {BSD/OS} {operating system}, {Internet} server software for {IBM PCs}, and other products. BSDI planned to release an Internet gateway product for {Novell} {IPX} networks in 1995. {Home (http://www.bsdi.com/)} E-mail: . Address: 5575 Tech Center Drive, #110, Colorado Springs, CO 80918, USA. Telephone: +1 (719) 593 9445. Fax: +1 (719) 598 4238. (1996-01-13) Berkeley Softworks The company that wrote {Graffiti} and a similar scheme for the {Commodore 64} (made it very {Macintosh}-like) and the {Commodore 128} (which could {multitask}). (1995-01-24) Berkeley System Distribution (BSD) A family of {Unix} versions for the {DEC} {VAX} and {PDP-11}, developed by {Bill Joy} and others at the {University of California at Berkeley}. BSD Unix incorporates {paged} {virtual memory}, {TCP/IP} networking enhancements, and many other features. BSD UNIX 4.0 was released on 19 October 1980. The BSD versions (4.1, 4.2, and 4.3) and the commercial versions derived from them ({SunOS}, {ULTRIX}, {Mt. Xinu}, {Dynix}) held the technical lead in the Unix world until {AT&T}'s successful standardisation efforts after about 1986, and are still widely popular. See also {Berzerkeley}, {USG Unix}. (1994-11-23) Berkeley Unix {Berkeley System Distribution} berklix /berk'liks/ (From {Berkeley Unix}) {Berkeley System Distribution}. Not used at {Berkeley} itself. May be more common among {suit}s attempting to sound like cognoscenti than among hackers, who usually just say "BSD". (1995-02-23) Berners-Lee, Tim {Tim Berners-Lee} Bernoulli Box A high capacity storage device, {Iomega Corporation}'s first popular product, that spins a mylar disk over a read-write head using the {Bernoulli prinicple}. (1997-04-15) Bernoulli principle (Or "air foil principle", after Swiss mathematician Daniel Bernoulli, 1700-1782) The law that pressure in a fluid decreases with the rate of flow. It has been applied to a class of {hard disk} drives. See {Bernoulli Box}. (1997-04-15) Bernstein condition Processes cannot execute in parallel if one effects values used by the other. Nor can they execute in parallel if any subsequent process uses data effected by both, i.e. whose value might depend on the order of execution. (1995-02-23) Bertrand (Named after the British mathematician Bertrand Russell (1872-1970)). Wm. Leler. Rule-based specification language based on augmented term rewriting. Used to implement constraint languages. The user must explicitly specify the tree-search and the constraint propagation. {(ftp://nexus.yorku.ca/pub/scheme/scm/bevan.shar)} ["Constraint Programming Languages - Their Specification and Generation", W. Leler, A-W 1988, ISBN 0-201-06243-7]. Bertrand Meyer The author of the {Eiffel} Language and many articles on {object-oriented} software techniques. (1995-03-01) Bertrand Russell (1872-1970) A British mathematician, the discoverer of {Russell's paradox}. (1995-03-27) Berzerkeley /b*r-zer'klee/ (From "berserk", via the name of a now-deceased record label) A humorous distortion of "Berkeley" used especially to refer to the practices or products of the {BSD Unix} hackers. See {software bloat}, {Missed'em-five}, {Berkeley Quality Software}. Mainstream use of this term in reference to the cultural and political peculiarities of UC Berkeley as a whole has been reported from as far back as the 1960s. (1996-06-01) Berzerkley {Berzerkeley} best effort A classification of low priority network traffic, used especially the {Internet}. Different kinds of traffic have different priorities. {Videoconferencing} and other types of {real-time} communication, for example, require a certain minimum guaranteed {bandwidth} and {latency} and so must be given a high priority. {Electronic mail}, on the other hand, can tolerate an arbitrarily long delay and is classified as a "best-effort" service. [Scientific American, Nov. 1994, pp. 83-84]. (1995-04-04) best first search A {graph} search {algorithm} which optimises {breadth first search} by ordering all current paths according to some {heuristic}. The heuristic attempts to predict how close the end of a path is to a solution. Paths which are judged to be closer to a solution are extended first. See also {beam search}, {hill climbing}. (1995-12-09) Best Fit A {resource} allocation scheme (usually for {memory}). Best Fit tries to determine the best place to put the new data. The definition of 'best' may differ between implementations, but one example might be to try and minimise the wasted space at the end of the block being allocated - i.e. use the smallest space which is big enough. By minimising wasted space, more data can be allocated overall, at the expense of a more time-consuming allocation {routine}. Compare {First Fit}. (1997-06-02) BETA Kristensen, Madsen , Moller-Pedersen & Nygaard, 1983. Object-oriented language with block structure, coroutines, concurrency, {strong typing}, part objects, separate objects and classless objects. Central feature is a single abstraction mechanism called "patterns", a generalisation of classes, providing instantiation and hierarchical inheritance for all objects including procedures and processes. Mjolner Informatics ApS, Aarhus, implementations for Mac, Sun, HP, Apollo. E-mail: . Mailing list: . ["Object-Oriented Programming in the BETA Programming Language", Ole Lehrmann et al, A-W June 1993, ISBN 0-201-62430-3]. (1995-10-31) beta /bay't*/, /be't*/ or (Commonwealth) /bee't*/ See {beta conversion}, {beta test}. beta abstraction [{lambda-calculus}] The conversion of an expression to an {application} of a {lambda abstraction} to an argument expression. Some subterm of the original expression becomes the argument of the abstraction and the rest becomes its body. E.g. 4+1 --> (\ x . x+1) 4 The opposite of beta abstraction is {beta reduction}. These are the two kinds of {beta conversion}. beta conversion A term from {lambda-calculus} for {beta reduction} or {beta abstraction}. (1999-01-15) Betamaxed When a technology is overtaken in the market by inferior but better marketed competition. E.g. "Microsoft betamaxed Apple right out of the market". The Betamex videotape standard lost to VHS. (1999-01-15) beta reduction [{lambda-calculus}] The {application} of a {lambda abstraction} to an argument expression. A copy of the body of the lambda abstraction is made and occurrences of the {bound variable} being replaced by the argument. E.g. (\ x . x+1) 4 --> 4+1 Beta reduction is the only kind of {reduction} in the {pure lambda-calculus}. The opposite of beta reduction is {beta abstraction}. These are the two kinds of {beta conversion}. See also {name capture}. beta testing Testing a pre-release (potentially unreliable) version of a piece of software by making it available to selected users. This term derives from early 1960s terminology for product cycle checkpoints, first used at {IBM} but later standard throughout the industry. "{Alpha test}" was the unit, module, or component test phase; "Beta Test" was initial system test. These themselves came from earlier A- and B-tests for hardware. The A-test was a feasibility and manufacturability evaluation done before any commitment to design and development. The B-test was a demonstration that the engineering model functioned as specified. The C-test (corresponding to today's beta) was the B-test performed on early samples of the production design. An item "in beta test" is thus mostly working but still under test. In the {Real World}, systems (hardware or software) often go through two stages of release testing: Alpha (in-house) and Beta (out-house?). Beta releases are generally made available to a small number of lucky (or unlucky), trusted customers. (1996-11-05) beta version {beta testing} Bezier (After Frenchman Pierre Bézier from Regie Renault) A collection of formulae for describing curved lines ({Bezier curve}) and surfaces ({Bezier surface}), first used in 1972 to model automobile surfaces. Curves and surfaces are defined by a set of "control points" which can be moved interactively making Bezier curves and surfaces convenient for interactive graphic design. ["Principles of interactive computer graphics", William M. Newman, Graw-Hill]. (1995-04-04) Bezier curve 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 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 The {country code} for Burkina Faso. (1999-01-27) BFI {brute force and ignorance} bg The {country code} for Bulgaria. (1999-01-27) BGP {Border Gateway Protocol} bh The {country code} for Bahrain. (1999-01-27) BHC Code {Bose-Chaudhuri-Hocquenghem Code} bi The {country code} for Burundi. (1999-01-27) bib {BibTeX} bible The most detailed and authoritative reference for a particular language, {operating system} or other complex software system. It is also used to denote one of a small number of such books such as {Knuth} and {K&R}. (1996-12-03) BIBOP {Big bag of pages} BibTeX A {Tex} extension package for bibliographic citations, distributed with {LaTeX}. BibTeX uses a style-independent bibliography database (.bib file) to produce a list of sources, in a customisable style, from citations in a Latex document. It also supports some other formats. BibTeX is a separate program from LaTeX. LaTeX writes information about citations and which .bib files to use in a ".aux" file. BibTeX reads this file and outputs a ".bbl" file containing LaTeX commands to produce the source list. You must then run LaTeX again to incorporate the source list in your document. In typeset documents, "BibTeX" is written in upper case, with the "IB" slightly smaller and with the "E" as a subscript. BibTeX is described in the {LaTeX} book by Lamport. BiCapitalisation The act said to have been performed on trademarks (such as {PostScript}, {NeXT}, {NeWS}, {VisiCalc}, {FrameMaker}, {TK!solver}, {EasyWriter}) that have been raised above the ruck of common coinage by nonstandard capitalisation. Too many {marketroid} types think this sort of thing is really cute, even the 2,317th time they do it. Compare {studlycaps}. (1995-02-23) BiCMOS 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 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 (BSA, French for "Moneyless Hackers") An association which aim is to help computer users who can't afford to buy commercial software. The main purpose of the association is the promotion of {free software}, and distribution of ex-commercial software. This is clearly an answer to the repressive attitude of the "other" {BSA}. Among BSA members are {Richard Stallman}, creator of the {GNU} project. {Home (http://www.bsa.lu/)}. (1998-10-27) bi-endian Silicon schizophrenia. Processors and other chips that have can be switched to work in in {big-endian} or {little-endian} mode. The {PowerPC} chip has this ability, which allows it to run the little-endian {Windows NT}, or the big-endian {Mac OS/PPC}. (1995-02-23) BIFF /bif/ (Or "B1FF", from {Usenet}) The most famous {pseudo}, and the prototypical {newbie}. Articles from BIFF are characterised by all uppercase letters sprinkled liberally with bangs, typos, "cute" misspellings (EVRY BUDY LUVS GOOD OLD BIFF CUZ HE'S A K00L DOOD AN HE RITES REEL AWESUM THINGZ IN CAPITULL LETTRS LIKE THIS!!!), use (and often misuse) of fragments of {chat} abbreviations, a long {sig block} (sometimes even a {doubled sig}), and unbounded naivete. BIFF posts articles using his elder brother's VIC-20. BIFF's location is a mystery, as his articles appear to come from a variety of sites. However, {BITNET} seems to be the most frequent origin. The theory that BIFF is a denizen of BITNET is supported by BIFF's (unfortunately invalid) {electronic mail address}: . [1993: Now It Can Be Told! My spies inform me that BIFF was originally created by Joe Talmadge , also the author of the infamous and much-plagiarised "Flamer's Bible". The BIFF filter he wrote was later passed to Richard Sexton, who posted BIFFisms much more widely. Versions have since been posted for the amusement of the net at large. - ESR] (1997-09-22) biff /bif/ To notify someone of incoming mail. From the {BSD} utility "biff(1)", which was in turn named after a friendly golden Labrador who used to chase frisbees in the halls at UCB while {4.2BSD} was in development (it had a well-known habit of barking whenever the mailman came). No relation to {BIFF}. \big Prefix of several {LaTeX} commands implying a larger symbol. See the command without "big". Often used to convert a {dyadic} operator into a function which operates on a set. E.g. \sqcup, \bigsqcup. (1995-02-03) Big bag of pages (BIBOP) Where data objects are tagged with some kind of descriptor (giving their size or type for example) memory can be saved by storing objects with the same descriptor in one "page" of memory. The most significant bits of an object's address are used as the BIBOP page number. This is looked up in a BIBOP table to find the descriptor for all objects in that page. This idea is similar to the "zones" used in some {Lisp} systems (e.g. {LeLisp}). [David R. Hanson. "A portable storage management system for the Icon programming language". Software - Practise and Experience, 10:489-500 1980]. (1994-11-29) big blue {International Business Machines} big-endian 1. 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. A backward {electronic mail address}. The world now follows the {Internet} {hostname} {standard} (see {FQDN}) and writes e-mail addresses starting with the name of the computer and ending up with the {country code} (e.g. dbh@doc.ic.ac.uk). In the United Kingdom the {Joint Networking Team} decided to do it the other way round (e.g. me@uk.ac.wigan.cs) before the {Internet} {domain} standard was established. Most {gateway sites} required {ad-hockery} in their {mailers} to handle this. By July 1994 this parochial idiosyncracy was on the way out and mailers started to reject big-endian addresses. By about 1996, people would look at you strangely if you suggested such a bizarre thing might ever have existed. (1998-08-09) Big Gray Wall What faces a {VMS} user searching for documentation. A full VMS kit comes on a pallet, the documentation taking up around 15 feet of shelf space before the addition of layered products such as {compiler}s, {database}s, multi-vendor networking, and programming tools. Recent (since VMS version 5) DEC documentation comes with grey binders; under VMS version 4 the binders were orange and under version 3 they were blue. Often contracted to "Gray Wall". (1995-03-07) big iron Large, expensive, ultra-fast computers. Used generally of {number crunching} supercomputers such as {Cray}s, but can include more conventional big commercial {IBM}ish {mainframe}s. Term of approval; compare {heavy metal}, oppose {dinosaur}. BIG-LAN ["BIG-LAN Frequently Asked Questions Memo", BIG-LAN DIGEST V4:I8, February 14, 1992.] Bigloo A {Scheme} {interpreter}, compiler and {run-time system} by Manuel Serrano 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 /big'nuhm/ (Originally from {MIT} {MacLISP}) A {multiple-precision} computer representation for very large integers. Most computer languages provide a type of data called "integer", but such computer integers are usually limited in size; usually they must be smaller than 2^31 (2,147,483,648) or (on a {bitty box}) 2^15 (32,768). If you want to work with numbers larger than that, you have to use {floating-point} numbers, which are usually accurate to only six or seven decimal places. Computer languages that provide bignums can perform exact calculations on very large numbers, such as 1000! (the factorial of 1000, which is 1000 times 999 times 998 times ... times 2 times 1). For example, this value for 1000! was computed by the {MacLISP} system using bignums: 40238726007709377354370243392300398571937486421071 46325437999104299385123986290205920442084869694048 00479988610197196058631666872994808558901323829669 94459099742450408707375991882362772718873251977950 59509952761208749754624970436014182780946464962910 56393887437886487337119181045825783647849977012476 63288983595573543251318532395846307555740911426241 74743493475534286465766116677973966688202912073791 43853719588249808126867838374559731746136085379534 52422158659320192809087829730843139284440328123155 86110369768013573042161687476096758713483120254785 89320767169132448426236131412508780208000261683151 02734182797770478463586817016436502415369139828126 48102130927612448963599287051149649754199093422215 66832572080821333186116811553615836546984046708975 60290095053761647584772842188967964624494516076535 34081989013854424879849599533191017233555566021394 50399736280750137837615307127761926849034352625200 01588853514733161170210396817592151090778801939317 81141945452572238655414610628921879602238389714760 88506276862967146674697562911234082439208160153780 88989396451826324367161676217916890977991190375403 12746222899880051954444142820121873617459926429565 81746628302955570299024324153181617210465832036786 90611726015878352075151628422554026517048330422614 39742869330616908979684825901254583271682264580665 26769958652682272807075781391858178889652208164348 34482599326604336766017699961283186078838615027946 59551311565520360939881806121385586003014356945272 24206344631797460594682573103790084024432438465657 24501440282188525247093519062092902313649327349756 55139587205596542287497740114133469627154228458623 77387538230483865688976461927383814900140767310446 64025989949022222176590433990188601856652648506179 97023561938970178600408118897299183110211712298459 01641921068884387121855646124960798722908519296819 37238864261483965738229112312502418664935314397013 74285319266498753372189406942814341185201580141233 44828015051399694290153483077644569099073152433278 28826986460278986432113908350621709500259738986355 42771967428222487575867657523442202075736305694988 25087968928162753848863396909959826280956121450994 87170124451646126037902930912088908694202851064018 21543994571568059418727489980942547421735824010636 77404595741785160829230135358081840096996372524230 56085590370062427124341690900415369010593398383577 79394109700277534720000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 000000000000000000. (1996-06-27) bigot A person who is religiously attached to a particular computer, language, operating system, editor, or other tool (see {religious issues}). Usually found with a specifier; thus, "Cray bigot", "ITS bigot", "APL bigot", "VMS bigot", "Berkeley bigot". Real bigots can be distinguished from mere partisans or zealots by the fact that they refuse to learn alternatives even when the march of time and/or technology is threatening to obsolete the favoured tool. It is truly said "You can tell a bigot, but you can't tell him much." Compare {weenie}. Big Red Switch [IBM] The power switch on a computer, especially the "Emergency Pull" switch on an IBM {mainframe} or the power switch on an IBM PC where it really is large and red. "This !@%$% {bitty box} is hung again; time to hit the Big Red Switch." Sources at IBM report that, in tune with the company's passion for {TLA}s, this is often abbreviated as "BRS" (this has also become established on FidoNet and in the {IBM PC} world). It is alleged that the emergency pull switch on an {IBM 360}/91 actually fired a non-conducting bolt into the main power feed; the BRSes on more recent mainframes physically drop a block into place so that they can't be pushed back in. People get fired for pulling them, especially inappropriately (see also {molly-guard}). Compare {power cycle}, {three-finger salute}, {120 reset}; see also {scram switch}. Big Room 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 An {MIT} term for a {Good Thing} or a lucky accident. (1996-03-06) bijection A {function} is bijective or a bijection or a one-to-one correspondence if it is both {injective} (no two values map to the same value) and {surjective} (for every element of the {codomain} there is some element of the {domain} which maps to it). I.e. there is exactly one element of the domain which maps to each element of the codomain. Only bijective functions have inverses f' where f(f'(x)) = f'(f(x)) = x. See also {injection}, {surjection}, {isomorphism}. (1999-08-29) Bill Gates William Henry Gates III, Chief Executive Officer of {Microsoft}, which he co-founded in 1975 with {Paul Allen}. In 1994 Gates is a billionaire, worth $9.35b and {Microsoft} is worth about $27b. He was a {computer nerd} who dropped out of Harvard and one of the first programmers to oppose {software piracy} ("Open Letter to Hobbyists," Computer Notes, February 3, 1976). (1995-03-02) Bill Joy {William Joy} binaries {binary file} binary 1. {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. 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. A description of an {operator} which takes two {arguments}. See also {unary}, {ternary}. (1998-07-29) binary coded decimal (BCD) Number representation where a number is expressed as a sequence of decimal digits and then each decimal digit is encoded as a four bit binary number. E.g. decimal 92 would be encoded as the eight-bit sequence 1001 0010. It is easier to convert decimal numbers to and from BCD than binary and it is possible to build hardware which operates directly on BCD though it is often converted to binary for arithmetic processing. Binary Compatibility Standard (BCS) The {ABI} of {88open}. (1997-07-03) binary counter A digital circuit which has a clock input and a number of count outputs which give the number of clock cycles. The output may change either on rising or falling clock edges. The circuit may also have a reset input which sets all outputs to zero when asserted. The counter may be either a {synchronous counter} or a {ripple counter}. (1997-07-03) binary exponential backoff An {algorithm} for dealing with contention in the use of a network. To transmit a {packet} the {host} sets a local parameter, L to 1 and transmits in one of the next L {slot}s. If a {collision} occurs, it doubles L and repeats. binary file A file containing arbitrary bytes or words, as opposed to a {text file} containing only printable characters (e.g. {ASCII} characters with codes 10, 13, and 32-126). On modern {operating systems} a text file is simply a binary file that happens to contain only printable characters, but some older systems distinguish the two file types, requiring programs to handle them differently. A common class of binary files is programs in {machine language} ("{executable} files") ready to load into memory and execute. Binary files may also be used to store data output by a program, and intended to be read by that or another program but not by humans. Binary files are more efficient for this purpose because the data (e.g. numerical data) does not need to be converted between the binary form used by the {CPU} and a printable (ASCII) representation. The disadvantage is that it is usually necessary to write special purpose programs to manipulate such files since most general purpose utilities operate on text files. There is also a problem sharing binary numerical data between processors with different {endian}ness. Some communications {protocols} handle only text files, e.g. most {electronic mail} systems, though as of 1995 this is changing slowly. The {Unix} utility {uuencode} can be used to convert binary data to text for transmission by e-mail. The {FTP} utility must be put into "binary" mode in order to copy a binary file since in its default "ascii" mode translates between the different text line terminator characters used on the sending and receiving computers. Confusingly, some files produced by {wordprocessors}, and {rich text} files, are actually binary files because they contain non-printable characters and require special programs to view, edit, and print them. (1995-12-14) binary large object (BLOB) A large block of data stored in a {database}, such as an {image} or {sound} file. A BLOB has no structure which can be interpreted by the {database management system} but is known only by its size and location. (1997-11-04) binary search A search {algorithm} which repeatedly divides an ordered {search space} in half according to how the required (key) value compares with the middle element. The following pseudo-{C} routine performs a binary search return the index of the element of vector "thing[first..last]" equal to "target": if (target < thing[first] || target > thing[last]) return NOT_FOUND; while (first < last) { mid = (first+last)/2; /* truncate to integer */ if (target < thing[mid]) last = mid; else if (target > thing[mid]) first = mid+1; else return mid; } if (target == thing[last]) return last; return NOT_FOUND; (1995-04-10) Binary Synchronous Transmission (Bisynch) An {IBM} link {protocol}, developed in the 1960 and popular in the 1970s and 1980s. Binary Synchronous Transmission has been largely replaced in IBM environments with {SDLC}. Bisync was developed for {batch} communications between a {System 360} computer and the IBM 2780 and 3780 {Remote Job Entry} (RJE) {terminals}. It supports RJE and on-line terminals in the {CICS}/{VSE} environment. It operates with {EBCDIC} or {ASCII} {character sets}. It requires that every message be acknowledged ({ACK}) or negatively acknowledged ({NACK}) so it has high transmission overhead. It is typically character oriented and {half-duplex}, although some of the bisync protocol flavours or dialects support binary transmission and {full-duplex} operation. (1997-01-07) binary tree (btree) A {tree} in which each node has at most two successors or child nodes. In {Haskell} this could be represented as data BTree a = NilTree | Node a (BTree a) (BTree a) See also {balanced tree}. (1994-11-29) BIND {Berkeley Internet Name Domain} bindery 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 An identifier representing the connection between a {client} and {server}. An association between client/server end-points and {protocols}. (1997-03-18) binding-time analysis 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 A {Macintosh} format for representing a {binary file} using only {printable character}s. The file is converted to lines of letters, numbers and punctuation. Because BinHex files are simply text they can be sent through most {electronic mail} systems and stored on most computers. However the conversion to text makes the file larger, so it takes longer to transmit a file in BinHex format than if the file was represented some other way. {Filename extension}: .hqx. See also {BinHex 4.0}, {uuencode}. [Encoding algorithm?] (1994-11-30) Binhex 4.0 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 Probably the fastest freely available {C}-emulated {Prolog}. BinProlog features: logical and permanent {global variable}s; backtrackable {destructive assignment}; circular term {unification}; extended {DCG}s (now built into the {engine} as "invisible grammars"); {intuitionistic} and {linear implication} based {hypothetical reasoning}; a {Tcl}/{Tk} interface. Version 3.30 runs on {SPARC}/{Solaris} 2.x, {SunOS} 4.x; {DEC Alpha} 64-bit version; {DEC} {MIPS}; {SGI} {MIPS}; {68k} - {NeXT}, {Sun3}; {IBM RS6000}; {HP PA-RISC} (two variants); {Intel 80386}, {Intel 486}/{Linux}, {MS-DOS}, {Microsoft Windows 3.1} (with DOS-extender {go32} v1.10). {Multi-BinProlog} is a {multi-threaded} {Linda}-style parallel extension to BinProlog for {Solaris} 2.3. {(ftp://clement.info.umoncton.ca/BinProlog/)} E-mail: Paul Tarau . (1995-04-04) BIOR An early system on {UNIVAC} I or II. [Listed in CACM 2(5):16 (May 1959)]. (1995-04-01) BIOS {Basic Input/Output System} BIP An incorrect singular of {BIPS}. One billion instructions per second is 1 BIPS, not 1 BIP. bipartite graph See {complete graph}. bipolar 1. See {bipolar transistor}. 2. In digital transmission, an electrical line signalling method where the mark value alternates between positive and negative polarities. See also {AMI}. (1995-03-02) bipolar transistor A {transistor} made from a sandwich of n- and p-type {semiconductor} material: either npn or pnp. The middle section is known as the "base" and the other two as the "collector" and "emitter". When used as an amplifying element, the base to emitter junction is in a "forward-biased" (conducting) condition, and the base to collector junction is "reverse-biased" or non-conducting. Small changes in the base to emitter current (the input signal) cause either {holes} (for pnp devices) or free {electrons} (for npn) to enter the base from the emitter. The attracting voltage of the collector causes the majority of these charges to cross into and be collected by the collector, resulting in amplification. Contrast {field effect transistor}. (1995-10-04) BIPS Billion (10^9) instructions per second. Same as {GIPS}. Bird-Meertens Formalism (BMF) (Or "Squiggol") A calculus for derivation of {functional program}s from a specification. It consists of a set of {higher-order function}s that operate on lists including {map}, {fold}, {scan}, {filter}, inits, tails, {cross product} and {function composition}. ["A Calculus of Functions for Program Derivation", R.S. Bird, in Res Topics in Fnl Prog, D. Turner ed, A-W 1990]. ["The Squiggolist", ed Johan Jeuring, published irregularly by CWI Amsterdam]. (1995-05-01) Birds Of a Feather (BOF) (From the saying "Birds of a feather flock together") An informal discussion group, scheduled on a conference program or formed ad hoc, to consider a specific issue or subject. It is not clear where or when this term originated, but it is now associated with the {USENIX} conferences for {Unix} techies and was already established there by 1984. It was used earlier than that at {DECUS} conferences and is reported to have been common at {SHARE} meetings as far back as the early 1960s. (1994-10-11) BISDN Broadband {Integrated Services Digital Network}. Bison {GNU}'s replacement for the {yacc} {parser generator}. Runs under {Unix} and {Atari}. Author: Robert Corbett. Version: 1.22. Bison will apply the {GNU} {General Public License} to your code. FTP from your nearest {GNU archive site}. {(ftp://prep.ai.mit.edu/pub/gnu/bison-1.21.tar.Z)}. E-mail: . {Bison++} is a version which produces {C++} output. (1993-09-14) Bison++ GNU's Yacc parser generator retargeted to C++ by Alain Coetmeur . Version 1.04. {(ftp://iecc.com/pub/file/bison++.tar.gz)}. {(ftp://iecc.com/pub/file/misc++.tar.gz)}. {(ftp://psuvax1.cs.psu.edu/pub/src/gnu/bison++-1.04.tar.Z)}. (1993-07-08) BIST {Built-in Self Test} bisync {Binary Synchronous Transmission} bit (b) binary digit. The unit of information; the amount of information obtained by asking a yes-or-no question; a computational quantity that can take on one of two values, such as true and false or 0 and 1; the smallest unit of storage - sufficient to hold one bit. A bit is said to be "set" if its value is true or 1, and "reset" or "clear" if its value is false or 0. One speaks of setting and clearing bits. To {toggle} or "invert" a bit is to change it, either from 0 to 1 or from 1 to 0. The term "bit" first appeared in print in the computer-science sense in 1949, and seems to have been coined by early computer scientist John Tukey. Tukey records that it evolved over a lunch table as a handier alternative to "bigit" or "binit". See also {flag}, {trit}, {mode bit}, {byte}, {word}. (1996-11-03) bit bang Transmission of data on a {serial line} accomplished by rapidly changing a single output bit, in software, at the appropriate times. The technique is a simple loop with eight OUT and SHIFT instruction pairs for each byte. Input is more interesting. And {full duplex} (doing input and output at the same time) is one way to separate the real hackers from the {wannabee}s. Bit bang was used on certain early models of {Prime} computers, presumably when {UART}s were too expensive, and on archaic {Zilog Z80} micros with a {Zilog} PIO but no SIO. In an interesting instance of the {cycle of reincarnation}, this technique is now (1991) coming back into use on some {RISC} architectures because it consumes such an infinitesimal part of the processor that it actually makes sense not to have a {UART}. bit bashing (Also "bit diddling" or {bit twiddling}). Any of several kinds of low-level programming characterised by manipulation of {bit}, {flag}, {nibble}, and other smaller-than-character-sized pieces of data. These include low-level device control, encryption algorithms, checksum and error-correcting codes, hash functions, some flavours of graphics programming (see {bitblt}), and assembler/compiler code generation. May connote either tedium or a real technical challenge (more usually the former). "The command decoding for the new tape driver looks pretty solid but the bit-bashing for the control registers still has bugs." See also {bit bang}, {mode bit}. bitblt /bit'blit/ [{BLT}] 1. Any of a family of closely related algorithms for moving and copying rectangles of bits between main and display memory on a {bit-mapped} device, or between two areas of either main or display memory (the requirement to do the {Right Thing} in the case of overlapping source and destination rectangles is what makes BitBlt tricky). 2. {blit}, {BLT}. bit bucket 1. (Or "{write-only memory}", "WOM") The universal data sink (originally, the mythical receptacle used to catch bits when they fall off the end of a {register} during a {shift} instruction). Discarded, lost, or destroyed data is said to have "gone to the bit bucket". On {Unix}, often used for {/dev/null}. Sometimes amplified as "the Great Bit Bucket in the Sky". 2. The place where all lost mail and news messages eventually go. The selection is performed according to {Finagle's Law}; important mail is much more likely to end up in the bit bucket than junk mail, which has an almost 100% probability of getting delivered. Routing to the bit bucket is automatically performed by mail-transfer agents, news systems, and the lower layers of the network. 3. The ideal location for all unwanted mail responses: "Flames about this article to the bit bucket." Such a request is guaranteed to overflow one's mailbox with flames. 4. Excuse for all mail that has not been sent. "I mailed you those figures last week; they must have landed in the bit bucket." Compare {black hole}. This term is used purely in jest. It is based on the fanciful notion that bits are objects that are not destroyed but only misplaced. This appears to have been a mutation of an earlier term "bit box", about which the same legend was current; old-time hackers also report that trainees used to be told that when the CPU stored bits into memory it was actually pulling them "out of the bit box". Another variant of this legend has it that, as a consequence of the "parity preservation law", the number of 1 bits that go to the bit bucket must equal the number of 0 bits. Any imbalance results in bits filling up the bit bucket. A qualified computer technician can empty a full bit bucket as part of scheduled maintenance. In contrast, a "{chad box}" is a real container used to catch {chad}. This may be related to the origin of the term "bit bucket" [Comments ?]. (1996-11-20) bit decay {bit rot} bit diddling {bit bashing} bite It's spelled "{byte}" to avoid confusion with "{bit}". (1996-12-13) bitmap A data file or structure which corresponds {bit} for bit with an {image} displayed on a screen, probably in the same format as it would be stored in the display's {video memory} or maybe as a {device independent bitmap}. A bitmap is characterised by the width and height of the image in {pixels} and the number of bits per pixel which determines the number of shades of grey or colours it can represent. A bitmap representing a coloured image (a "{pixmap}") will usually have pixels with between one and eight bits for each of the red, green, and blue components, though other colour encodings are also used. The green component sometimes has more bits that the other two to cater for the human eye's greater discrimination in this component. See also {vector graphics}, {image formats}. (1996-09-21) bitmap display A computer output device where each {pixel} displayed on the {monitor} screen corresponds directly to one or more {bits} in the computer's {video memory}. Such a display can be updated extremely rapidly since changing a pixel involves only a single processor write to memory compared with a {terminal} or {VDU} connected via a serial line where the speed of the serial line limits the speed at which the display can be changed. Most modern {personal computers} and {workstations} have bitmap displays, allowing the efficient use of {graphical user interfaces}, interactive graphics and a choice of on-screen {fonts}. Some more expensive systems still delegate graphics operations to dedicated hardware such as {graphic accelerators}. The bitmap display might be traced back to the earliest days of computing when the Manchester University Mark I(?) computer, developed by F.C. Williams and T. Kilburn shortly after the Second World War. This used a {storage tube} as its {working memory}. Phosphor dots were used to store single bits of data which could be read by the user and interpreted as binary numbers. [Is this history correct? Was it ever used to display "graphics"? What was the resolution?] (1995-02-16) bitmap font A {font} where each character is stored as an {array} of {pixel}s (a {bitmap}). Such fonts are not easily scalable, in contrast to {vectored font}s (like those used in {PostScript}). [Examples?] (1995-02-16) bitmapped display {bitmap display} bit mask A pattern of {binary} values which is combined with some value using {bitwise} AND with the result that bits in the value in positions where the mask is zero are also set to zero. For example, if, in {C}, we want to test if bits 0 or 2 of x are set, we can write int mask = 5; /* binary 101 */ if (x & mask) ... A bit mask might also be used to set certain bits using bitwise OR, or to invert them using bitwise {exclusive OR}. (1995-05-12) BITNET /bit'net/ (Because It's Time NETwork) An academic and research computer network connecting approximately 2500 computers. BITNET provides interactive, {electronic mail} and file transfer services, using a {store and forward} {protocol}, based on {IBM} {Network Job Entry} protocols. Bitnet-II encapsulates the Bitnet protocol within {IP} {packet}s and depends on the {Internet} to route them. BITNET traffic and Internet traffic are exchanged via several {gateway} hosts. BITNET is now operated by {CREN}. BITNET is everybody's least favourite piece of the network. The BITNET hosts are a collection of {IBM} {dinosaur}s and {VAXen} (the latter with lobotomised communications hardware) that communicate using 80-character {EBCDIC} card images (see {eighty-column mind}); thus, they tend to mangle the {header}s and text of third-party traffic from the rest of the {ASCII}/{RFC 822} world with annoying regularity. BITNET is also notorious as the apparent home of {BIFF}. (1994-11-29) bitonal image An {image} consisting only of a foreground colour and a background colour. Compare {monochrome}. (1998-03-14) bit-paired keyboard (Obsolete, or "bit-shift keyboard") A non-standard keyboard layout that seems to have originated with the {Teletype} {ASR-33} and remained common for several years on early computer equipment. The ASR-33 was a mechanical device (see {EOU}), so the only way to generate the character codes from keystrokes was by some physical linkage. The design of the ASR-33 assigned each character key a basic pattern that could be modified by flipping bits if the SHIFT or the CTRL key was pressed. In order to avoid making the thing more of a Rube Goldberg {kluge} than it already was, the design had to group characters that shared the same basic bit pattern on one key. Looking at the {ASCII} chart, we find: high low bits bits 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 010 ! " # $ % & ' ( ) 011 0 1 2 3 4 5 6 7 8 9 This is why the characters !"#$%&'() appear where they do on a Teletype (thankfully, they didn't use shift-0 for space). This was *not* the weirdest variant of the {QWERTY} layout widely seen, by the way; that prize should probably go to one of several (differing) arrangements on {IBM}'s even clunkier 026 and 029 card punches. When electronic {terminals} became popular, in the early 1970s, there was no agreement in the industry over how the keyboards should be laid out. Some vendors opted to emulate the Teletype keyboard, while others used the flexibility of electronic circuitry to make their product look like an office typewriter. These alternatives became known as "bit-paired" and "typewriter-paired" keyboards. To a hacker, the bit-paired keyboard seemed far more logical - and because most hackers in those days had never learned to touch-type, there was little pressure from the pioneering users to adapt keyboards to the typewriter standard. The doom of the bit-paired keyboard was the large-scale introduction of the computer terminal into the normal office environment, where out-and-out technophobes were expected to use the equipment. The "typewriter-paired" standard became universal, "bit-paired" hardware was quickly junked or relegated to dusty corners, and both terms passed into disuse. (1995-02-20) bit pattern 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 (Or "bitplane") The memory in a graphic display device which holds a complete one-bit-per-{pixel} image. Several bit planes may be used in conjunction to give more bits per pixel or to overlay several images or mask one with another. "Bit plane" may be used as a synonym for "{bitmap}", though the latter suggests the data itself rather than the memory and also suggests a graphics file format. (1997-03-16) bit rot A hypothetical disease the existence of which has been deduced from the observation that unused programs or features will often stop working after sufficient time has passed, even if "nothing has changed". The theory explains that bits decay as if they were radioactive. As time passes, the contents of a file or the code in a program will become increasingly garbled. People with a physics background tend to prefer the variant "bit decay" for the analogy with particle decay. There actually are physical processes that produce such effects (alpha particles generated by trace radionuclides in ceramic chip packages, for example, can change the contents of a computer memory unpredictably, and various kinds of subtle media failures can corrupt files in mass storage), but they are quite rare (and computers are built with {error detection} circuitry to compensate for them). The notion long favoured among hackers that {cosmic rays} are among the causes of such events turns out to be a myth. Bit rot is the notional cause of {software rot}. See also {computron}, {quantum bogodynamics}. (1998-03-15) bit slice A technique for constructing a {processor} from modules, each of which processes one {bit-field} or "slice" of an {operand}. Bit slice processors usually consist of an {ALU} of 1, 2, 4 or 8 bits and control lines (including {carry} or {overflow} signals usually internal to the {CPU}). For example, two 4-bit ALUs could be arranged side by side, with control lines between them, to form an 8-bit ALU. A {sequencer} executes a program to provide data and control signals. The {AMD Am2901} is an example. (1994-11-15) bits per inch (BPI) A measure of the recording density of a {magnetic tape} or {disk}. (1995-04-13) bits per pixel (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 (bps) The rate at which data is sent over some communication line. For example, a {modem}'s data rate is usually measured in {kilobits} per second. In 1996, the maximum modem speed for use on public telephone lines is 33.6 kbps, but this is set to rise to 56 kbps next year. (1996-12-08) bit string 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 A {protocol} which guarantees the receiver of {synchronous} data can recover the sender's clock. When the data stream sent contains a large number of adjacent bits which cause no transition of the signal, the receiver cannot adjust its clock to maintain proper synchronised reception. To eliminate the possibility of such a pathological case, when a preset number of transitionless bits have been transmitted, a bit which does cause a transition is "stuffed" (transmitted) by the sender. The receiver follows the same protocol and removes the stuffed bit after the specified number of transitionless bits, but can use the stuffed bit to recover the sender's clock. The advantage of bit stuffing is that only a bit (not a {byte}) is inserted in the data stream, and that only when the content of the data stream fails to provide a timing signal to the receiver. Thus very nearly 100% of the bits transported are useful data. In contrast, {asynchronous} transmission of data "throws away" a start bit and one or more stop bits for each data byte sent. (1996-04-23) bit twiddling 1. (pejorative) An exercise in tuning (see {tune}) in which incredible amounts of time and effort go to produce little noticeable improvement, often with the result that the code becomes incomprehensible. 2. Aimless small modification to a program, especially for some pointless goal. 3. {bit bashing}, especially used for the act of frobbing the device control register of a peripheral in an attempt to get it back to a known state. bitty box /bit'ee boks/ A computer sufficiently small, primitive, or incapable as to cause a hacker acute claustrophobia at the thought of developing software on or for it. The term is especially used of small, obsolescent, {single-tasking}-only {personal computer}s such as the {Atari 800}, {Osborne}, {Sinclair}, {VIC-20}, {TRS-80} or {IBM PC} but the term is a general pejorative opposite of "real computer" (see {Get a real computer!}). See also {mess-dos}, {toaster}, {toy}. (1994-11-29) bitwise A bitwise operator treats its operands as a {vector} of {bit}s rather than a single number. {Boolean} bitwise operators combine bit N of each operand using a {Boolean} function ({NOT}, {AND}, {OR}, {XOR}) to produce bit N of the result. For example, a bitwise AND operator ("&" in {C}) would evaluate 13 & 9 as (binary) 1101 & 1001 = 1001 = 9, whereas, the logical AND, ({C} "&&") would evaluate 13 && 9 as TRUE && TRUE = TRUE = 1. In some languages, e.g. {Acorn}'s {BASIC V}, the same operators are used for both bitwise and logical operations. This usually works except when applying NOT to a value x which is neither 0 (false) nor -1 (true), in which case both x and (NOT x) will be non-zero and thus treated as TRUE. Other operations at the bit level, which are not normally described as "bitwise" include shift and rotate. (1995-05-12) bitwise complement The bitwise complement of a {bit field} is a bit field of the same length but with each zero changed to a one and vice versa. This is the same as the {ones complement} of a binary integer. (1994-11-14) bixie /bik'see/ Variant {emoticon}s used on {Byte Information eXchange}. The {smiley} bixie is <@_@>, apparently intending to represent two cartoon eyes and a mouth. A few others have been reported. (1994-11-29) bj The {country code} for Benin. (1999-01-27) Bjarne Stroustrup The father of {C++} and author of the C++ {bible}. E-mail: . ["The C++ Programming Language", Bjarne Stroustrup, Addison-Wesley, 1986]. (1995-02-14) BJC4000 A colour {bubble jet} printer from {Canon}. Released in September 1994. It features 720 x 360 dots per inch in black and white mode and 360 x 360 in colour. It has two cartridges: one for black and one for the three primary colours so it prints true black when printing in colour. (1994-11-29) black art A collection of arcane, unpublished, and (by implication) mostly ad-hoc techniques developed for a particular application or systems area (compare {black magic}). VLSI design and compiler code optimisation were (in their beginnings) considered classic examples of black art; as theory developed they became {deep magic}, and once standard textbooks had been written, became merely {heavy wizardry}. The huge proliferation of formal and informal channels for spreading around new computer-related technologies during the last twenty years has made both the term "black art" and what it describes less common than formerly. See also {voodoo programming}. black box An abstraction of a device or system in which only its extenally visible behaviour is considered and not its implementation or "inner workings". See also {functional testing}. (1997-07-03) black-box testing {functional testing} Black Data Processing Associates (BDPA) A non-profit professional association, founded in 1975 to promote positive influence in the {information technology} (IT) industry and how it affects African Americans. The BDPA facilitates African American professional participation in local and national activities keeping up with developing IT trends. BDPA offers a forum for exchanging information and ideas about the computer industry. It provides numerous networking opportunities through monthly program meetings, seminars, and workshops and the annual national conference. Membership is open to anyone interested in IT. The Foundation provides scholarships to students who compete in an annual {Visual Basic} competition. {Home (http://www.bdpa.org/conf96)} E-mail: . Telephone: Ms. Pat Drumming, +1 (800) 727-BDPA. (1996-04-07) black hole 1. An expression which depends on its own value or a technique to detect such expressions. In graph reduction, when the reduction of an expression is begun, the root of the expression can be overwritten with a black hole. If the expression depends on its own value, e.g. x = x + 1 then it will try to evaluate the black hole which will usually print an error message and abort the program. A secondary effect is that, once the root of the expression has been black-holed, parts of the expression which are no longer required may be freed for garbage collection. Without black holes the usual result of attempting to evaluate an expression which depends on itself would be a stack overflow. If the expression is evaluated successfully then the black hole will be updated with the value. Expressions such as ones = 1 : ones are not black holes because the list constructor, : is lazy so the reference to ones is not evaluated when evaluating ones to WHNF. 2. Where an {electronic mail} message or {news} aritcle has gone if it disappears mysteriously between its origin and destination sites without returning a {bounce message}. Compare {bit bucket}. black magic A technique that works, though nobody really understands why. More obscure than {voodoo programming}, which may be done by cookbook. Compare also {black art}, {deep magic}, and {magic number} (sense 2). blargh /blarg/ [MIT] The opposite of {ping}. An exclamation indicating that one has absorbed or is emitting a quantum of unhappiness. Less common than {ping}. blast 1. {BLT}, used especially for large data sends over a network or comm line. Opposite of {snarf}. Usage: uncommon. The variant "blat" has been reported. 2. [HP/Apollo] Synonymous with {nuke}. Sometimes the message "Unable to kill all processes. Blast them (y/n)?" would appear in the command window upon logout. blat 1. {blast}. 2. See {thud}. BLAZE A {single assignment} language for {parallel processing}. ["The BLAZE Language: A Parallel Language for Scientific Programming", P. Mehrotra et al, J Parallel Comp 5(3):339-361 (Nov 1987)]. BLAZE 2 An {object-oriented} successor to {BLAZE}. ["Concurrent Object Access in BLAZE 2", P. Mehrotra et al, SIGPLAN Notices 24(4):40-42 (Apr 1989)]. bleam To transmit or send data. "Bleam that binary to me in an e-mail". [Origin? Used where?] (1997-05-14) bleeper {pager} bletcherous /blech'*-r*s/ Disgusting in design or function; aesthetically unappealing. This word is seldom used of people. "This keyboard is bletcherous!" (Perhaps the keys don't work very well, or are misplaced.) The term {bletcherous} applies to the esthetics of the thing so described; similarly for cretinous. By contrast, something that is "losing" or "bagbiting" may be failing to meet objective criteria. Bletchley Park 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 (BCC) An {electronic mail} {header} which lists addresses to which a message should be sent, but which will not be seen by the recipients. Bcc is defined in {RFC 822} and supported by most e-mail systems. A normal, non-blind "CC" header would be visible to all recipients, thus allowing them to reply to each other as well as to the sender. According to RFC 822, the addresses listed in a BCC header are not included in the copies of the message sent to the recipients. RFC 822 says BCC addresses may appear in the copy sent to "BCC" recipients themselves (though this would be unusual). (1998-03-14) B-LINE An early {CAD} language. ["B-LINE, Bell Line Drawing Language", A.J. Frank, Proc Fall JCC 33 1968]. (1994-11-17) blinkenlights /blink'*n-li:tz/ Front-panel diagnostic lights on a computer, especially a {dinosaur}. Derives from the last word of the famous blackletter-Gothic sign in mangled pseudo-German that once graced about half the computer rooms in the English-speaking world. One version ran in its entirety as follows: ACHTUNG! ALLES LOOKENSPEEPERS! Das computermachine ist nicht fuer gefingerpoken und mittengrabben. Ist easy schnappen der springenwerk, blowenfusen und poppencorken mit spitzensparken. Ist nicht fuer gewerken bei das dumpkopfen. Das rubbernecken sichtseeren keepen das cotten-pickenen hans in das pockets muss; relaxen und watchen das blinkenlichten. This silliness dates back at least as far as 1959 at Stanford University and had already gone international by the early 1960s, when it was reported at London University's ATLAS computing site. There are several variants of it in circulation, some of which actually do end with the word "blinkenlights". In an amusing example of turnabout-is-fair-play, German hackers have developed their own versions of the blinkenlights poster in fractured English, one of which is reproduced here: ATTENTION This room is fullfilled mit special electronische equippment. Fingergrabbing and pressing the cnoeppkes from the computers is allowed for die experts only! So all the "lefthanders" stay away and do not disturben the brainstorming von here working intelligencies. Otherwise you will be out thrown and kicked anderswhere! Also: please keep still and only watchen astaunished the blinkenlights. See also {geef}. BLISS {Basic Language for Implementation of System Software} BLISS-10 A version of {BLISS} from {CMU} for the {PDP-10}. BLISS-11 A {cross-compiler} for the {PDP-11} running on a {PDP-10}. Written at {CMU} to support the {C.mmp}/{Hydra} project. BLISS-32 A version of {BLISS} from DEC for {VAX}/{VMS}. blit /blit/ 1. To copy a large array of bits from one part of a computer's memory to another part, particularly when the memory is being used to determine what is shown on a display screen. "The storage allocator picks through the table and copies the good parts up into high memory, and then blits it all back down again." See {bitblt}, {BLT}, {dd}, {cat}, {blast}, {snarf}. More generally, to perform some operation (such as toggling) on a large array of bits while moving them. 2. Sometimes all-capitalised as "BLIT": an early experimental {bit-mapped} {terminal} designed by Rob Pike at {Bell Labs}, later commercialised as the {AT&T 5620}. (The folk etymology from "Bell Labs Intelligent Terminal" is incorrect. Its creators liked to claim that "Blit" stood for the Bacon, Lettuce, and Interactive Tomato). (1994-11-16) blitter /blit'r/ (Or "{raster blaster}"). A special-purpose {integrated circuit} or hardware system built to perform {blit} (or "{bit bang}") operations, especially used for fast implementation of {bit-mapped} graphics. The {Commodore} {Amiga} and a few other {microcomputers} have these, but in 1991 the trend is away from them (however, see {cycle of reincarnation}). (1996-04-30) blivet /bliv'*t/ [allegedly from a World War II military term meaning "ten pounds of manure in a five-pound bag"] 1. An intractable problem. 2. A crucial piece of hardware that can't be fixed or replaced if it breaks. 3. A tool that has been hacked over by so many incompetent programmers that it has become an unmaintainable tissue of hacks. 4. An out-of-control but unkillable development effort. 5. An embarrassing bug that pops up during a customer demo. 6. In the subjargon of computer security specialists, a denial-of-service attack performed by hogging limited resources that have no access controls (for example, shared spool space on a multi-user system). This term has other meanings in other technical cultures; among experimental physicists and hardware engineers of various kinds it seems to mean any random object of unknown purpose (similar to hackish use of {frob}). It has also been used to describe an amusing trick-the-eye drawing resembling a three-pronged fork that appears to depict a three-dimensional object until one realises that the parts fit together in an impossible way. bloat {software bloat} bloatware {Software} suffering from {software bloat}. (1995-10-14) BLOB 1. {binary large object}. 2. {blitter object}. block 1. A unit of data or memory, often, but not exclusively, on a disk. Compare {record}, {sector}. 2. To delay or sit idle while waiting for something. Compare {busy-wait}. blocked records Several {record}s written as a contiguous block on {magnetic tape} so that they may be accessed in a single I/O operation. Blocking increases the amount of data that may be stored on a tape because there are fewer {inter-block gap}s. It requires that the tape drive or processor have a sufficiently large buffer to store the whole block. (1995-04-13) Block Started by Symbol (BSS) The uninitialised data segment produced by Unix linkers. The other segments are the "text" segment which contains the program code and the "data" segment contains initialised data. Objects in the bss segment have only a name and a size but no value. block transfer computations [UK television series "Dr. Who"] Computations so fiendishly subtle and complex that they could not be performed by machines. Used to refer to any task that should be expressible as an {algorithm} in theory, but isn't. Bloggs Family, the An imaginary family consisting of Fred and Mary Bloggs and their children. Used as a standard example in knowledge representation to show the difference between extensional and intensional objects. For example, every occurrence of "Fred Bloggs" is the same unique person, whereas occurrences of "person" may refer to different people. Members of the Bloggs family have been known to pop up in bizarre places such as the DEC Telephone Directory. Compare {Mbogo, Dr. Fred}. Blosim Block-Diagram Simulator. A block-diagram simulator. "A Tool for Structured Functional Simulation", D.G. Messerschmitt, IEEE J on Selected Areas in Comm, SAC-2(1):137-147, 1984. blow an EPROM /bloh *n ee'prom/ (Or "blast", "burn") To program a {read-only memory}, e.g. for use with an {embedded system}. This term arose because the programming process for the {Programmable Read-Only Memory} (PROM) that preceded present-day {Erasable Programmable Read-Only Memory} (EPROM) involved intentionally blowing tiny electrical fuses on the chip. The usage lives on (it's too vivid and expressive to discard) even though the write process on EPROMs is nondestructive. (1994-11-29) blow away To remove (files and directories) from permanent storage, generally by accident. "He reformatted the wrong partition and blew away last night's netnews". Compare: {nuke}. (1996-01-05) blowing your buffer Losing your train of thought. A reference to {buffer overflow}. (1999-01-15) blow out (Probably from mining and tunnelling jargon) Of {software}, to fail spectacularly; almost as serious as {crash and burn}. See {blow past}, {blow up}, {die horribly}. (1994-11-29) blow past To {blow out} despite a safeguard. "The server blew past the 5K reserve buffer." (1994-11-29) blow up 1. Of a scientific computation: to become unstable. It suggests that the computation is diverging so rapidly that it will soon overflow or at least go {nonlinear}. 2. {blow out}. BLOX A {visual language}. BLT 1. /B-L-T/, /bl*t/ or (rarely) /belt/ Synonym for {blit}. This is the original form of {blit} and the ancestor of {bitblt}. It refers to any large bit-field copy or move operation (one resource-intensive memory-shuffling operation done on pre-paged versions of {ITS}, {WAITS} and {TOPS-10} was sardonically referred to as "The Big BLT"). The jargon usage has outlasted the {PDP-10} BLock Transfer instruction from which {BLT} derives; nowadays, the {assembly language} {mnemonic} {BLT} almost always means "Branch if Less Than zero". 2. bacon, lettuce and tomato (sandwich). Blue A language proposed by Softech to meet the {DoD} {Ironman} requirements which led to {Ada}. ["On the BLUE Language Submitted to the DoD", E.W. Dijkstra, SIGPLAN Notices 13(10):10-15 (Oct 1978)]. Blue Book 1. Informal name for one of the four standard references on the page-layout and graphics-control language {PostScript}. The other three official guides are known as the {Green Book}, the {Red Book}, and the {White Book}. ["PostScript Language Tutorial and Cookbook", Adobe Systems, Addison-Wesley 1985, (ISBN 0-201-10179-3)]. 2. Informal name for one of the three standard references on Smalltalk. This book also has green and red siblings. ["Smalltalk-80: The Language and its Implementation", David Robson, Addison-Wesley 1983, (ISBN 0-201-11371-63)]. 3. Any of the 1988 standards issued by the {ITU-T}'s ninth plenary assembly. These include, among other things, the {X.400} {electronic mail} specification and the Group 1 through 4 fax standards. See also {book titles}. (1995-10-12) Blue Box The complete implementation of the {Mac OS} run-time environment on the more modern {Rhapsody} operating system. {Blue Box} is not an {emulation} layer; at any given time it will be based on the same source code and ROM image as the current version of Mac OS and will thus incorporate future Mac OS improvements. (1997-10-15) Blue Glue [IBM] IBM's SNA (Systems Network Architecture), an incredibly {losing} and bletcherous communications protocol widely favoured at commercial shops that don't know any better. The official IBM definition is "that which binds blue boxes together." See {fear and loathing}. It may not be irrelevant that {Blue Glue} is the trade name of a 3M product that is commonly used to hold down the carpet squares to the removable panel floors common in {dinosaur pen}s. A correspondent at U. Minn. reports that the CS department there has about 80 bottles of the stuff hanging about, so they often refer to any messy work to be done as "using the blue glue". Blue Screen of Death (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 (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 A vendor of {Microsoft} {Windows} application development tools such as {RoboHELP} and {WinMaker Pro}. Address: 7777 Fay Avenue, Suite 201, La Jolla, CA 92037, USA. Telephone: +1-800-793-0364, +1 (619) 459 6365. Fax: +1 (619) 459 6366. (1997-01-19) blue wire (IBM) Patch wires added to circuit boards at the factory to correct design or fabrication problems. These may be necessary if there hasn't been time to design and qualify another board version. Compare {purple wire}, {red wire}, {yellow wire}. (1994-11-29) blurgle /bler'gl/ [Great Britain] Spoken {metasyntactic variable}, to indicate some text that is obvious from context, or which is already known. If several words are to be replaced, blurgle may well be doubled or trebled. "To look for something in several files use "{grep} string blurgle blurgle"." In each case, "blurgle blurgle" would be understood to be replaced by the file you wished to search. Compare {mumble}. bm The {country code} for Bermuda. (1999-01-27) BMAN {Broadband Metropolitan Area Network} BMASF Basic Module Algebra Specification Language? "Design of a Specification Language by Abstract Syntax Engineering", J.C.M. Baeten et al, in LNCS 490, pp.363-394. BMDP BioMeDical Package. A statistical language developed at {UCB} in 1961, first implemented in {FORTRAN} for the {IBM 7090}. (1995-03-13) B-Method A system for rigorous or formal development of software using the notion of {Abstract Machine}s to specify and design software systems. The B-Method is supported by the {B-Toolkit}. Abstract Machines are specified using the Abstract Machine Notation (AMN) which is in turn based on the mathematical theory of {Generalised Substitution}s. (1995-03-13) BMF {Bird-Meertens Formalism} BMP {Basic Multilingual Plane} bmp {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 The Austrian, German and Swiss(?) Ministries of Science. [Expansion?] (1998-12-09) bn The {country code} for Brunei Darussalam. (1999-01-27) BNC A connector for {coaxial cable} such as that used for some video connections and {RG58} "{cheapernet}" connections. A BNC connector has a bayonet-type shell with two small knobs on the female connector which lock into spiral slots in the male connector when it is twisted on. Different sources expand BNC as Bayonet Navy Connector, British Naval Connector, Bayonet Neill Concelman, or Bayonet Nut Connection. (1995-09-18) BNF {Backus-Naur Form}. Originally Backus Normal Form. BNR Pascal ["Remote Rendezvous", N. Gammage et al, Soft Prac & Exp 17(10):741-755 (Oct 1987)]. (1994-12-21) BNR Prolog A {constraint logic} language. [Details?] (1994-12-21) bo The {country code} for Bolivia. (1999-01-27) boa [IBM] Any one of the fat cables that lurk under the floor in a {dinosaur pen}. Possibly so called because they display a ferocious life of their own when you try to lay them straight and flat after they have been coiled for some time. It is rumored within IBM that channel cables for the 370 are limited to 200 feet because beyond that length the boas get dangerous --- and it is worth noting that one of the major cable makers uses the trademark "Anaconda". board 1. In-context synonym for {bboard}; sometimes used even for {Usenet} newsgroups. 2. An electronic circuit board. boat anchor 1. Like {doorstop} but more severe; implies that the offending hardware is irreversibly dead or useless. "That was a working motherboard once. One lightning strike later, instant boat anchor!" 2. A person who just takes up space. 3. Obsolete but still working hardware, especially when used of an old S100-bus hobbyist system; originally a term of annoyance, but became more and more affectionate as the hardware became more and more obsolete. Bob David Betz. A tiny object-oriented language. {(ftp://ftp.mv.com/pub/ddj/packages/bob15.arc)} [Dr Dobbs J, Sep 1991, p.26]. Bobo the Webmonkey 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 . (1998-04-04) BOCS Berard Object and Class Specifier, an Object-oriented CASE tool from Berard Software Engineering. Boehm B. Proposed the COCOMO technique for evaluating the cost of a software project. BOEING Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959). BOF /B-O-F/ or /bof/ 1. {Birds Of a Feather}. 2. Boring Old Fart. BOFH {Bastard Operator From Hell} bogometer /boh-gom'-*t-er/ A notional instrument for measuring {bogosity}. Compare the "wankometer" described in the {wank} entry; see also {bogus}. (1999-06-10) BogoMips (From "bogus", "{MIPS}") The timing unit of the {Linux} {kernel}. A BogoMips is an unscientific measurement of {processor} speed made by the {Linux} {kernel} when it {boots}, to calibrate an internal {busy-loop}. {BogoMips MiniHowto (http://metalab.unc.edu/LDP/HOWTO/mini/BogoMips.html)}. (1999-05-06) bogon /boh'gon/ [by analogy with proton/electron/neutron, but doubtless reinforced after 1980 by the similarity to Douglas Adams's "Vogons"] 1. The elementary particle of bogosity (see {quantum bogodynamics}). For instance, "the Ethernet is emitting bogons again" means that it is broken or acting in an erratic or bogus fashion. 2. A query {packet} sent from a {TCP/IP} {domain resolver} to a root server, having the reply bit set instead of the query bit. 3. Any bogus or incorrectly formed packet sent on a network. 4. A person who is bogus or who says bogus things. This was historically the original usage, but has been overtaken by its derivative senses. See also {bogosity}, {bogus}; compare {psyton}, {fat electrons}, {magic smoke}. The bogon has become the type case for a whole bestiary of nonce particle names, including the "clutron" or "cluon" (indivisible particle of cluefulness, obviously the antiparticle of the bogon) and the futon (elementary particle of {randomness}, or sometimes of lameness). These are not so much live usages in themselves as examples of a live meta-usage: that is, it has become a standard joke or linguistic maneuver to "explain" otherwise mysterious circumstances by inventing nonce particle names. And these imply nonce particle theories, with all their dignity or lack thereof (we might note parenthetically that this is a generalisation from "(bogus particle) theories" to "bogus (particle theories)"!). Perhaps such particles are the modern-day equivalents of trolls and wood-nymphs as standard starting-points around which to construct explanatory myths. Of course, playing on an existing word (as in the "futon") yields additional flavour. bogon filter /boh'gon fil'tr/ Any device, software or hardware, that limits or suppresses the flow and/or emission of bogons. "Engineering hacked a bogon filter between the {Cray} and the {VAXen}, and now we're getting fewer dropped packets." See also {bogosity}, {bogus}. bogon flux /boh'gon fluhks/ A measure of a supposed field of {bogosity} emitted by a speaker, measured by a {bogometer}; as a speaker starts to wander into increasing bogosity a listener might say "Warning, warning, bogon flux is rising". See {quantum bogodynamics}. bogosity /boh-go's*-tee/ 1. The degree to which something is {bogus}. At CMU, bogosity is measured with a {bogometer}; in a seminar, when a speaker says something bogus, a listener might raise his hand and say "My bogometer just triggered". More extremely, "You just pinned my bogometer" means you just said or did something so outrageously bogus that it is off the scale, pinning the bogometer needle at the highest possible reading (one might also say "You just redlined my bogometer"). The agreed-upon unit of bogosity is the {microLenat}. 2. The potential field generated by a {bogon flux}; see {quantum bogodynamics}. See also {bogon flux}, {bogon filter}, {bogus}. bogo-sort /boh"goh-sort"/ (variant "stupid-sort") The archetypical perversely awful algorithm (as opposed to {bubble sort}, which is merely the generic *bad* algorithm). Bogo-sort is equivalent to repeatedly throwing a deck of cards in the air, picking them up at random, and then testing whether they are in order. It serves as a sort of canonical example of awfulness. Looking at a program and seeing a dumb algorithm, one might say "Oh, I see, this program uses bogo-sort." Compare {bogus}, {brute force}, {Lasherism}. bogotify /boh-go't*-fi:/ To make or become bogus. A program that has been changed so many times as to become completely disorganised has become bogotified. If you tighten a nut too hard and strip the threads on the bolt, the bolt has become bogotified and you had better not use it any more. This coinage led to the notional "autobogotiphobia" defined as "the fear of becoming bogotified"; but is not clear that the latter has ever been "live" jargon rather than a self-conscious joke in jargon about jargon. See also {bogosity}, {bogus}. bogue out /bohg owt/ To become bogus, suddenly and unexpectedly. "His talk was relatively sane until somebody asked him a trick question; then he bogued out and did nothing but {flame} afterwards." See also {bogosity}, {bogus}. bogus 1. Non-functional. "Your patches are bogus." 2. Useless. "OPCON is a bogus program." 3. False. "Your arguments are bogus." 4. Incorrect. "That algorithm is bogus." 5. Unbelievable. "You claim to have solved the halting problem for Turing Machines? That's totally bogus." 6. Silly. "Stop writing those bogus sagas." Astrology is bogus. So is a bolt that is obviously about to break. So is someone who makes blatantly false claims to have solved a scientific problem. (This word seems to have some, but not all, of the connotations of {random} - mostly the negative ones.) It is claimed that "bogus" was originally used in the hackish sense at {Princeton} in the late 1960s. It was spread to {CMU} and {Yale} by Michael Shamos, a migratory Princeton alumnus. A glossary of bogus words was compiled at Yale when the word was first popularised (see {autobogotiphobia} under {bogotify}). The word spread into hackerdom from CMU and {MIT}. By the early 1980s it was also current in something like the hackish sense in West Coast teen slang, and it had gone mainstream by 1985. A correspondent from {Cambridge}, UK reports, by contrast, that these uses of "bogus" grate on British nerves; in Britain the word means, rather specifically, "counterfeit", as in "a bogus 10-pound note". BOHICA /bo-hee-ka/ {Bend Over, Here It Comes Again}. Bohr bug /bohr buhg/ (From Quantum physics) A repeatable {bug}; one that manifests reliably under a possibly unknown but well-defined set of conditions. Compare {heisenbug}. See also {mandelbug}, {schroedinbug}. (1995-02-28) boink /boynk/ [{Usenet}: variously ascribed to the TV series "Cheers" "Moonlighting", and "Soap"] 1. To have sex with; compare {bounce}. (This is mainstream slang.) In Commonwealth hackish the variant "bonk" is more common. 2. After the original Peter Korn "Boinkon" {Usenet} parties, used for almost any net social gathering, e.g. Miniboink, a small boink held by Nancy Gillett in 1988; Minniboink, a Boinkcon in Minnesota in 1989; Humpdayboinks, Wednesday get-togethers held in the San Francisco Bay Area. Compare {@-party}. 3. Variant of "bonk"; see {bonk/oif}. BOLERO {Software AG}'s {object-oriented} development environment and {application server} for Electronic Business applications. (1999-03-06) Bolt, Beranek and Newman, Inc. (BBN) A company in Cambridge, Massachusetts, USA. They were awarded the original contract to build the {ARPANET} and have been extensively involved in {Internet} development. They are responsible for managing {NNSC}, {CSNET}, and {NEARnet}. (1994-10-07) [Butterfly?] bomb 1. General synonym for {crash} except that it is not used as a noun. Especially used of software or {OS} failures. "Don't run Empire with less than 32K stack, it'll bomb". 2. {Atari ST} and {Macintosh} equivalents of a {Unix} "{panic}" or {Amiga} {guru}, in which {icon}s of little black-powder bombs or mushroom clouds are displayed, indicating that the system has died. On the {Macintosh}, this may be accompanied by a decimal (or occasionally {hexadecimal}) number indicating what went wrong, similar to the {Amiga} {guru meditation} number. {MS-DOS} computers tend to {lock up} in this situation. 3. A piece of code embedded in a program that remains dormant until it is triggered. Logic bombs are triggered by an event whereas time bombs are triggered either after a set amount of time has elapsed, or when a specific date is reached. (1996-12-08) bon (From "Bonnie", {Ken Thompson}'s wife) A language designed by {Ken Thompson} and later revised by him to produce {B}. [When? Features?] (1997-02-04) bondage-and-discipline language A language (such as {Pascal}, {Ada}, APL, or Prolog) that, though ostensibly general-purpose, is designed so as to enforce an author's theory of "right programming" even though said theory is demonstrably inadequate for systems hacking or even vanilla general-purpose programming. Often abbreviated "B&D"; thus, one may speak of things "having the B&D nature". See {Pascal}. Compare {languages of choice}. (1996-01-05) bonk/oif /bonk/, /oyf/ In the {MUD} community, it has become traditional to express pique or censure by "bonking" the offending person. Convention holds that one should acknowledge a bonk by saying "oif!" and there is a myth to the effect that failing to do so upsets the cosmic bonk/oif balance, causing much trouble in the universe. Some MUDs have implemented special commands for bonking and oifing. (1998-01-18) Booch {(http://www.itr.ch/tt/case/BoochReferenz/)} [What is it?] (1995-01-18) bookmark A user's reference to a document on the {World-Wide Web} or other hypermedia system, usually in the form of a {URL} and a title or comment string. Most World-Wide Web and {Gopher} {browsers} can save and load a file of bookmarks to allow you to quickly locate documents to which you want to refer again. (1997-06-09) Bookreader {DEC}'s {CD-ROM}-based on-line documentation browser. book titles There is a tradition in hackerdom of informally tagging important textbooks and standards documents with the dominant colour of their covers or with some other conspicuous feature of the cover. Many of these are described in {this dictionary} under their own entries. See {Aluminum Book}, {Blue Book}, {Cinderella Book}, {Devil Book}, {Dragon Book}, {Green Book}, {Orange Book}, {Pink-Shirt Book}, {Purple Book}, {Red Book}, {Silver Book}, {White Book}, {Wizard Book}, {Yellow Book}, {bible}, {rainbow series}. (1996-12-03) Bookviewer A hypertext documentation system from Oracle based on Oracle Toolkit. It allows the user to create private links and bookmarks, and to make multimedia annotations. bool {Boolean} Boolean 1. {Boolean algebra}. 2. (bool) The type of an expression with two possible values, "true" and "false". Also, a variable of Boolean type or a function with Boolean arguments or result. The most common Boolean functions are {AND}, {OR} and {NOT}. (1997-12-01) Boolean algebra (After the logician {George Boole}) 1. Commonly, and especially in computer science and digital electronics, this term is used to mean {two-valued logic}. 2. This is in stark contrast with the definition used by pure mathematicians who in the 1960s introduced "Boolean-valued {models}" into logic precisely because a "Boolean-valued model" is an interpretation of a {theory} that allows more than two possible truth values! Strangely, a Boolean algebra (in the mathematical sense) is not strictly an {algebra}, but is in fact a {lattice}. A Boolean algebra is sometimes defined as a "complemented {distributive lattice}". Boole's work which inspired the mathematical definition concerned {algebras} of {set}s, involving the operations of intersection, union and complement on sets. Such algebras obey the following identities where the operators ^, V, - and constants 1 and 0 can be thought of either as set intersection, union, complement, universal, empty; or as two-valued logic AND, OR, NOT, TRUE, FALSE; or any other conforming system. a ^ b = b ^ a a V b = b V a (commutative laws) (a ^ b) ^ c = a ^ (b ^ c) (a V b) V c = a V (b V c) (associative laws) a ^ (b V c) = (a ^ b) V (a ^ c) a V (b ^ c) = (a V b) ^ (a V c) (distributive laws) a ^ a = a a V a = a (idempotence laws) --a = a -(a ^ b) = (-a) V (-b) -(a V b) = (-a) ^ (-b) (de Morgan's laws) a ^ -a = 0 a V -a = 1 a ^ 1 = a a V 0 = a a ^ 0 = 0 a V 1 = 1 -1 = 0 -0 = 1 There are several common alternative notations for the "-" or {logical complement} operator. If a and b are elements of a Boolean algebra, we define a <= b to mean that a ^ b = a, or equivalently a V b = b. Thus, for example, if ^, V and - denote set intersection, union and complement then <= is the inclusive subset relation. The relation <= is a {partial ordering}, though it is not necessarily a {linear ordering} since some Boolean algebras contain incomparable values. Note that these laws only refer explicitly to the two distinguished constants 1 and 0 (sometimes written as {LaTeX} \top and \bot), and in {two-valued logic} there are no others, but according to the more general mathematical definition, in some systems variables a, b and c may take on other values as well. (1997-02-27) Boolean logic A {logic} based on {Boolean algebra}. (1995-03-25) Boolean search (Or "Boolean query") A query using the {Boolean} operators, {AND}, {OR}, and {NOT}, and parentheses to construct a complex condition from simpler criteria. A typical example is searching for combinatons of keywords on a {World-Wide Web} {search engine}. Examples: car or automobile "New York" and not "New York state" The term is sometimes stretched to include searches using other operators, e.g. "near". Not to be confused with {binary search}. See also: {weighted search}. (1999-10-23) Boole, George {George Boole} Booster A {data-parallel} language. "The Booster Language", E. Paalvast, TR PL 89-ITI-B-18, Inst voor Toegepaste Informatica TNO, Delft, 1989. boot (from "{bootstrap}" or "to pull oneself up by one's bootstraps") To load and initialise the {operating system} on a computer. See {reboot}, {cold boot}, {warm boot}, {soft boot}, {hard boot}, {bootstrap}, {bootstrap loader}. (1995-11-27) boot block 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 The {magnetic disk} (usually a {hard disk}) from which an {operating system} {kernel} is loaded (or "bootstrapped"). This second phase in system start-up is performed by a simple bootstrap loader program held in {ROM}, possibly configured by data stored in some form of writable {non-volatile storage}. {MS-DOS} and {Microsoft Windows} can be configured (in the {BIOS}) to try to boot off either {floppy disk} or {hard disk}, in either order. By default they first check for the presence of a {floppy disk} in the drive at start-up and try to use that as a boot disk if present. If no disk is in the drive they then try to boot off the hard disk. Some {operating systems}, notably {SunOS} and {Solaris}, can be configured to boot from a network rather than from disk. Such a system can thus run as a {diskless workstation}. (1997-06-09) BOOTP The Bootstrap Protocol. A {protocol} described in {RFC}s 951 and 1084 and used for booting {diskless workstation}s. See also {Reverse Address Resolution Protocol}. (1995-02-16) bootstrap 1. (From "to pull oneself up by one's bootstraps") To load and initialise the {operating system} on a computer. Normally abbreviated to "{boot}". See {bootstrap loader}. 2. (From "to pull oneself up by one's bootstraps") to use a {compiler} to compile itself. The usual process is to write an {interpreter} for a language, L, in an existing language, M. The compiler is then written in L and the interpreter is used to run it. This produces an {executable} for compiling programs in L from the source of the compiler in L. This technique is often used to verify the correctness of a compiler. It was first used in the {LISP} community. See also {my favourite toy language}. (27 November 1995) bootstrap loader (from "{bootstrap}" or "to pull oneself up by one's bootstraps") A short {program} that was read in from {card}s or {paper tape}, or {toggle}d in from the {front panel} switches, which read in a more complex {program} to which it gave control. On early computers the bootstrap loader was always very short (great efforts were expended on making it short in order to minimise the labour and chance of error involved in toggling it in), but was just smart enough to read in a slightly more complex {program} (usually from a card or {paper tape} reader), to which it handed control; this {program} in turn was smart enough to read the {application} or {operating system} from a {magnetic tape} drive or {disk drive}. Thus, in successive steps, the {computer} "pulled itself up by its bootstraps" to a useful operating state. Nowadays the bootstrap is usually found in {ROM} or {EPROM}, and reads the first stage in from a fixed location on the {disk}, called the "{boot block}". When this {program} gains control, it is powerful enough to load the actual {OS} and hand control over to it. See {boot}. (27 November 1995) boot virus An {MS-DOS} {virus} that infects the {boot record} program on {hard disk}s and {floppy disk}s or the {master boot record} on hard disks. The virus gets loaded into memory before {MS-DOS} and takes control of the computer, infecting any floppy disks subsequently accessed. An infected {boot disk} may stop the computer starting up at all. (1995-02-16) Border Gateway Protocol (BGP) An {Exterior Gateway Protocol} defined in {RFC 1267} and {RFC 1268}. Its design is based on experience gained with {Exterior Gateway Protocol} (EGP), as defined in {STD} 18, {RFC 904} and EGP usage in the {NSFNet} {backbone}, as described in RFCs 1092 and 1093. (1994-11-29) borf To uncerimoniously disconnect someone from a system without prior warning. {BBS} {Sysops} routinely "borf" pest users by turning off the modem or by hitting the "auto-borf" key sequence. You can also be "borfed" by software dropping {carrier} due to a {bug}. The origin of the term is unknown but it has been in use since at least 1982. (1997-03-21) Borland International, Inc. {Inprise Corporation} BOS 1. {Basic Operating System}. 2. A data management system written at {DESY} and used in some high energy physics programs. 3. The {Basic Object System}. (1999-01-20) Bose-Chaudhuri-Hocquenghem Code (BHC Code) An {error detection and correction} technique based on {Cyclic Redundancy Code}, used in telecommunications applications. (1995-01-16) BOSS Bridgport Operating System Software. A derivative of the {ISO 1054} numerical machine control language for milling, etc. bot (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 The owner of a {bot}. (1997-04-07) bottom The least defined element in a given {domain}. Often used to represent a non-terminating computation. (In {LaTeX}, bottom is written as {\perp}, sometimes with the domain as a subscript). (1997-01-07) bottom feeder Synonym for {slopsucker}, derived from the fishermen's and naturalists' term for finny creatures who subsist on the primordial ooze. bottom-unique In {domain theory}, a function f is bottom-unique if f x = bottom <=> x = bottom A bottom-unique function is also {strict}. bottom-up implementation The opposite of {top-down design}. It is now received wisdom in most programming cultures that it is best to design from higher levels of abstraction down to lower, specifying sequences of action in increasing detail until you get to actual code. Hackers often find (especially in exploratory designs that cannot be closely specified in advance) that it works best to *build* things in the opposite order, by writing and testing a clean set of primitive operations and then knitting them together. (1996-05-10) bottom-up model A method for estimating the cost of a complete software project by combining estimates for each component. (1996-05-28) bottom-up testing An integration testing technique that tests the low-level components first using test drivers for those components that have not yet been developed to call the low-level components for test. Compare {bottom-up implementation}. (1996-05-10) botwar The epic struggle of {bots} vying for dominance. Botwars are generally (and quite inappropriately) carried out on {talk} systems, typically {IRC}, where botwar crossfire (such as {pingflood}ing) absorbs scarce server resources and obstructs human conversation. The wisdom of experience indicates that {Core Wars}, not {talk} systems, are the appropriate venue for aggressive bots and their {botmasters}. Compare {penis war}. (1997-04-08) bounce 1. (Perhaps by analogy to a bouncing check) An {electronic mail} message that is undeliverable and returns an error notification (a "{bounce message}") to the sender is said to "bounce". 2. To play volleyball. The now-demolished {D. C. Power Lab} building used by the {Stanford AI Lab} in the 1970s had a volleyball court on the front lawn. From 5 PM to 7 PM was the scheduled maintenance time for the computer, so every afternoon at 5 would come over the intercom the cry: "Now hear this: bounce, bounce!", followed by Brian McCune loudly bouncing a volleyball on the floor outside the offices of known volleyballers. 3. To engage in sexual intercourse; probably from the expression "bouncing the mattress", but influenced by Roo's psychosexually loaded "Try bouncing me, Tigger!" from the "Winnie-the-Pooh" books. Compare {boink}. 4. To casually reboot a system in order to clear up a transient problem. Reported primarily among {VMS} users. 5. (VM/CMS programmers) Automatic warm-start of a computer after an error. "I logged on this morning and found it had bounced 7 times during the night" 6. (IBM) To {power cycle} a peripheral in order to reset it. (1994-11-29) bounce message A notification message returned to the sender by a site unable to relay {e-mail} to the intended recipient or the next link in a {bang path}. Reasons might include a nonexistent or misspelled user name or a {down} relay site. Bounce messages can themselves fail, with occasionally ugly results; see {sorcerer's apprentice mode} and {software laser}. The terms "bounce mail" and "barfmail" are also common. (1994-11-29) boundary scan The use of {scan register}s to capture state from device input and output pins. {IEEE} Standard 1149.1-1990 describes the international standard implementation (sometimes called JTAG after the Joint Test Action Group which began the standardisation work). (1995-02-14) boundary value analysis 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 In {domain theory}, a subset S of a {cpo} X is bounded if there exists x in X such that for all s in S, s <= x. In other words, there is some element above all of S. If every bounded subset of X has a least upper bound then X is boundedly {complete}. ("<=" is written in {LaTeX} as {\subseteq}). (1995-02-03) boundedly complete In domain theory, a complete partial order is boundedly complete if every bounded subset has a least upper bound. Also called consistently complete. bound variable 1. A bound variable or {formal argument} in a function definition is replaced by the {actual argument} when the function is applied. In the {lambda abstraction} \ x . M x is the bound variable. However, x is a {free variable} of the term M when M is considered on its own. M is the {scope} of the binding of x. 2. In logic a bound variable is a quantified variable. See {quantifier}. bournebasic A {BASIC} {interpreter}. comp.sources.misc archives volume 1. Bourne shell (sh, Shellish). The original {command line interpreter} {shell} and script language for {Unix} written by S.R. Bourne of {Bell Laboratories} in 1978. sh has been superseded for interactive use by the {Berkeley} {C shell}, {csh} but still widely used for writing {shell script}s. There were even earlier shells, see {glob}. [Details?] {ash} is a Bourne Shell clone. ["Unix {Time-Sharing} System: The Unix Shell", S.R. Bourne, Bell Sys Tech J 57(6):1971-1990 (Jul 1978)]. boustrophedonic (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 1. A computer; especially in the construction "foo box" where foo is some functional qualifier, like "graphics", or the name of an {operating system} (thus, "{Unix} box", "{MS-DOS} box", etc.) "We preprocess the data on Unix boxes before handing it up to the {mainframe}." The plural "{boxen}" is sometimes seen. 2. Without qualification in an {IBM} {SNA} site, "box" refers specifically to an {IBM} {front-end processor}. (1994-11-29) boxed comments {Comments} that occupy several lines by themselves; so called because in {assembler} and {C} code they are often surrounded by a box in a style similar to this: /************************************************* * * This is a boxed comment in C style * *************************************************/ Common variants of this style omit the asterisks in column 2 or add a matching row of asterisks closing the right side of the box. The sparest variant omits all but the comment {delimiters} themselves; the "box" is implied. Opposite of {winged comments}. (1997-07-21) boxen /bok'sn/ (By analogy with {VAXen}) A fanciful plural of {box} often encountered in the phrase "Unix boxen", used to describe commodity {Unix} hardware. The connotation is that any two Unix boxen are interchangeable. (1994-11-29) Boxer 1. 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. An editor for {MS-DOS}. [What kind of editor?] {Home (www.boxersoftware.com/users/dhamel)}. (1998-04-27) boxology /bok-sol'*-jee/ {ASCII art}. This term implies a more restricted domain, that of box-and-arrow drawings. "His report has a lot of boxology in it." Compare {macrology}. (1994-12-02) Boycott Apple Some time before 1989, {Apple Computer, Inc.} started a lawsuit against {Hewlett-Packard} and {Microsoft}, claiming they had breeched Apple's {copyright} on the {look and feel} of the {Macintosh user interface}. In December 1989, {Xerox} failed to sue {Apple Computer}, claiming that the software for Apple's {Lisa} computer and {Macintosh} {Finder}, both copyrighted in 1987, were derived from two {Xerox} programs: {Smalltalk}, developed in the mid-1970s and {Star}, copyrighted in 1981. Apple wanted to stop people from writing any program that worked even vaguely like a {Macintosh}. If such {look and feel} lawsuits succeed they could put an end to {free software} that could substitute for commercial software. In the weeks after the suit was filed, {Usenet} reverberated with condemnation for Apple. {GNU} supporters {Richard Stallman}, John Gilmore, and Paul Rubin decided to take action against Apple. Apple's reputation as a force for progress came from having made better computers; but The {League for Programming Freedom} believed that Apple wanted to make all non-Apple computers worse. They therefore campaigned to discourage people from using Apple products or working for Apple or any other company threatening similar obstructionist tactics (e.g. {Lotus} and {Xerox}). Because of this boycott the {Free Software Foundation} for a long time didn't support {Macintosh} {Unix} in their software. In 1995, the LPF and the FSF decided to end the boycott. [Dates? Other events? Why did Xerox's case against Apple fail?] (1995-04-18) bozotic (From Bozo the Clown, a famous circus personality, via "bozo" - a clod, idiot or generally silly person) any form of clown-like or ludicrous behaviour. The word also has echoes of "robotic", so bozotic behaviour is mindless, automaton-like stupidity. (1996-01-05) BPI {bits per inch} bpp {bits per pixel} BPR {Business Process Re-engineering} BPS 1. {bits per second}. 2. {Basic Programming Support} BQS {Berkeley Quality Software} br The {country code} for Brazil. (1999-01-27) brace {left brace} or {right brace}. bracket (Or square bracket) A {left bracket} or {right bracket}. Often used losely for {parentheses}, {square brackets}, {braces}, {angle brackets}, or any other kind of unequal paired {delimiters}. (1996-09-08) bracket abstraction An {algorithm} which turns a term into a function of some variable. The result of using bracket abstraction on T with respect to variable v, written as [v]T, is a term containing no occurrences of v and denoting a function f such that f v = T. This defines the function f = (\ v . T). Using bracket abstraction and {currying} we can define a language without {bound variable}s in which the only operation is {monadic} function application. See {combinator}. (1995-03-07) braille /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 (Or "refreshable braille display", "refreshable display") An electromechanical device that renders {braille} with tiny, independently controlled pins used to represent the state of dots in braille cells. Each pin, in its "on" state, raises above the top of its hole in the screen; in its "off" state, it drops below the top of its hole. Older systems used tiny solenoids to control the state of the pins; modern systems are {piezoelectric}. Typical dimensions of a braille display are 1 line of 40 cells, each cell of two-by-eight dots. (1998-10-19) Braille embosser {Braille printer} Braille printer (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 (BAP) A parallel {Prolog} environment for {transputer} systems by Frank Bergmann , Martin Ostermann , and Guido von Walter of {Brain Aid Systems} GbR. It is based on a model of communicating sequential Prolog processes. The {runtime system} consists of a multi-process {operating system} with support for several applications running concurrently. {Home (http://www.cs.tu-berlin.de/~fraber/bap.html)} {Berlin FTP (ftp://unlisys.in-berlin.de/pub/brainaid/)}, {CMU FTP (ftp://ftp.cs.cmu.edu/user/ai/lang/prolog/impl/parallel/bap/)}. (1995-03-07) brain-damaged 1. [generalisation of "Honeywell Brain Damage" (HBD), a theoretical disease invented to explain certain utter cretinisms in Honeywell {Multics}] Obviously wrong; cretinous; {demented}. There is an implication that the person responsible must have suffered brain damage, because he should have known better. Calling something brain-damaged is really bad; it also implies it is unusable, and that its failure to work is due to poor design rather than some accident. "Only six monocase characters per file name? Now *that's* brain-damaged!" 2. [especially in the Mac world] May refer to free demonstration software that has been deliberately crippled in some way so as not to compete with the commercial product it is intended to sell. Synonym {crippleware}. brain-dead Brain-damaged in the extreme. It tends to imply terminal design failure rather than malfunction or simple stupidity. brain dump (The act of telling someone) everything one knows about a particular topic. Typically used when someone is going to let a new party maintain a piece of code. Conceptually analogous to an operating system {core dump} in that it saves a lot of useful {state} before an exit. "You'll have to give me a brain dump on FOOBAR before you start your new job at HackerCorp." At Sun, this is also known as "TOI" (transfer of information). brain fart 1. The actual result of a {braino}, as opposed to the mental {glitch} that is the braino itself. E.g. typing "dir" on a {Unix box} after a session with {MS-DOS}. 2. A biproduct of a bloated mind producing information effortlessly. A burst of useful information. "I know you're busy on the Microsoft story, but can you give us a brain fart on the Mitnik bust?" (1997-04-29) braino {thinko} branch 1. An {edge} in a {tree}. 2. A {jump}. (1998-11-14) Branch and Hang (BRH) Originally a mythical instruction for the {IBM 1130} at {Indiana University}. Later some real examples were discovered. The {Texas Instruments} {TI-980} allowed all {addressing modes} with all instructions, including Store Immediate Extended (stores the value into the extension word of the instruction) and Branch and Link Immediate (makes a subroutine call to the same instruction -- Branch and Hang). Compare {HCF}. (1997-02-12) branch coverage testing A test method which aims to ensure that each possible branch from each decision point (e.g. "if" statement) is executed at least once, thus ensuring that all reachable code is executed. (1996-05-10) branch delay slot {delayed control-transfer} Branch on Chip Box Full (BCBF) A mythical {IBM 1130} instruction whose action depended on the contents of the {chip box}. This was one of a long list of fake {assembly language} instructions that went around {Indiana University} in the 1970s. (1997-02-12) branch prediction 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 (BTB) A {register} used to store the predicted destination of a branch in a processor using {branch prediction}? [Is this correct? Examples?] (1995-05-05) branch to Fishkill (IBM: from the location of one of the corporation's facilities) Any unexpected jump in a program that produces catastrophic or just plain weird results. See {jump off into never-never land}, {hyperspace}. Brazil An {operating system} from {Acorn Computers} used on an {ARM} card which could be fitted to an {IBM PC}. There was also an {ARM} second processor for the {BBC Microcomputer} which used Brazil. Never used on the {Archimedes}(?). (1994-12-05) BRB (I will) be right back. (1998-01-18) bread crumbs Debugging statements inserted into a program that emit output or log indicators of the program's {state} to a file so you can see where it dies or pin down the cause of surprising behaviour. The term is probably a reference to the Hansel and Gretel story from the Brothers Grimm; in several variants, a character leaves a trail of bread crumbs so as not to get lost in the woods. breadth first search A graph search {algorithm} which tries all one-step extensions of current paths before trying larger extensions. This requires all current paths to be kept in memory simultaneously, or at least their end points. Opposite of {depth-first search}. See also {best first search}. (1996-01-05) break 1. To cause to be {broken} (in any sense). "Your latest patch to the editor broke the paragraph commands." 2. (Of a program) To stop temporarily, so that it may debugged. The place where it stops is a "{breakpoint}". 3. To send an {RS-232} break (two character widths of line high) over a {serial line}. 4. [Unix] To strike whatever key currently causes the tty driver to send SIGINT to the current process. Normally, break, delete or {control-C} does this. 5. "break break" may be said to interrupt a conversation (this is an example of verb doubling). This usage comes from radio communications, which in turn probably came from landline telegraph/teleprinter usage, as badly abused in the Citizen's Band craze a few years ago. 6. {pipeline break}. break-even point In the process of implementing a new computer language, the point at which the language is sufficiently effective that one can implement the language in itself. That is, for a new language called, hypothetically, FOOGOL, one has reached break-even when one can write a demonstration compiler for FOOGOL in FOOGOL, discard the original implementation language, and thereafter use working versions of FOOGOL to develop newer ones. This is an important milestone. See {My Favourite Toy Language}. [There actually is a language called {Foogol}]. breakpoint A point in a {program} that, when reached, triggers some special behavior useful to the process of {debugging}; generally, breakpoints are used to either pause program {execution}, and/or {dump} the values of some or all of the program {variables}. Breakpoints may be part of the program itself; or they may be set by the programmer as part of an {interactive} session with a debugging tool for scrutinizing the program's execution. (1999-06-07) breath-of-life packet ({XEROX PARC}) An {Ethernet} {packet} that contains {bootstrap} code, periodically sent out from a working computer to infuse the "breath of life" into any computer on the network that has crashed. Computers depending on such packets have sufficient hardware or firmware code to wait for (or request) such a packet during the reboot process. See also {dickless workstation}. The notional "kiss-of-death packet", with a function complementary to that of a breath-of-life packet, is recommended for dealing with hosts that consume too many network resources. Though "kiss-of-death packet" is usually used in jest, there is at least one documented instance of an {Internet} subnet with limited address-table slots in a gateway computer in which such packets were routinely used to compete for slots, rather like Christmas shoppers competing for scarce parking spaces. (1995-01-26) breedle {feep} BRH {Branch and Hang} BRI {Basic Rate Interface}, {2B1D} {Integrated Services Digital Network}. Basic Rate ISDN? Brian Reid The person who cofounded {Usenet}'s anarchic alt.* {newsgroup} {hierarchy} with {John Gilmore}. (1997-04-12) BRIDGE A component of {ICES} for civil engineers. [Sammet 1969, p. 616]. bridge A device which forwards traffic between network segments based on {data link layer} information. These segments would have a common {network layer} address. See also {gateway}, {router}. Bridgetalk A visual language. briefcase 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 (Or "tone", "luminance", "value", "luminosity", "lightness") The coordinate in the {HSB} {colour model} that determines the total amount of light in the colour. Zero brightness is black and 100% is white, intermediate values are "light" or "dark" colours. The other coordinates are {hue} and {saturation}. (1999-07-05) Brilliant One of five pedagogical languages based on {Markov} {algorithm}s, used in ["Nonpareil, a Machine Level Machine Independent Language for the Study of Semantics", B. Higman, ULICS Intl Report No ICSI 170, U London (1968)]. See also {Diamond}, {Nonpareil}, {Pearl}, {Ruby}. bring X to its knees To present a computer, operating system, piece of software, or algorithm with a load so extreme or {pathological} that it grinds to a halt. "To bring a MicroVAX to its knees, try twenty users running {vi} - or four running {EMACS}." Compare {hog}. British Broadcasting Corporation (BBC) The UK state television and radio company. They commissioned the "{BBC Micro}" from {Acorn Computers} for use in a television series about using computers. They also run the {BBC Networking Club}. (1995-02-28) British Library Method {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 (BSI) The British member of {ISO}. (1996-06-12) British Telecom (BT) The largest telecommunications provider in the UK. Due to regulatory issues, BT had to sell off its interest in McCaw Cellular. BT sold it to {AT&T} for something like 4B$. BT then invested that in {MCI}. As a part of the deal, MCI was given BT North America, which was the old {Tymnet}. MCI laid off about 40% of the Tymnet staff. {Home (http://www.intervid.co.uk/)} (1995-05-09) British Telecom Research Laboratories (BTRL) The laboratories where {British Telecom} develops many of its new Network services. {Home (http://www.labs.bt.com/)} Address: Martlesham Heath, near Ipswich, Suffolk, UK. (1995-04-25) brittle Said of {software} that is functional but easily broken by changes in operating environment or configuration, or by any minor tweak to the software itself. Also, any system that responds inappropriately and disastrously to abnormal but expected external stimuli; e.g. a {file system} that is usually totally scrambled by a power failure is said to be brittle. This term is often used to describe the results of a research effort that were never intended to be robust, but it can be applied to commercially developed software, which displays the quality far more often than it ought to. Opposite of {robust}. (1995-05-09) broadband A transmission medium capable of supporting a wide range of frequencies, typically from audio up to video frequencies. It can carry multiple signals by dividing the total capacity of the medium into multiple, independent bandwidth channels, where each channel operates only on a specific range of frequencies. See also {baseband}. (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 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 An {broadcast} on a {network} that causes multiple {hosts} to respond by broadcasting themselves, causing the storm to grow exponentially in severity. See {network meltdown}. (1995-02-07) Broadway A standard which the {X Consortium} is currently (January 1997) developing and plans to release soon as an {open standard}. A prime goal is to be more {bandwidth}-efficient and easier to develop for (and to {port}) than the {X Window System}, which has been widely described as over-sized, over-featured, over-engineered and incredibly over-complicated. {Home (http://www.x.org/consortium/broadway.html)}. (1997-05-15) brochureware Planned but non-existent product like {vaporware}, but with the added implication that marketing is actively selling and promoting it (they've printed brochures). Brochureware is often deployed as a strategic weapon; the idea is to con customers into not committing to an existing product of the competition's. It is a safe bet that when a brochureware product finally becomes real, it will be more expensive than and inferior to the alternatives that had been available for years. broken Not working properly (of programs). broken arrow The error code displayed on line 25 of a {IBM 3270} {terminal} (or a {terminal emulator} emulating a 3270) for various kinds of {protocol} violations and "unexpected" error conditions (including connection to a {down} computer). On a PC, simulated with "->/_", with the two centre characters overstruck. "Broken arrow" is also military jargon for an accident involving nuclear weapons. (1995-02-07) broket /broh'k*t/ or /broh'ket/ (From broken bracket) Either of the characters "<" or ">" when used as paired enclosing {delimiters} ({angle brackets}). (1997-07-