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 1993 by Denis Howe. 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://www.foldoc.org/, Editor Denis Howe" or similar. The dictionary has been growing since 1985 and now contains over 13000 definitions totalling nearly five megabytes of text. Entries are cross-referenced to each other and to related resources elsewhere on the net. Where {LaTeX} commands for certain non-{ASCII} symbols are mentioned, they are described in their own entries. "\" is also used to represent the Greek lower-case lambda used in {lambda-calculus}. Cross-references to other entries look {like this}. Note that not all cross-references actually lead anywhere yet, but if you find one that leads to something inappropriate, please let me know. Dates after entries indicate when that entry was last updated. They do not imply that it was up-to-date at that time. You can search the latest version of the dictionary by {WWW} (URL http://www.foldoc.org/). If you find an entry that is wrong or inadequate please let me know. See {Pronunciation} for how to interpret the pronunciation given for some entries. (2000-05-18) Acknowledgements Many thanks to the hundreds of {contributors (contributors.html)}, and especially to the {Guest Editors (editors.html)}, mirror site maintainers and the maintainers of the following resources from which some entries originate: Mike Sendall's STING Software engineering glossary , 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}. [{Jargon File}] (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}. [{Jargon File}] (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}). [{Jargon File}] (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 archetypal {diskless workstation}, developed by {Bob Metcalfe} at {3Com} and first available in 1986/1987. The 3Station/2E had a 10 {MHz} {80286} {processor}, 1 {MB} of {RAM} (expandable to 5 MB), {VGA} compatible graphics with 256 {KB} of {video RAM}, and integrated {AUI}/{BNC} network {transceivers} for {LAN} access. The product used a single {printed-circuit board} with four custom {ASICs}. It had no {floppy disk drive} or {hard disk}, it was booted from a {server} and stored all {end-user} {files} there. 3Com advertised "significant cost savings" due to the 3Station's ease of installation and low maintenance (this would now be referred to under the banner of "{TCO}"). The 3Station cost somewhere between an {IBM PC} {clone} and an IBM PC of the day. It was not commercially successful. (2000-07-05) 3-tier {three-tier} 404 Someone who's clueless. From the {World-Wide Web} message "404, URL Not Found" meaning that the document you've tried to access can't be located. "Don't bother asking him...he's 404, man". 404 is one of the standard response codes of the {telnet} {protocol} on which the web's {HTTP} is based. The first 4 indicates a client error such as a mistyped URL. The middle 0 refers to a general syntax error. The last 4 just indicates the specific error in the group of 40x, which also includes 400: Bad Request, 401: Unauthorized, etc. (2000-03-18) 4.2BSD {Berkeley 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) 56 kbps (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 kbps}. Compare {DS0}. (2000-07-16) 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) 6501 An eight-bit {microprocessor}, the first sold by {MOS Technologies}. The 6501 pin-compatible with the {Motorola 6800} and was the first member of the 650x series. It had had an on-chip clock oscillator. See also {6502}. (2001-02-26) 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 {registers}. It was an 8-bit processor, with 16-bit {address bus}. Inside was one 8-bit data register ({accumulator}), two 8-bit {index registers} and an 8-bit {stack pointer} (stack was preset from address 256 to 511). It used these index and stack registers effectively, with more {addressing modes}, including a fast zero-page mode that accessed memory locations from address 0 to 255 with an 8-bit address (it didn't have to fetch a second byte for the address). Back when the 6502 was introduced, {RAM} was actually faster than {CPU}s, so it made sense to optimize for RAM access rather than increase the number of registers on a chip. The 6502 was used in the {BBC Microcomputer}, {Apple II}, {Commodore}, {Apple Computer} and {Atari} {personal computers}. {Steve Wozniak} described it as the first chip you could get for less than a hundred dollars (actually a quarter of the {6800} price). The 6502's {indirect jump} instruction, JMP (xxxx), was {broken}. If the address was hexadecimal xxFF, the processor would not access the address stored in xxFF and xxFF + 1, but rather xxFF and xx00. The {6510} did not fix this bug, nor was it fixed in any of the other {NMOS} versions of the 6502 such as the {8502}. Bill Mensch at {Western Design Center} was probably the first to fix it, in the {65C02}. The 6502 also had undocumented instructions. The {65816} is an expanded version of the 6502. There is a 6502 {assembler} by Doug Jones which supports {macros} and conditional features and can be used for linkage editing of object files. It requires {Pascal}. See also {cross-assembler}, {RTI}, {Small-C}. (2001-01-02) 650x 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 successor to the {6502}. The 6510 was used in the Commodore 64C. Successors included the {8502} used in the {Commodore 128} line. (2001-01-02) 65816 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 {Intel 8051} 80386 {Intel 80386} 8048 {Intel 8048} 80486 {Intel 486} 8051 {Intel 8051} 8052 {Intel 8051} 8080 {Intel 8080} 8086 {Intel 8086} 8088 {Intel 8088} 80x86 {Intel 80x86} 822 {RFC 822} 82430FX {Triton I} 82430HX {Triton II} 82430MX {Mobile Triton} 82430VX {Triton VX} 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. {EIA-232}. (1995-01-31) 8 queens problem {eight queens puzzle} 8 queens puzzle {eight queens puzzle} 8x86 {Intel 80x86} 90-90 Rule {Ninety-Ninety Rule} 9PAC 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) A-3 {ARITH-MATIC} 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) AAUI {Apple Attachment Unit Interface} 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) Abbreviated Test Language for Avionics Systems (ATLAS) A Mil-spec language for automatic testing of avionics equipment. ATLAS replaced {Gaelic} and several other test languages. ["IEEE Standard ATLAS Test Language", IEEE Std 416-1976]. (2000-04-03) ABC 1. 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 process of {inference} to the best explanation. "Abduction" is sometimes used to mean just the generation of hypotheses to explain observations or conclusionsm, but the former definition is more common both in philosophy and computing. The {semantics} and the implementation of abduction cannot be reduced to those for {deduction}, as explanation cannot be reduced to implication. Applications include fault diagnosis, plan formation and {default reasoning}. {Negation as failure} in {logic programming} can both be given an abductive interpretation and also can be used to implement abduction. The abductive semantics of negation as failure leads naturally to an {argumentation}-theoretic interpretation of default reasoning in general. [Better explanation? Example?] ["Abductive Inference", John R. Josephson ]. (2000-12-07) 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". [{Jargon File}] (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 1. {Alternating bit protocol}. 2. {Microsoft} {Address Book Provider}. (2001-02-11) 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, X.680) An {ISO}/{ITU-T} {standard} for transmitting structured {data} on {networks}, originally defined in 1984 as part of {CCITT X.409} '84. ASN.1 moved to its own standard, X.208, in 1998 due to wide applicability. The substantially revised 1995 version is covered by the X.680 series. ASN.1 defines the {abstract syntax} of {information} but does not restrict the way the information is encoded. Various ASN.1 encoding rules provide the {transfer syntax} (a {concrete} representation) of the data values whose {abstract syntax} is described in ASN.1. The standard ASN.1 encoding rules include {BER} (Basic Encoding Rules - X.209), {CER} (Canonical Encoding Rules), {DER} (Distinguished Encoding Rules), and {PER} (Packed Encoding Rules). ASN.1 together with specific ASN.1 encoding rules facilitates the exchange of structured data especially between {application programs} over networks by describing data structures in a way that is independent of machine architecture and implementation language. {OSI} {Application layer} {protocols} such as {X.400} {MHS} {electronic mail}, {X.500} directory services and {SNMP} use ASN.1 to describe the {PDU}s they exchange. Documents describing the ASN.1 notations: {ITU-T} Rec. X.680, {ISO} 8824-1; {ITU-T} Rec. X.681, {ISO} 8824-2; {ITU-T} Rec. X.682, {ISO} 8824-3; {ITU-T} Rec. X.683, {ISO} 8824-4 Documents describing the ASN.1 encoding rules: {ITU-T} Rec. X.690, {ISO} 8825-1; {ITU-T} Rec. X.691, {ISO} 8825-2. [M. Sample et al, "Implementing Efficient Encoders and Decoders for Network Data Representations", IEEE Infocom 93 Proc, v.3, pp. 1143-1153, Mar 1993. Available from Logica, UK]. See also {snacc}. (2000-10-20) abstract syntax tree (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 {Abstract Window Toolkit} Abstract Window Toolkit (AWT) {Java}'s {platform}-independent {windowing}, graphics, and user-interface {toolkit}. The AWT is part of the {Java Foundation Classes} (JFC) - the standard {API} for providing a {graphical user interface} (GUI) for a Java program. Compare: {SWING}. ["Java in a Nutshell", O'Reilly]. {Home (http://java.sun.com/products/jdk/awt/)}. (2000-07-26) 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) Acceptance, Test Or Launch Language (ATOLL) The language used for automating the checking and launch of Saturn rockets. ["SLCC ATOLL User's Manual", IBM 70-F11-0001, Huntsville AL Dec 1970]. (2000-04-03) acceptor {Finite State Machine} Access 1. 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." [{Jargon File}] (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. [{Jargon File}] (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 on 1978-12-05, on a kitchen table in a back room. Their first creation was an electronic slot machine. After the {Acorn System 1}, 2 and 3, Acorn launched the first commercial {microcomputer} - the {ATOM} in March 1980. In April 1981, Acorn won a contract from the {BBC} to provide the {PROTON}. In January 1982 Acorn launched the {BBC Microcomputer} System. At one time, 70% of microcomputers bought for UK schools were BBC Micros. The Acorn Computer Group went public on the Unlisted Securities Market in September 1983. In April 1984 Acorn won the Queen's Award for Technology for the BBC Micro and in September 1985 {Olivetti} took a controlling interest in Acorn. The {Master} 128 Series computers were launched in January 1986 and the BBC {Domesday} System in November 1986. In 1983 Acorn began to design the Acorn RISC Machine (ARM), the first low-cost, high volume {RISC} processor chip (later renamed the {Advanced RISC Machine}). In June 1987 they launched the {Archimedes} range - the first 32-bit {RISC} based {microcomputers} - which sold for under UKP 1000. In February 1989 the R140 was launched. This was the first {Unix} {workstation} under UKP 4000. In May 1989 the A3000 (the new {BBC Microcomputer}) was launched. In 1990 Acorn formed {Advanced RISC Machines} Ltd. (ARM) in partnership with {Apple Computer, Inc.} and {VLSI} to develop the ARM processor. Acorn has continued to develop {RISC} based products. With 1992 revenues of 48.2 million pounds, Acorn Computers was the premier supplier of {Information Technology} products to UK education and had been the leading provider of 32-bit RISC based {personal computers} since 1987. Acorn finally folded in the late 1990s. Their operating system, {RISC OS} was further developed by a consortium of suppliers. {Usenet} newsgroups: {news:comp.sys.acorn}, {news:comp.sys.acorn.announce}, {news:comp.sys.acorn.tech}, {news:comp.binaries.acorn}, {news:comp.sources.acorn}, {news:comp.sys.acorn.advocacy}, {news:comp.sys.acorn.games}. {Acorn's FTP server (ftp://ftp.acorn.co.uk/)} {HENSA software archive (http://micros.hensa.ac.uk/micros/arch.html)}. {Richard Birkby's Acorn page (http://www.csv.warwick.ac.uk/~phudv/)}. {RiscMan's Acorn page (http://www.geko.com.au/riscman/)}. {Acorn On The Net (http://www.stir.ac.uk/~rhh01/Main.html)}. {"The Jungle" by Simon Truss (http://www.csc.liv.ac.uk/users/u1smt/u1smt.html)}. [Recent history?] (2000-09-26) Acorn RISC Machine 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 Directory A {directory service} from {Microsoft Corporation}, similar in concept to {Novell} {Netware Directory Services (NDS)}, that also integrates with the user organisation's {DNS} structure and is interoperable with {LDAP}. Active Directory is included in {Windows 2000}. (2000-03-28) Active Language I 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. [URL?] (1999-12-02) 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 {objects} which execute {asynchronously}. The Actor model provides flexible mechanisms for building parallel and {distributed} software systems. {(http://osl.cs.uiuc.edu/)}. ["Laws for Communicating Parallel Processes", C. Hewitt et al, IFIP 77, pp. 987-992, N-H 1977]. ["ACTORS: A Model of Concurrent Computation in Distributed Systems", Gul A. Agha , Cambridge Press, MA, 1986]. (1999-11-23) 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 support {single inheritance}, using "tagged types" which are types that can be extended via {inheritance}. Ada programming places a heavy emphasis on {multitasking}. Tasks are synchronised by the {rendezvous}, in which a task waits for one of its subroutines to be executed by another. The conditional entry makes it possible for a task to test whether an entry is ready. The selective wait waits for either of two entries or waits for a limited time. Ada is often criticised, especially for its size and complexity, and this is attributed to its having been designed by committee. In fact, both Ada 83 and Ada 95 were designed by small design teams to be internally consistent and tightly integrated. By contrast, two possible competitors, {Fortran 90} and {C++} have both become products designed by large and disparate volunteer committees. See also {Ada/Ed}, {Toy/Ada}. {Home of the Brave Ada Programmers (http://lglwww.epfl.ch/Ada/)}. {Ada FAQs (http://lglwww.epfl.ch/Ada/FAQ/)} (hypertext), {text only (ftp://lglftp.epfl.ch/pub/Ada/FAQ)}. {(http://wuarchive.wustl.edu/languages/ada/)}, {(ftp://ajpo.sei.cmu.edu/)}, {(ftp://stars.rosslyn.unisys.com/pub/ACE_8.0)}. E-mail: . {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 (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}. {Adamakegen} generates {makefiles} for {Ada} programs. ["Reference Manual for the Ada Programming Language", ANSI/MIL STD 1815A, US DoD (Jan 1983)]. Earlier draft versions appeared in July 1980 and July 1982. ISO 1987. [{Jargon File}] (2000-08-12) Ada++ An {object-oriented} extension to {Ada}, implemented as an Ada {preprocessor}. Obsoleted by {Ada 95} which includes object-oriented features. [{Jargon File}] (1995-09-19) Ada 83 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 on 1994-12-01 by a team lead by Tucker Taft of {Intermetrics}. Chris Anderson was the Project Manager. The printed standard was expected to be available around 1995-02-15. Additions include {object-orientation} ({tagged types}, {abstract types} and {class-wide types}), hierarchical libraries and synchronisation with shared data (protected types) similar to {Orca}. It lacks {multiple inheritance} but supports the construction of multiple inheritance type hierarchies through the use of {generics} and {type composition}. {GNAT} aims to be a free implementation of Ada 95. You can get the standard from the {Ada Joint Program Office (http://wuarchive.wustl.edu/languages/ada/ajpo/index.shtml)}. ["Introducing Ada 9X", J.G.P. Barnes, Feb 1993]. (1999-12-02) Ada 9X 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}. Ada Core Technologies was founded in 1994 by the original authors of the GNAT compiler. ACT provides software for {Ada 95} development. {Home (http://www.gnat.com/)}. (2000-10-28) Ada/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 {progressive coding} methods used in {PNG} {images}. Adam7, named after its author, Adam M. Costello, consists of seven distinct passes over the image. Each pass transmits a subset of the {pixels} in the image. The pass in which each pixel is transmitted is defined by replicating the following 8-by-8 pattern over the entire image, starting at the top left: 1 6 4 6 2 6 4 6 7 7 7 7 7 7 7 7 5 6 5 6 5 6 5 6 7 7 7 7 7 7 7 7 3 6 4 6 3 6 4 6 7 7 7 7 7 7 7 7 5 6 5 6 5 6 5 6 7 7 7 7 7 7 7 7 (2000-09-12) Adamakegen 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: 2.6.3, as of 1993-03-02. {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) An {algorithm} for global optimisation of generic {functions} by Lester Ingber . Latest version: 20.5, as of 2000-02-29. {Home (http://www.alumni.caltech.edu/~ingber/)}. {Home (http://www.ingber.com/)}. Mailing list: . (2000-02-29) 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)}. [Connection with Thomas Brandes and GMD?] (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) addressee One to whom something is addressed. E.g. "The To, CC, and {BCC} {headers} list the addressees of the e-mail message". Normally an addressee will eventually be a {recipient}, unless there is a failure at some point (an e-mail "{bounces}") or the message is redirected to a different addressee. (2000-03-22) addressing mode 1. 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}. [{Jargon File}] (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, Rijndael) The {symmetric block cipher}, designed by Joan Daemen and Vincent Rijmen, that won the {NIST}'s contest for a replacement for the {Data Encryption Standard} (DES). Final, official acceptance as a Federal Information Processing Standard (FIPS) is expected some time between April and June 2001. AES currently supports 128, 192 and 256-bit keys and encryption blocks, but may be extended in multiples of 32 bits. {Home (http://www.nist.gov/aes)}. {Rijndael home page (http://www.esat.kuleuven.ac.be/~rijmen/rijndael/)}. (2001-05-09) 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 STatistical Analysis Program (ASTAP) A program for analysing electronic circuits and other networks. ["Advanced Statistical Analysis Program (ASTAP) Program Reference Manual", SH-20-1118, IBM, 1973]. (2000-01-27) Advanced Technology Attachment (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-3} and {ATA-4} ("Ultra DMA"). (2000-10-07) 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?] [{Jargon File}] (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}. [{Jargon File}] (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}. [{Jargon File}] (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}. [{Jargon File}] (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} A. K. Erlang (1878-1929) A Danish mathematician. {Erlang} the language and unit were named after him. Interested in the theory of probability, in 1908 Erlang joined the Copenhagen Telephone Company where he studied the problem of waiting times for telephone calls. He worked out how to calculate the fraction of callers who must wait due to all the lines of an exchange being in use. His formula for loss and waiting time was published in 1917. It is now known as the "Erlang formula" and is still in use today. {Biography (http://www-history.mcs.st-andrews.ac.uk/~history/Mathematicians/Erlang.html)}, {Biography (http://pass.maths.org.uk/issue2/erlang/index.html)}. [What was his name?] (2000-10-28) 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) Alan F. Shugart The man who founded {Shugart Associates} and later co-founded {Seagate Technology}. Alan Shugart left Shugart Associates in 1974 [did he quit or was he fired?] and took a break from the disk-drive business. In 1979, he and {Finis Conner} founded a new company that at first was called Shugart Technology and later {Seagate Technology}. (2000-02-09) A-language 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 Shugart {Alan F. Shugart} 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". {Michigan Algorithm Decoder} (MAD), developed in 1959, was based on IAL. ["Preliminary report - International Algebraic Language", CACM 1(12):8, 1958]. [Details? Relationship to ALGOL 60?] (1999-12-10) ALGOL 60 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 {Sun-3} under {SunOS} 4.x and {Atari} under {GEMDOS} (or potentially other computers supported by the {Amsterdam Compiler Kit}). ["A Sublanguage of ALGOL 68", P.G. Hibbard, SIGPLAN Notices 12(5), May 1977]. (1995-05-04) ALGOL C 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). {Dictionary of Algorithms, Data Structures, and Problems (http://hissa.nist.gov/dads/terms.html)}. (2000-10-13) 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}. (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. [{Jargon File}] (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 {Sun-4}, not well supported: {MIPS}/{Ultrix}, {386}/{SystemV}. Current version: 1.1, as of 1993-02-16. (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". [{Jargon File}] (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}. [{Jargon File}] Alternating bit protocol (ABP) A simple {data link layer} {protocol} that retransmits lost or corrupted messages. Messages are sent from transmitter A to receiver B. Assume that the channel from A to B is initialised and that there are no messages in transit. Each message contains a data part, a {checksum}, and a one-bit {sequence number}, i.e. a value that is 0 or 1. When A sends a message, it sends it continuously, with the same sequence number, until it receives an acknowledgment ({ACK}) from B that contains the same sequence number. When that happens, A complements (flips) the sequence number and starts transmitting the next message. When B receives a message from A, it checks the checksum. If the message is not corrupted B sends back an ACK with the same sequence number. If it is the first message with that sequence number then it is sent for processing. Subsequent messages with the same sequence bit are simply acknowledged. If the message is corrupted B sends back an negative/error acknowledgment ({NAK}). This is optional, as A will continue transmitting until it receives the correct ACK. A treats corrupted ACK messages, and NAK messages in the same way. The simplest behaviour is to ignore them all and continue transmitting. (2000-10-28) altmode {alt} ALTRAN 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}. [{Jargon File}] (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) amateur packet radio (PR) The use of {packet radio} by amateurs to communicate between computers. PR is a complete amateur radio computer network with "digipeaters" (relays), mailboxes (BBS) and other special nodes. In Germany, it is on HF, say, 2m (300 and 1200 BPS), 70cm (1200 to 9600 BPS), 23cm (normally 9600 BPS and up, currently most links between digipeaters) and higher frequencies. There is a KW (short wave) Packet Radio at 300 BPS, too. Satellites with OSCAR (Orbiting Sattelite Carring Amateur Radio) transponders (mostly attached to commercial satellites by the AMateur SATellite (AMSAT) group) carry Packet Radio mailboxes or {digipeaters}. There are both on-line and off-line services on the packet radio network: You can send {electronic mail}, read bulletins, chat, transfer files, connect to on-line DX-Clusters (DX=far distance) to catch notes typed in by other HAMs about the hottest international KW connections currently coming up (so you can pile up). PR uses {AX.25} (an {X.25} derivative) as its {transport layer} and sometimes even {TCP/IP} is transmitted over AX.25. AX.25 is like X.25 but the adressing uses HAM "calls" like "DG8MGV". There are special "wormholes" all over the world which "tunnel" amateur radio traffic through the {Internet} to forward mail. Sometimes mails travels over satelites. Normally amateur satellites have strange orbits, however the mail forwarding or maibox satellites have very predictable orbits. Some wormholes allow HAMs to bridge from Internet to {AMPR-NET}, e.g. db0fho.ampr.org or db0fho.et-inf.fho-emden.de, but only if you are registered HAM. Because amateur radio is not for profit, it must not be interconnected to the {Internet} but it may be connected through the Internet. All people on the (completely free) amateur radio net must be licensed radio amateurs and must have a "call" which is unique all over the world. There is a special {domain} AMPR.ORG (44.*.*.*) for amateur radio reserved in the IP space. This domain is split between countries, which can further subdivide it. For example 44.130.*.* is Germany, 44.130.58.* is Augsburg (in Bavaria), and 44.130.58.20 is dg8mgv.ampr.org (you may verify this with {nslookup}). Mail transport is only one aspect of packet radio. You can talk interactively (as in {chat}), read files, or play silly games built in the Packet Radio software. Usually you can use the autorouter to let the digipeater network find a path to the station you want. However there are many (sometimes software incompatible) digipeaters out there, which the router cannot use. Paths over 1000 km are unlikely to be useable for {real-time} communication and long paths can introduce significant delay times (answer latency). Other uses of amateur radio for computer communication include {RTTY} ({baudot}), {AMTOR}, {PACTOR}, and {CLOVER}. {A huge hamradio archive (ftp://ftp.ucsd.edu/hamradio/)} {Usenet} newsgroup: {news:rec.radio.amateur.packet}. (2001-05-12) Amber 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}. (2000-04-03) 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). In 1997 Amdahl became a division of {Fujitsu}. {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). [Gene Amdahl, "Validity of the Single Processor Approach to Achieving Large-Scale Computing Capabilities", AFIPS Conference Proceedings, (30), pp. 483-485, 1967]. (2001-03-26) 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}, {oblique stroke}, {percent}, {plus}, {question mark}, {right brace}, {right brace}, {right bracket}, {right parenthesis}, {semicolon}, {single quote}, {space}, {tilde}, {underscore}, {vertical bar}, {zero}. Some other common usages cause odd overlaps. The "#", "$", ">", and "&" characters, for example, are all pronounced "hex" in different communities because various assemblers use them as a prefix tag for {hexadecimal} constants (in particular, "#" in many assembler-programming cultures, "$" in the {6502} world, ">" at {Texas Instruments}, and "&" on the {BBC Micro}, {Acorn Archimedes}, {Sinclair}, and some {Zilog Z80} machines). See also {splat}. The inability of {US-ASCII} to correctly represent nearly any language other than English became an obvious and intolerable {misfeature} as computer use outside the US and UK became the rule rather than the exception (see {software rot}). And so national extensions to US-ASCII were developed, such as Latin-1. Hardware and software from the US still tends to embody the assumption that US-ASCII is the universal character set and that words of text consist entirely of byte values 65-90 and 97-122 (A-Z and a-z); this is a major irritant to people who want to use a character set suited to their own languages. Perversely, though, efforts to solve this problem by proliferating sets of national characters produced an evolutionary pressure (especially in protocol design, e.g., the {URL} standard) to stick to {US-ASCII} as a subset common to all those in use, and therefore to stick to English as the language encodable with the common subset of all the ASCII dialects. This basic problem with having a multiplicity of national character sets ended up being a prime justification for {Unicode}, which was designed, ostensibly, to be the *one* ASCII extension anyone will need. A system is described as "{eight-bit clean}" if it doesn't mangle text with byte values above 127, as some older systems did. See also {ASCII character table}, {Yu-Shiang Whole Fish}. (1995-03-06) American Telephone and Telegraph, Inc. 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) American Wire Gauge (AWG, sometimes "Brown and Sharpe Wire Gauge") A U.S. {standard} set of non-ferrous wire conductor sizes. Typical household wiring is AWG number 12 or 14. Telephone wire is usually 22, 24, or 26. The higher the gauge number, the smaller the diameter and the thinner the wire. Thicker wire is better for long distances due to its lower resistance per unit length. (2001-03-26) America On-Line, Inc. (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.micktinker.co.uk/aaplus.html)} to build a nwe Amiga chip set, the {AA+}, based partly on the AGA chips but with new fully 32-bit functional core and 16-bit AGA {hardware register emulation} for {backwards compatibility}. The new core promised improved memory access and video display DMA. By the end of 2000, Amiga development was under the control of a [new?] company called {Amiga, Inc.}. As well as continuing development of AmigaOS (version 3.9 released in December 2000), their "Digital Environment" is a {virtual machine} for multiple {platforms} conforming to the {ZICO} specification. As of 2000, it ran on {MIPS}, {ARM}, {PPC}, and {x86} processors. {Home (http://www.amiga.com/)}. {Amiga Web Directory (http://www.cucug.org/amiga.html)}. {amiCrawler (http://www.amicrawler.com/)}. Newsgroups: {news:comp.binaries.amiga}, {news:comp.sources.amiga}, {news:comp.sys.amiga}, {news:comp.sys.amiga.advocacy}, {news:comp.sys.amiga.announce}, {news:comp.sys.amiga.applications}, {news:comp.sys.amiga.audio}, {news:comp.sys.amiga.datacomm}, {news:comp.sys.amiga.emulations}, {news:comp.sys.amiga.games}, {news:comp.sys.amiga.graphics}, {news:comp.sys.amiga.hardware}, {news:comp.sys.amiga.introduction}, {news:comp.sys.amiga.marketplace}, {news:comp.sys.amiga.misc}, {news:comp.sys.amiga.multimedia}, {news:comp.sys.amiga.programmer}, {news:comp.sys.amiga.reviews}, {news:comp.sys.amiga.tech}, {news:comp.sys.amiga.telecomm}, {news:comp.Unix.amiga}. See {aminet}, {Amoeba}, {bomb}, {exec}, {gronk}, {guru meditation}, {Intuition}, {sidecar}, {slap on the side}, {Vulcan nerve pinch}. (2001-02-14) 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)}. {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}. [{Jargon File}] (1997-05-07) AMP {Algebraic Manipulation Package} amper {ampersand} ampersand "&" {ASCII} character 38. Common names: {ITU-T}, {INTERCAL}: ampersand; amper; and. Rare: address (from {C}); reference (from C++); bitand; background (from {sh}); pretzel; amp. A common symbol for "and", used as the "address of" operator in {C}, the "reference" operator in {C++} and a {bitwise} {AND} operator in several programming languages. {UNIX} {shells} use the character to indicate that a task should be run in the {background}. The ampersand is a ligature (combination) of the cursive letters "e" and "t", invented in 63 BC by Marcus Tirus [Tiro?] as shorthand for the Latin word for "and", "et". The word ampersand is a conflation (combination) of "and, per se and". Per se means "by itself", and so the phrase translates to "&, standing by itself, means 'and'". This was at the end of the alphabet as it was recited by children in old English schools. The words ran together and were associated with "&". The "ampersand" spelling dates from 1837. {Take our word for it (http://www.takeourword.com/Issue010.html)}. (2000-10-28) AMPL 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}. Contrast {Frequency Modulation}. (2001-04-30) amp off (Purdue) To run in {background}. From the {Unix} {shell} "&" (ampersand) operator. [{Jargon File}] (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 1985. (2000-07-18) 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. See {Amoeba}, {Mac-1}, {Mic-1}, {Mic-2}, {Micro Assembly Language}, {MINIX}, {MicroProgramming Language}, {standard}. [Home page?] (1996-04-23) Andrew Toolkit (ATK) A {portable} {user interface} toolkit developed as part of the {Andrew project}, running on the {X Window System} and distributed with {X11R5}. (1995-11-24) Andy Tanenbaum {Andrew Tanenbaum} An Evolutionary System for On-line Programming (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. [{Jargon File}] (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}. [{Jargon File}] (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. [{Jargon File}] (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.apache.org/docs/misc/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 Attachment Unit Interface (AAUI) A 14-position, 0.050-inch-spaced ribbon contact connector. Early {Power Macintosh} and Quadras had an AAUI (Apple Attachment Unit Interface) {port} (rectangular shaped) for {Ethernet}, which requires a {transceiver}. To use {twisted pair} cabling, you would need to get a {twisted pair} transceiver for the computer with an AAUI port. Some {Power Macintosh} computers had both an AAUI and {RJ-45} port; you can use one or the other, but not both. The pin-out is: Pin Signal Name Signal Description ---- -------------- --------------------------------- 1 FN Pwr Power (+12V @ 2.1W or +5V @ 1.9W) 2 DI-A Data In circuit A 3 DI-B Data In circuit B 4 VCC Voltage Common 5 CI-A Control In circuit A 6 CI-B Control In circuit B 7 +5V +5 volts (from host) 8 +5V Secondary +5 volts (from host) 9 DO-A Data Out circuit A 10 DO-B Data Out circuit B 11 VCC Secondary Voltage Common 12 NC Reserved 13 NC Reserved 14 FN Pwr Secondary +12V @ 2.1W or +5V @ 1.9W Shell Protective Gnd Protective Ground AAUI signals have the same description, function, and electrical requirements as the {AUI} signals of the same name, as detailed in {IEEE 802.3}-1990 CSMA/CD Standard, section 7. (2000-02-10) Apple Computer, Inc. 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 available and add-on {peripherals} like wireless {modems} for {Internet} access are being sold by {Apple Computer, Inc.} and its licensees. {Newton Inc.}'s {NewtonOS} competes with {Microsoft Corporation}'s {Windows CE}, and was to be compatible with {DEC}'s {StrongARM} SA-1100, an embedded 200MHz {microprocessor}, which was due in 1998. {Home (http://www.newton.apple.com/)}. {Handwriting recognition example (http://www-personal.engin.umich.edu/~jxm/tablespoons.html)}. (1997-09-12) Apple Open Collaboration Environment (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 at UIUC. AE is compiled with an {application} and thus exists in the same process and address space. It includes a {dbx} {symbol table} scanner to access compiled variables and routines, or you can enter them manually by providing a type/name declaration and the address. When the {interpreter} is invoked, {source code} fragments are read from the input stream (or a string), parsed, and evaluated immediately. The user can call compiled functions in addition to a few {built-in} intrinsics, declare new data types and data objects, etc. Different input streams can be evaluated in parallel on {Alliant} computers. AE has been ported to {SunOS} (cc or {gcc}), {Alliant FX} and {Cray YMP} (soon). {(ftp://sp2.csrd.uiuc.edu/pub/at.tar.Z)} {(ftp://sp2.csrd.uiuc.edu/pub/bliss/ae.tex.Z)}. (1992-04-21) Application Integration Architecture (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 server 1. A {designer}'s or {developer}'s suite of {software} that helps {programmers} isolate the {business logic} in their {programs} from the {platform}-related code. {Application} {servers} can handle all of the {application} {logic} and {connectivity} found in {client-server} {applications}. Many {application} {servers} also offer features such as {transaction management}, {clustering} and {failover}, and {load balancing}; nearly all offer {ODBC} support. {Application} {servers} range from small {footprint}, web-based {processors} for intelligent appliances or remote {embedded} devices, to complete environments for assembling, deploying, and maintaining {scalable} {multi-tier} applications across an {enterprise}. 2. Production {programs} run on a mid-sized computer that handle all {application} operations between {browser}-based computers and an organisation's back-end business {applications} or {databases}. The {application} {server} works as a translator, allowing, for example, a customer with a {browser} to search an online retailer's {database} for pricing information. 3. The device on which {application} {server} {software} runs. {Application Service Providers} offer commercial access to such devices. {Citrix Application Serving White Paper (http://www.citrix.com/press/corpinfo/application_serving_wp_0700.pdf)}. {Application Server Sites, a list maintained by Vayda & Herzum (http://www.componentfactory.org/links/appl.htm)}. {The Application Server Zone at DevX, (http://www.appserver-zone.com/default.asp)}. {TechMetrix Research's Application Server Directory, (http://www.techmetrix.com/trendmarkers/techmetrixasd.php3)}. (2001-03-30) Application Service Element (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) application service provider (ASP) A service (usually a business) that provides remote access to an {application program} across a {network} {protocol}, typically {HTTP}. A common example is a {web site} that other web sites use for accepting payment by credit card as part of their {online ordering} systems. As this term is complex-sounding but vague, it is widely used by {marketroids} who want to avoid being specific and clear at all costs. (2001-03-26) 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} applications software {application program} 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]. ["APL: An Interactive Approach", 1976]. (2001-01-27) 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}. ["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}. [{Jargon File}] (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) ARI Service The trading name of the remnants of {AST Research, Inc.}. ARI Services is a wholly owned subsidiary of {Samsung Electronics Co. Ltd.}, of Seoul, Korea. They no longer manufacture or distribute computer hardware, but they continue to provide worldwide technical and service support to owners of systems that they manufactured. {AST Computers, LLC} is a separate company. Headquarters: 16225 Alton Parkway, POB 57005, Irvine, California 92619-7005, USA. {Home (http://www.ari-service.com/)}. (2000-03-28) ARITH-MATIC An extension of {Grace Hopper}'s {A-2} programming language, developed in about 1955. ARITH-MATIC was originally known as A-3, but was renamed by the marketing department of {Remington Rand UNIVAC}. {(http://cispom.boisestate.edu/cis221emaxson/hophtm.htm)}. [How was A-2 extended?] (2001-01-27) Arithmetic and Logic Unit (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/)} (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) Artistic license The {open source license} applicable to {Perl}. (1999-12-29) 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: 1, as of 1990-01-26. {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}. [{Jargon File}] (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. [{Jargon File}] (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. [{Jargon File}] (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". [{Jargon File}] (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. {application service provider}. 3. A {query language}(?). [Sammet 1969, p.702]. 4. {Attached Support Processor}. (2000-07-08) 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 of ASpecT are available for {Sun}, {Ultrix}, {NeXT}, {Macintosh}, {OS/2} 2.0, {Linux}, {RS/6000}, {Atari}, {Amiga}. {(ftp://wowbagger.uni-bremen.de/pub/programming/languages)}. (1996-03-25) aspect 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. 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}, {image}, or {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 Corporation} for the description of {neural networks}. A compiler, bpmake, is included. Aspirin is designed for use with the {MIGRAINES} interface. Version: 6.0, as of 1995-03-08. {(ftp://ftp.cognet.ucla.edu/alexis/)}. (1995-03-08) ASPLE 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 {processor}. Assembly language is converted to {machine code} by an {assembler}. Usually, each line of assembly code produces one machine instruction, though the use of {macros} is common. Programming in assembly language is slow and error-prone but is the only way to squeeze every last bit of performance out of the hardware. {Filename extension}: .s ({Unix}), .asm ({CP/M} and others). See also {second generation language}. (1996-09-17) Assembly Language Compiler (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 are used for {debugging} by catching {can't happen} errors. 2. In {logic programming}, a new {fact} or {rule} added to the database by the program at {run time}. This is an {extralogical} or impure feature of logic programming languages. (1997-06-30) ASSET {Asset Source for Software Engineering Technology} asset management 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 languages}, 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 started in 1968; 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}, {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. The APC defends and promotes non-commercial, productive online space for NGOs (Non-Governmental Organisations) and collaborates with like-minded organisations to ensure that the information and communication needs of civil society are considered in telecommunications, donor and investment policy. A few of APC's partner organisations include The {Institute for Global Communications} (USA), GreenNet (UK), Nicarao (Nicaragua) Enda-Tiers Monde (Senegal) and GlasNet (Ukraine). These organisations serve people working toward goals that include the prevention of warfare, elimination of militarism and poverty, protection of the environment, human rights, social and economic justice, participatory democracy, non-violent conflict resolution, and the promotion of sustainable development. {Home (http://www.apc.org/english/)}. E-mail: . (2000-10-08) 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. (2000-01-27) 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. {Home (http://www.cs.rochester.edu/u/miller/ALU/home.html)}. {Usenet} {newsgroups}: {news:comp.org.lisp-users} {news:comp.std.lisp}. Mailing list: . (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) AST 1. {ARI Service}. 2. {AST Computers, LLC}. (2000-03-21) ASTAP {Advanced STatistical Analysis Program} AST Computers, LLC The private company formed in January 1999 when Mr. Beny Alagem, the former chairman of {Packard Bell NEC, Inc.}, bought the name and intellectual property of {AST Research, Inc.}. AST Computers, LLC provide {hardware, software}, and services for small US businesses. {Samsung Electronics Co. Ltd.}, of Seoul, Korea, owns a minority stake. {Home (http://www.ast.com/)}. Address: Los Angeles, CA, USA. (2000-03-28) asterisk "*" {ASCII} code 42. Common names include: star; {INTERCAL}: {splat}; {ITU-T}: asterisk. Rare: {wild card}; gear; dingle; mult; spider; aster; times; twinkle; {glob}; {Nathan Hale}. Commonly used as the multiplication operator and as the {Kleene star}. (2000-07-26) asterix Do you mean "{asterisk}" (the star-shaped character), or {Asterix the Gaul (http://www.webring.org/cgi-bin/webring?ring=asterixwebring&index)}, the popular French cartoon by Goscinny and Uderzo? (2000-07-26) Astral A programming language based on {Pascal}, never implemented. ["ASTRAL: A Structured and Unified Approach to Database Design and Manipulation", T. Amble et al, in Proc of the Database Architecture Conf, Venice, June 1979]. (2000-01-27) AST Research, Inc. A company, formed some time before 1980, that was a leading {personal computer} manufacturer. AST developed {desktop}, mobile, and {server} {PC}s that were sold in more than 100 countries worldwide. It is now (2000-03-02) trading as {ARI Service}. In January 1999 the name and intellectual property were acquired by a new company named {AST Computers, LLC}. (2000-03-21) 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 carry digital data, analog voice, and broadcast {MPEG2} video in a variety of implementations to meet customer needs. ["Data Cooks, But Will Vendors Get Burned?", "Supercomm Spotlight On ADSL" & "Lucent Sells Paradine", Wilson & Carol, Inter@ctive Week Vol. 3 #13, p1 & 6, June 24 1996]. See also {Carrierless Amplitude/Phase Modulation}, {Discrete MultiTone}. {ADSL Forum (http://www.adsl.com/)}. (1998-05-18) Asymmetric Digital Subscriber Loop {Asymmetric Digital Subscriber 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. {EIA-232}. A data {byte} (or other element defined by the {protocol}) ends with a {stop bit}. A continuous marking condition (identical to stop bits but not quantized in time), is then maintained until data resumes. (1995-12-08) Asynchronous Balanced Mode 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 {EIA-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)}. [More detail? 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 The original name of {MATH-MATIC}. [Sammet 1969, p. 135]. (2000-02-24) ATA {Advanced Technology Attachment} ATA-2 {Advanced Technology Attachment Interface with Extensions} ATA-4 /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}. {Michigan U (ftp://atari.archive.umich.edu)}, {UK (ftp://micros.hensa.ac.uk/)}, {Germany (ftp://ftp.Germany.EU.net)} [192.76.144.75], {Netherlands (ftp://ftp.cs.ruu.nl/)} [131.211.80.17], {UK (ftp://src.doc.ic.ac.uk/computing/systems/atari/umich)}. (1999-07-12) 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} Athena {Project Athena} Atherton Technology The comapny that developed the {Software BackPlane} {CASE} framework. Their {Atherton Tool Integration Services} were the basis for the ATIS standard. (2000-02-24) Athlon (K7) {AMD}'s 7th generation {x86} {processor}, released in June 1999. Athlon uses a {Slot A} {motherboard} and is not compatible with {Slot 1} motherboards. [Details? Reference?] (1999-08-05) ATIS {A Tools Integration Standard} ATK {Andrew Toolkit} ATLAS {Abbreviated Test Language for Avionics Systems} Atlas Autocode The {Autocode} for the {Ferranti} {Atlas}, which may have been the first commercial computer with {hardware-paged} {virtual memory}. Whereas other {autocodes} were basically {assembly languages}, Atlas Autocode was high-level and {block-structured}, resembling a cross between {Fortran} and {ALGOL 60}. It had {call-by value}, {loops}, {declarations}, {complex numbers}, {pointers}, {heap} and {stack} storage generators, {dynamic arrays}, and extensible {syntax}. (2000-04-03) ATM 1. {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) ATMP {Asynchronous Transfer Mode Protocol}? (2001-03-03) atob /A too B/ A utility that does {ASCII} to {binary} conversion. The reverse process is {btoa}. [Algorithm?] (1997-08-08) ATOLL {Acceptance, Test Or Launch Language} atomic (From Greek "atomos", indivisible) Indivisible; cannot be split up. For example, an instruction may be said to do several things "atomically", i.e. all the things are done immediately, and there is no chance of the instruction being half-completed or of another being interspersed. Used especially to convey that an operation cannot be interrupted. An atomic {data type} has no internal structure visible to the program. It can be represented by a flat {domain} (all elements are equally defined). Machine {integers} and {Booleans} are two examples. An atomic {database transaction} is one which is guaranteed to complete successfully or not at all. If an error prevents a partially-performed transaction from proceeding to completion, it must be "backed out" to prevent the database being left in an inconsistent state. [{Jargon File}] (2000-04-03) A Tools Integration Standard (ATIS) An {object-oriented} interface to a set of services that allows the saving, accessing and managing of information in a common repository. Developed by {Atherton Technology} and {DEC}, based on an extended version of the {Software BackPlane}, proposed as an industry standard. (1994-10-25) ATRAC {Adaptive TRansform Acoustic Coding} ATS {Attribute Translation System} at sign {commercial at} AT&T {American Telephone and Telegraph, Inc.} Attachment Unit Interface (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 31 mm (one inch). "atto-" is the standard {SI} {prefix} for multiplication by 10^-18. A parsec (parallax-second) is 3.26 light-years; an attoparsec is thus 3.26 * 10^-18 light years. Thus, one attoparsec per {microfortnight} is about one inch per second. This unit is reported to be in use (though probably not very seriously) among hackers in the UK. [{Jargon File}] (1996-12-08) attribute A named value or relationship that exists for some or all {instances} of some {entity} and is directly associated with that instance. Examples include the {href} attribute of an {HTML} {anchor} element, the columns of a database table considered as attributes of each row, and the {members} ({properties} and {methods} of an {object} in {OOP}. This contrasts with the contents of some kind of container (e.g. an array), which are typically not named. The contents of an {associative array}, though they might be considered to be named by their key values, are not normally thought of as attributes. (2001-02-04) Attributed File System (AtFS) The basis of the {Shape_VC} toolkit. Cooperative work within projects is supported by a status model controlling visibility of version objects, locking, and "long transactions" for synchronising concurrent updates. The concept of object attributes provides a basis for storing management information with versions and passing this information between individual tools. This mechanism is useful for building integrated environments from a set of unrelated tools. (2000-02-24) Attribute Translation System (ATS) A {BNF}-based {parser generator} from the {University of Saskatchewan}(?). ATS generates table-driven {LL1} {parsers} with full {insert-only error recovery}. It also has full left-attribute semantic handling, which is a dream compared to using {YACC}'s parser actions. (2000-04-08) ATX An {open} {PC} {motherboard} specification by {Intel}. ATX is a development of the {Baby AT} specification with the motherboard rotated 90 degrees in the chassis. The {CPU} and {SIMM} sockets have been relocated away from the {expansion card} slots meaning that all the slots support full-length cards. More {I/O} functions are integrated on the motherboard. As the longer edge of the board is now at the back of the chassis, there is more space for connectors; also, the I/O opening on the back panel of the chassis has been defined as double the previous height, allowing vendors to add extra on-board I/O functions over and above the standard. Most {Pentium Pro} boards use this {form factor}. As well as the motherboard size, layout, and placement, the ATX specification also includes requirements for power supply and fan specification and location. The full size ATX board measures 305mm wide by 244mm deep. There is also a Mini-ATX form factor, 284mm by 208mm. {Home (http://developer.intel.com/design/motherbd/atx.htm)}. {Teleport (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 {digital 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 Takashi 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]. (2000-07-16) AUP {acceptable use policy} Aurora ["The Aurora Or-Parallel Prolog System", E. Lusk et al, Proc 3rd Intl Conf on Fifth Generation Comp Systems, pp. 819-830, ICOT, A-W 1988]. Austin Kyoto Common Lisp (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. (2001-03-16) authoring Creating a {hypertext} or {hypermedia} document. (1994-11-07) autobaud {automatic baud rate detection} autobogotiphobia {bogotify} AutoCAD A {CAD} {software} package for mechanical engineering, marketed by {Autodesk, Inc.} (1994-11-09) Autocode 1. The {assembly language} accepted by {AUTOCODER}. 2. A generic term for symbolic {assembly language}. Versions of Autocode were developed for {Ferranti} {Atlas}, {Titan}, {Mercury} and {Pegasus} and {IBM 702} and {IBM 705}. (2001-05-14) AUTOCODER Possibly the first primitive {compiler}. AUTOCODER was written by Alick E. Glennie in 1952. It translated symbolic statements into {machine language} for the {Manchester Mark I} computer. Autocoding later came to be a generic term for {assembly language} programming. (1994-11-07) 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 programs}. (1995-03-18) AUTOGRAF A system for describing {bar charts}. ["User's Manual for AUTOGRAF", Cambridge Computer Assoc, Dec 1972]. (2001-05-14) AUTOGRP {AUTOmated GRouPing system} Auto Idle A facility provided by some {Intel} {clock doubled} {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. E.g. "The C-INTERCAL compiler generates C, then automagically invokes {cc} to produce an executable." See {magic}. [{Jargon File}] (2001-05-18) automata {automaton} automata theory {automaton} Automated Engineering Design (AED) (Or "ALGOL Extended for Design") A systems language for the {IBM 7090} and {IBM 360} developed at {MIT} System Laboratory ca. 1965 by a team led by Douglas T. Ross (now at {Softech}). AED is an extension of {ALGOL 60} with {record}s ("plexes"), pointers, and {dynamic allocation}. {DYNAMO II} was written in AED, as was the first {BCPL} {compiler}. Versions: AED-0, AED-1, AED-JR. ["The Automated Engineering Design (AED) Approach to Generalized Computer-Aided Design", D.T. Ross, Proc ACM 22nd Natl Conf, 1967]. [Sammet 1969 and 1978]. (1995-03-26) AUTOmated GRouPing system (AUTOGRP) An interactive statistical analysis system, an extension of {CML}. ["AUTOGRP: An Interactive Computer System for the Analysis of Health Care Data", R.E. Mills et al, Medical Care 14(7), Jul 1976]. (1994-11-07) Automated Retroactive Minimal Moderation (ARMM) A {Usenet} robot created by Dick Depew of Munroe Falls, Ohio. ARMM was intended to automatically cancel posts from anonymous-posting sites. Unfortunately, the robot's recogniser for anonymous postings triggered on its own automatically-generated control messages! Transformed by this stroke of programming ineptitude into a monster of Frankensteinian proportions, it broke loose on the night of 1993-03-31 and proceeded to {spam} {news:news.admin.policy} with a recursive explosion of over 200 messages. Reactions varied from amusement to outrage. The pathological messages crashed at least one mail system, and upset people paying line charges for their {Usenet} feeds. One poster described the ARMM debacle as "instant {Usenet} history" (also establishing the term {despew}), and it has since been widely cited as a cautionary example of the havoc the combination of good intentions and incompetence can wreak on a network. Compare {Great Worm}; {sorcerer's apprentice mode}. See also {software laser}, {network meltdown}. (1996-01-08) automated testing Software testing assisted with software tools that require no operator input, analysis, or evaluation. ?? (2001-05-20) 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} availability The degree to which a system suffers degradation or interruption in its service to the customer as a consequence of failures of one or more of its parts. One of the components of {RAS}. (2000-08-13) Avalon/C++ 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}. [{Jargon File}] (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} AWG {American Wire Gauge} 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}. [{Jargon File}] (1995-10-06) AWT {Abstract Window 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://diamond.idbsu.edu/~holmes/holmes/nf.html)} ("New Foundations"), a theory developed by Willard Van Orman Quine, places a very different restriction on comprehension: it only works when the formula describing the membership condition for your putative set is "stratified", which means that it could be made to make sense if you worked in a system where every set had a level attached to it, so that a level-n set could only be a member of sets of level n+1. (This doesn't mean that there are actually levels attached to sets in NF). NF is very different from ZF; for instance, in NF the universe is a set (which it isn't in ZF, because the whole point of ZF is that it forbids sets that are "too large"), and it can be proved that the {Axiom of Choice} is false in NF! ML ("Modern Logic") is to NF as NBG is to ZF. (Its name derives from the title of the book in which Quine introduced an early, defective, form of it). It is stronger than ZF (it can prove things that ZF can't), but if NF is consistent then ML is too. (2001-02-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 sets} of sets if they are generated in some regular way. However, there are some infinite sets for which the construction or specification of such a choice function would never end because we would have to consider an infinite number of separate cases. For example, if we express the {real number} line R as the union of many "copies" of the {rational numbers}, Q, namely Q, Q+a, Q+b, and infinitely (in fact uncountably) many more, where a, b, etc. are {irrational numbers} no two of which differ by a rational, and Q+a == {q+a : q in Q} we cannot pick an element of each of these "copies" without AC. An example of the use of AC is the theorem which states that the {countable} union of countable sets is countable. I.e. if X is countable and every element of X is countable (including the possibility that they're finite), then the sumset of X is countable. 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} B2B {business to business} 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. [{Jargon File}] (1994-11-28) backbone site A key {Usenet}, {electronic mail} and/or {Internet} site; one that processes a large amount of third-party traffic, especially if it is the home site of any of the regional coordinators for the {Usenet} maps. Notable backbone sites as of early 1993 include {uunet} and the mail machines at {Rutgers University}, UC Berkeley, {DEC}'s Western Research Laboratories, {Ohio State University} and the {University of Texas}. Compare {rib site}, {leaf site}. [{Jargon File}] (1994-11-28) back door (Or "{trap door}", "{wormhole}"). A hole in the security of a system deliberately left in place by designers or maintainers. The motivation for such holes is not always sinister; some {operating system}s, for example, come out of the box with privileged accounts intended for use by field service technicians or the vendor's maintenance programmers. See also {iron box}, {cracker}, {worm}, {logic bomb}. Historically, back doors have often lurked in systems longer than anyone expected or planned, and a few have become widely known. The infamous {RTM} worm of late 1988, for example, used a back door in the {BSD} Unix "sendmail(8)" utility. {Ken Thompson}'s 1983 Turing Award lecture to the {ACM} revealed the existence of a back door in early {Unix} versions that may have qualified as the most fiendishly clever security hack of all time. The C compiler contained code that would recognise when the "login" command was being recompiled and insert some code recognizing a password chosen by Thompson, giving him entry to the system whether or not an account had been created for him. Normally such a back door could be removed by removing it from the source code for the compiler and recompiling the compiler. But to recompile the compiler, you have to *use* the compiler - so Thompson also arranged that the compiler would *recognise when it was compiling a version of itself*, and insert into the recompiled compiler the code to insert into the recompiled "login" the code to allow Thompson entry - and, of course, the code to recognise itself and do the whole thing again the next time around! And having done this once, he was then able to recompile the compiler from the original sources; the hack perpetuated itself invisibly, leaving the back door in place and active but with no trace in the sources. The talk that revealed this truly moby hack was published as ["Reflections on Trusting Trust", "Communications of the ACM 27", 8 (August 1984), pp. 761--763]. [{Jargon File}] (1995-04-25) back-end 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} developed by H. Emmelmann et al at GMD, University Karlsruhe, Germany. Its input language is Back End Generator Language (BEGL). {(ftp://gatekeeper.dec.com/pub/gmd/cocktail/beg)}. ["BEG - A Generator for Efficient Back Ends", H. Emmelmann et al, SIGPLAN Notices 24(7):227-237 (Jul 1989)]. ["BEG - A Back End Generator - User Manual", H. Emmelmann, GMD, U Karlsruhe, 1990]. [Summary?] (2000-12-16) Back End Generator Language {Back End Generator} backgammon See {bignum}, {moby}, {pseudoprime}. [{Jargon File}] background 1. 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 1. Computer memory, usually {magnetic disks}, storing data and programs. Sections of this information can then be copied into the main memory ({RAM}) for processing. Backing store is cheaper but RAM is faster. Such a hierarchy of memory devices allows a trade-off between performance and cost. 2. Character storage in memory or on disk, as opposed to displayed or printed characters. This distinction is important where the visual ordering of characters differs from the order in which they are stored, e.g. bidirectional or non-spacing layout. In a {Unicode} encoding, text is stored in sequential order in the backing store. Logical or backing store order corresponds to the order in which text is typed on the keyboard (after corrections such as insertions, deletions, and overtyping). A text rendering process converts Unicode text in the backing store to readable text. ["The Unicode Standard: Worldwide Character Encoding", Version 1.0, Vol. 1. Addison-Wesley, 1991]. (2001-02-25) back link 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}. Latest version: 4.5, as of 2000-12-16. {Home (http://www.microsoft.com/backofficeserver/)}. (2000-12-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. Backslash is used to separate components in {MS-DOS} {pathnames}, and to introduce special character sequence in {C} and {Unix} strings, e.g. "\n" for newline. (2000-02-21) backtick {back quote} backtracking 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}. [{Jargon File}] (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}. [{Jargon File}] 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. [{Jargon File}] bag on the side An extension to an established hack that is supposed to add some functionality to the original. Usually derogatory, implying that the original was being overextended and should have been thrown away, and the new product is ugly, inelegant, or bloated. Also "to hang a bag on the side [of]". "C++? That's just a bag on the side of C." "They want me to hang a bag on the side of the accounting system." BAL {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 An optimisation of a {tree} which aims to keep equal numbers of items on each {subtree} of each node so as to minimise the maximum path from the root to any {leaf node}. As items are inserted and deleted, the tree is restructured to keep the nodes balanced and the search paths uniform. Such an {algorithm} is appropriate where the overheads of the reorganisation on update are outweighed by the benefits of faster search. A {B-tree} is a kind of {balanced tree} that can have more than two subtrees at each node (i.e. one that is not restricted to being a {binary tree}). (2000-01-10) BALGOL {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}. [{Jargon File}] 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}. Metric is induced by the norm: d(x,y) = ||x-y||. Completeness means that every {Cauchy sequence} converges to an element of the space. All finite-dimensional {real} and {complex} normed vector spaces are complete and thus are are Banach spaces. Using absolute value for the norm, the real numbers are a Banach space whereas the rationals are not. This is because there are sequences of rationals that converges to irrationals. Several theorems hold only in Banach spaces, e.g. the {Banach inverse mapping theorem}. All finite-dimensional real and complex vector spaces are Banach spaces. {Hilbert spaces}, spaces of {integrable functions}, and spaces of {absolutely convergent series} are examples of infinite-dimensional Banach spaces. Applications include {wavelets}, {signal processing}, and radar. [Robert E. Megginson, "An Introduction to Banach Space Theory", Graduate Texts in Mathematics, 183, Springer Verlag, September 1998]. (2000-03-10) Banach-Tarski paradox It is possible to cut a solid ball into finitely many pieces (actually about half a dozen), and then put the pieces together again to get two solid balls, each the same size as the original. This {paradox} is a consequence of the {Axiom of Choice}. (1995-03-29) banana label The labels often used on the sides of {macrotape} reels, so called because they are shaped roughly like blunt-ended bananas. This term, like macrotapes themselves, is still current but visibly headed for obsolescence. [{Jargon File}] banana problem (From the story of the little girl who said "I know how to spell "banana", but I don't know when to stop"). Not knowing where or when to bring a production to a close (compare {fencepost error}). One may say "there is a banana problem" of an algorithm with poorly defined or incorrect termination conditions, or in discussing the evolution of a design that may be succumbing to featuritis (see also {creeping elegance}, {creeping featuritis}). See item 176 under {HAKMEM}, which describes a banana problem in a {Dissociated Press} implementation. Also, see {one-banana problem} for a superficially similar but unrelated usage. (1995-01-31) bandwidth The difference between the highest and lowest frequencies of a transmission channel (the width of its allocated band of frequencies). The term is often used erroneously to mean {data rate} or capacity - the amount of {data} that is, or can be, sent through a given communications circuit per second. [How is data capacity related to bandwidth?] [{Jargon File}] (2001-04-24) bang 1. A common spoken name for "!" (ASCII 33), especially when used in pronouncing a {bang path} in spoken hackish. In {elder days} this was considered a {CMU}ish usage, with {MIT} and {Stanford} hackers preferring {excl} or {shriek}; but the spread of {Unix} has carried "bang" with it (especially via the term {bang path}) and it is now certainly the most common spoken name for "!". Note that it is used exclusively for non-emphatic written "!"; one would not say "Congratulations bang" (except possibly for humorous purposes), but if one wanted to specify the exact characters "foo!" one would speak "Eff oh oh bang". See {pling}, {shriek}, {ASCII}. 2. An exclamation signifying roughly "I have achieved enlightenment!", or "The dynamite has cleared out my brain!" Often used to acknowledge that one has perpetrated a {thinko} immediately after one has been called on it. [{Jargon File}] (1995-01-31) bang on (Or "pound on"). To stress-test a piece of hardware or software: "I banged on the new version of the simulator all day yesterday and it didn't crash once. I guess it is ready for release." [{Jargon File}] bang path 1. 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}. [{Jargon File}] (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) BAPI {Business Application Programming Interface} 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}. [{Jargon File}] (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. [{Jargon File}] barf /barf/ [mainstream slang for "vomit"] 1. Term of disgust. This is the closest hackish equivalent of the Val\-speak "gag me with a spoon". (Like, euwww!) See {bletch}. 2. To say "Barf!" or emit some similar expression of disgust. "I showed him my latest hack and he barfed" means only that he complained about it, not that he literally vomited. 3. To fail to work because of unacceptable input, perhaps with a suitable error message, perhaps not. Examples: "The division operation barfs if you try to divide by 0." (That is, the division operation checks for an attempt to divide by zero, and if one is encountered it causes the operation to fail in some unspecified, but generally obvious, manner.) "The text editor barfs if you try to read in a new file before writing out the old one". See {choke}, {gag}. In Commonwealth Hackish, "barf" is generally replaced by "puke" or "vom". {barf} is sometimes also used as a {metasyntactic variable}, like {foo} or {bar}. (1996-02-26) barfmail Multiple {bounce messages} accumulating to the level of serious annoyance, or worse. The sort of thing that happens when an inter-network {mail gateway} goes down or misbehaves. [{Jargon File}] (1996-01-05) barfulation /bar`fyoo-lay'sh*n/ Variation of {barf} used around the Stanford area. An exclamation, expressing disgust. On seeing some particularly bad code one might exclaim, "Barfulation! Who wrote this, Quux?" [{Jargon File}] barfulous /bar'fyoo-l*s/ (Or "barfucious", /bar-fyoo-sh*s/) Said of something that would make anyone barf, if only for aesthetic reasons. (1995-02-22) barney In Commonwealth hackish, "barney" is to {fred} as {bar} is to {foo}. That is, people who commonly use "fred" as their first {metasyntactic variable} will often use "barney" second. The reference is, of course, to Fred Flintstone and Barney Rubble in the Flintstones cartoons. [{Jargon File}] (1994-11-28) Baroque An early {logic programming} language written by Boyer and Moore in 1972. ["Computational Logic: Structure Sharing and Proof of program Properties", J. Moore, DCL Memo 67, U Edinburgh 1974]. [{Jargon File}] (1995-02-22) baroque Feature-encrusted; complex; gaudy; verging on excessive. Said of hardware or (especially) software designs, this has many of the connotations of {elephantine} or monstrosity but is less extreme and not pejorative in itself. "{Metafont} even has features to introduce random variations to its letterform output. Now *that* is baroque!" See also {rococo}. [{Jargon File}] (1995-02-22) barrel shifter 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 of {UCSB}. The latest version is 1.14.1. It includes a {yacc} parser, the interpreter and documentation. {(ftp://ftp.gnu.org/bash-1.14.1.tar.gz)} or from a {GNU archive site}. E-mail: . {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. See also {ANSI Minimal BASIC}, {bournebasic}, {bwBASIC}, {ubasic}. [{Jargon File}] (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}. [{Jargon File}] 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. [{Jargon File}] (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)." [{Jargon File}] 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) BDC {Backup Domain Controller} BDL {Block Diagram Compiler} 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}. [{Jargon File}] 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}. [{Jargon File}] \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. [{Jargon File}] 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)}. [{Jargon File}] (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) Bentley Systems, Inc. The company that sells {MicroStation}. Address: Exton, PA, USA. {Home (http://www.bentley.com/)}. (2001-05-18) 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 1. {Basic Encoding Rules}. 2. {Bit Error Rate}. (2001-05-14) 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}, or {Macintosh}. It doesn't do anything fancy about graphics and only allows one {turtle}. Version: 4.6, as of 2000-03-21. {MswLogo} is a {Microsoft Windows} {front end}. {(ftp://anarres.cs.berkeley.edu/pub/ucblogo)}. (2000-03-28) Berkeley Network (B-NET) Top level {Unix} {Ethernet} software developed at the {University of California at Berkeley}. There are no formal specifications but UCB's {4.2BSD} {Unix} implementation on the {VAX} is the de facto standard. Distributed by {Unisoft}. Includes net.o driver routines for specific hardware, {pseudo 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}. [{Jargon File}] (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} Berkeley Yacc (byacc, previously Zeus, then Zoo) Probably the best variant of the {Yacc} {parser generator}. Written by Robert Corbett . Latest version: 1.9, as of 2000-06-09. {(ftp://ftp.cs.berkeley.edu/pub/4bsd/byacc.1.9.tar.Z)}. (2000-07-16) berklix /berk'liks/ (From {Berkeley Unix}) {Berkeley 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". [{Jargon File}] (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 principle}. (1997-04-15) Bernoulli principle (Or "air foil principle", after Swiss mathematician Daniel Bernoulli, 1700-1782) The law that pressure in a fluid decreases with the rate of flow. It has been applied to a class of {hard disk} drives. See {Bernoulli Box}. (1997-04-15) Bernstein condition Processes cannot execute in parallel if one effects values used by the other. Nor can they execute in parallel if any subsequent process uses data effected by both, i.e. whose value might depend on the order of execution. (1995-02-23) BERR {bus error} Bertrand (Named after the British mathematician Bertrand Russell (1872-1970)). Wm. Leler. Rule-based specification language based on augmented term rewriting. Used to implement constraint languages. The user must explicitly specify the tree-search and the constraint propagation. {(ftp://nexus.yorku.ca/pub/scheme/scm/bevan.shar)} ["Constraint Programming Languages - Their Specification and Generation", W. Leler, A-W 1988, ISBN 0-201-06243-7]. Bertrand Meyer The author of the {Eiffel} Language and many articles on {object-oriented} software techniques. (1995-03-01) Bertrand Russell (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. [{Jargon File}] (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]. [{Jargon File}] (1995-10-31) beta /bay't*/, /be't*/ or (Commonwealth) /bee't*/ See {beta conversion}, {beta test}. [{Jargon File}] beta abstraction [{lambda-calculus}] The conversion of an expression to an {application} of a {lambda abstraction} to an argument expression. Some subterm of the original expression becomes the argument of the abstraction and the rest becomes its body. E.g. 4+1 --> (\ x . x+1) 4 The opposite of beta abstraction is {beta reduction}. These are the two kinds of {beta conversion}. beta conversion 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) bgh Be Good Humans. (2001-03-28) 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}. [{Jargon File}] (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] [{Jargon File}] (1997-09-22) biff /bif/ To notify someone of incoming mail. From the {BSD} utility "biff(1)", which was in turn named after a friendly golden Labrador who used to chase frisbees in the halls at UCB while {4.2BSD} was in development (it had a well-known habit of barking whenever the mailman came). No relation to {BIFF}. [{Jargon File}] \big 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. fred@doc.acme.ac.uk). In the United Kingdom the {Joint Networking Team} decided to do it the other way round (e.g. me@uk.ac.wigan.cs) before the {Internet} {domain} standard was established. Most {gateway sites} required {ad-hockery} in their {mailers} to handle this. By July 1994 this parochial idiosyncracy was on the way out and mailers started to reject big-endian addresses. By about 1996, people would look at you strangely if you suggested such a bizarre thing might ever have existed. [{Jargon File}] (1998-08-09) Big Gray Wall What faces a {VMS} user searching for documentation. A full VMS kit comes on a pallet, the documentation taking up around 15 feet of shelf space before the addition of layered products such as {compiler}s, {database}s, multi-vendor networking, and programming tools. Recent (since VMS version 5) DEC documentation comes with grey binders; under VMS version 4 the binders were orange and under version 3 they were blue. Often contracted to "Gray Wall". [{Jargon File}] (1995-03-07) big iron (Or "heavy metal [Cambridge]) Large, expensive, ultra-fast computers. Used generally of {number crunching} {supercomputers} such as {Cray}s, but can include more conventional big commercial {IBM}ish {mainframes}. The term implies approval, in contrast to "{dinosaur}". [{Jargon File}] (2000-11-09) BIG-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. [{Jargon File}] (1996-06-27) bigot A person who is religiously attached to a particular computer, language, operating system, editor, or other tool (see {religious issues}). Usually found with a specifier; thus, "Cray bigot", "ITS bigot", "APL bigot", "VMS bigot", "Berkeley bigot". Real bigots can be distinguished from mere partisans or zealots by the fact that they refuse to learn alternatives even when the march of time and/or technology is threatening to obsolete the favoured tool. It is truly said "You can tell a bigot, but you can't tell him much." Compare {weenie}. [{Jargon File}] Big Red Switch [IBM] The power switch on a computer, especially the "Emergency Pull" switch on an IBM {mainframe} or the power switch on an IBM PC where it really is large and red. "This !@%$% {bitty box} is hung again; time to hit the Big Red Switch." Sources at IBM report that, in tune with the company's passion for {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. [{Jargon File}] (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. For a general bijection f from the set A to the set B: f'(f(a)) = a where a is in A and f(f'(b)) = b where b is in B. A and B could be disjoint sets. See also {injection}, {surjection}, {isomorphism}, {permutation}. (2001-05-10) Bill Gates 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, packed decimal) A number representation where a number is expressed as a sequence of decimal digits and then each decimal digit is encoded as a four-bit binary number (a {nibble}). E.g. decimal 92 would be encoded as the eight-bit sequence 1001 0010. In some cases, the right-most nibble contains the sign (positive or negative). It is easier to convert decimal numbers to and from BCD than binary and, though BCD is often converted to binary for arithmetic processing, it is possible to build {hardware} that operates directly on BCD. [Do calculators use BCD?] (2001-01-27) Binary Compatibility Standard (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 package An {archive} file that contains all files and directories that must be installed in order to make a working installation of the program(s) included in the package, and the {maintainer scripts} necessary for the installation. A binary package is usually specific to a certain {platform}, in contrast to a {source package}. (2001-01-27) binary search 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}, {Sun-3}; {IBM RS6000}; {HP PA-RISC} (two variants); {Intel 80386}, {Intel 486}/{Linux}, {MS-DOS}, {Microsoft Windows 3.1} (with DOS-extender {go32} v1.10). {Multi-BinProlog} is a {multi-threaded} {Linda}-style parallel extension to BinProlog for {Solaris} 2.3. {(ftp://clement.info.umoncton.ca/BinProlog/)} E-mail: Paul Tarau . (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}. Bison runs under {Unix} and on {Atari} computers. It was written by Robert Corbett. Latest version: 1.28, as of 2000-05-22. As of version 1.24, Bison will no longer apply the {GNU} {General Public License} to your code. You can use the output files without restriction. {FTP GNU.org (ftp://ftp.gnu.org/gnu/bison/)} or your nearest {GNU archive site}. E-mail: . {Bison++} is a version which produces {C++} output. (2000-07-05) 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}. [{Jargon File}] (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}. [{Jargon File}] bit bashing (Also "bit diddling" or {bit twiddling}). Any of several kinds of low-level programming characterised by manipulation of {bit}, {flag}, {nibble}, and other smaller-than-character-sized pieces of data. These include low-level device control, encryption algorithms, checksum and error-correcting codes, hash functions, some flavours of graphics programming (see {bitblt}), and assembler/compiler code generation. May connote either tedium or a real technical challenge (more usually the former). "The command decoding for the new tape driver looks pretty solid but the bit-bashing for the control registers still has bugs." See also {bit bang}, {mode bit}. bitblt /bit'blit/ [{BLT}] 1. Any of a family of closely related algorithms for moving and copying rectangles of bits between main and display memory on a {bit-mapped} device, or between two areas of either main or display memory (the requirement to do the {Right Thing} in the case of overlapping source and destination rectangles is what makes BitBlt tricky). 2. {blit}, {BLT}. [{Jargon File}] bit bucket 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}. [{Jargon File}] (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. [{Jargon File}] (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-robbing {in-band signalling} 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}. [{Jargon File}] (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 the {PSTN} was 33.6 kbps, rising to 56 kbps in 1997. (2000-07-16) 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. [{Jargon File}] bitty box (Or "calculator") /bit'ee boks/ A computer sufficiently small, primitive, or incapable as to cause a hacker acute claustrophobia at the thought of developing software on or for it. The term is especially used of small, obsolescent, {single-tasking}-only {personal computers} such as the {Atari 800}, {Osborne}, {Sinclair}, {VIC-20}, {TRS-80} or {IBM PC}, but the term is a general pejorative opposite of "real computer" (see {Get a real computer!}). See also {mess-dos}, {toaster}, {toy}. (1994-11-29) bitwise A bitwise operator treats its operands as a {vector} of {bit}s rather than a single number. {Boolean} bitwise operators combine bit N of each operand using a {Boolean} function ({NOT}, {AND}, {OR}, {XOR}) to produce bit N of the result. For example, a bitwise AND operator ("&" in {C}) would evaluate 13 & 9 as (binary) 1101 & 1001 = 1001 = 9, whereas, the logical AND, ({C} "&&") would evaluate 13 && 9 as TRUE && TRUE = TRUE = 1. In some languages, e.g. {Acorn}'s {BASIC V}, the same operators are used for both bitwise and logical operations. This usually works except when applying NOT to a value x which is neither 0 (false) nor -1 (true), in which case both x and (NOT x) will be non-zero and thus treated as TRUE. Other operations at the bit level, which are not normally described as "bitwise" include shift and rotate. (1995-05-12) bitwise complement The bitwise complement of a {bit field} is a bit field of the same length but with each zero changed to a one and vice versa. This is the same as the {ones complement} of a binary integer. (1994-11-14) bixie /bik'see/ Variant {emoticon}s used on {Byte Information eXchange}. The {smiley} bixie is <@_@>, apparently intending to represent two cartoon eyes and a mouth. A few others have been reported. [{Jargon File}] (1994-11-29) bj The {country code} for Benin. (1999-01-27) Bjarne Stroustrup The father of {C++} and author of the C++ {bible}. ["The C++ Programming Language", Bjarne Stroustrup, Addison-Wesley, 1986]. [Details?] (2000-05-12) BJC4000 A colour {bubble jet} printer from {Canon}. Released in September 1994. It features 720 x 360 dots per inch in black and white mode and 360 x 360 in colour. It has two cartridges: one for black and one for the three primary colours so it prints true black when printing in colour. (1994-11-29) black art A collection of arcane, unpublished, and (by implication) mostly ad-hoc techniques developed for a particular application or systems area (compare {black magic}). VLSI design and compiler code optimisation were (in their beginnings) considered classic examples of black art; as theory developed they became {deep magic}, and once standard textbooks had been written, became merely {heavy wizardry}. The huge proliferation of formal and informal channels for spreading around new computer-related technologies during the last twenty years has made both the term "black art" and what it describes less common than formerly. See also {voodoo programming}. [{Jargon File}] black box An {abstraction} of a device or system in which only its externally visible behaviour is considered and not its implementation or "inner workings". See also {functional testing}. (1997-07-03) black-box testing {functional testing} Black Data Processing Associates (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}. [{Jargon File}] black magic (Or "{FM}") A technique that works, though nobody really understands why. More obscure than {voodoo programming}, which may be done by {cookbook}. Compare {black art}, {deep magic}, and {magic number}. (2001-04-30) blargh /blarg/ [MIT] The opposite of {ping}. An exclamation indicating that one has absorbed or is emitting a quantum of unhappiness. Less common than {ping}. [{Jargon File}] blast 1. {BLT}, used especially for large data sends over a network or comm line. Opposite of {snarf}. Usage: uncommon. The variant "blat" has been reported. 2. [HP/Apollo] Synonymous with {nuke}. Sometimes the message "Unable to kill all processes. Blast them (y/n)?" would appear in the command window upon logout. blat 1. {blast}. 2. See {thud}. [{Jargon File}] BLAZE A {single assignment} language for {parallel processing}. ["The BLAZE Language: A Parallel Language for Scientific Programming", P. Mehrotra 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. [{Jargon File}] 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}. [{Jargon File}] 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). [{Jargon File}] (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}). [{Jargon File}] (1996-04-30) blivet /bliv'*t/ [allegedly from a World War II military term meaning "ten pounds of manure in a five-pound bag"] 1. An intractable problem. 2. A crucial piece of hardware that can't be fixed or replaced if it breaks. 3. A tool that has been hacked over by so many incompetent programmers that it has become an unmaintainable tissue of hacks. 4. An out-of-control but unkillable development effort. 5. An embarrassing bug that pops up during a customer demo. 6. In the subjargon of computer security specialists, a denial-of-service attack performed by hogging limited resources that have no access controls (for example, shared spool space on a multi-user system). This term has other meanings in other technical cultures; among experimental physicists and hardware engineers of various kinds it seems to mean any random object of unknown purpose (similar to hackish use of {frob}). It has also been used to describe an amusing trick-the-eye drawing resembling a three-pronged fork that appears to depict a three-dimensional object until one realises that the parts fit together in an impossible way. [{Jargon File}] bloat {software bloat} bloatware {Software} suffering from {software bloat}. (1995-10-14) BLOB 1. {binary large object}. 2. {blitter object}. [{Jargon File}] block 1. A unit of data or memory, often, but not exclusively, on a {magnetic disk} or {magnetic tape}. Compare {record}, {sector}. 2. To delay or sit idle while waiting for something. Compare {busy-wait}. (2000-07-17) Block Diagram Compiler (BDL) A {block diagram} simulation tool, with associated language. ["A Software Environment for Digital Signal-Processing Simulations," D.H. Johnson & R.E. Vaughan, Circuits Systems and Signal Processing 6(1):31-43, 1987]. (2000-07-17) blocked records 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 Redundancy Check {Longitudinal Redundancy Check} Block Started by Symbol (BSS) The uninitialised data segment produced by Unix linkers. The other segments are the "text" segment which contains the program code and the "data" segment contains initialised data. Objects in the bss segment have only a name and a size but no value. block transfer computations [UK television series "Dr. Who"] Computations so fiendishly subtle and complex that they could not be performed by machines. Used to refer to any task that should be expressible as an {algorithm} in theory, but isn't. [{Jargon File}] 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. [{Jargon File}] (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}. [{Jargon File}] (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}. [{Jargon File}] (1994-11-29) blow past To {blow out} despite a safeguard. "The server blew past the 5K reserve buffer." [{Jargon File}] (1994-11-29) blow up 1. Of a scientific computation: to become unstable. It suggests that the computation is diverging so rapidly that it will soon overflow or at least go {nonlinear}. 2. {blow out}. [{Jargon File}] BLOX A {visual language}. BLT 1. /B-L-T/, /bl*t/ or (rarely) /belt/ Synonym for {blit}. This is the original form of {blit} and the ancestor of {bitblt}. It refers to any large bit-field copy or move operation (one resource-intensive memory-shuffling operation done on pre-paged versions of {ITS}, {WAITS} and {TOPS-10} was sardonically referred to as "The Big BLT"). The jargon usage has outlasted the {PDP-10} BLock Transfer instruction from which {BLT} derives; nowadays, the {assembly language} {mnemonic} {BLT} almost always means "Branch if Less Than zero". 2. bacon, lettuce and tomato (sandwich). [{Jargon File}] Blue A language proposed by Softech to meet the {DoD} {Ironman} requirements which led to {Ada}. ["On the BLUE Language Submitted to the DoD", E.W. Dijkstra, SIGPLAN Notices 13(10):10-15 (Oct 1978)]. Blue Book 1. 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}. [{Jargon File}] (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". [{Jargon File}] 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) Bluetooth A specification for short-range radio links between mobile computers, mobile phones, digital cameras, and other portable devices. {Home (http://www.bluetooth.com)}. (2001-03-16) blue wire (IBM) Patch wires added to circuit boards at the factory to correct design or fabrication problems. These may be necessary if there hasn't been time to design and qualify another board version. Compare {purple wire}, {red wire}, {yellow wire}. [{Jargon File}] (1994-11-29) blurgle /bler'gl/ [Great Britain] Spoken {metasyntactic variable}, to indicate some text that is obvious from context, or which is already known. If several words are to be replaced, blurgle may well be doubled or trebled. "To look for something in several files use "{grep} string blurgle blurgle"." In each case, "blurgle blurgle" would be understood to be replaced by the file you wished to search. Compare {mumble}. [{Jargon File}] bm 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. [{Jargon File}] BNR Pascal ["Remote Rendezvous", N. Gammage et al, Soft Prac & Exp 17(10):741-755 (Oct 1987)]. (1994-12-21) BNR Prolog A {constraint logic} language. [Details?] (1994-12-21) bo The {country code} for Bolivia. (1999-01-27) boa [IBM] Any one of the fat cables that lurk under the floor in a {dinosaur pen}. Possibly so called because they display a ferocious life of their own when you try to lay them straight and flat after they have been coiled for some time. It is rumored within IBM that channel cables for the 370 are limited to 200 feet because beyond that length the boas get dangerous --- and it is worth noting that one of the major cable makers uses the trademark "Anaconda". [{Jargon File}] board 1. In-context synonym for {bboard}; sometimes used even for {Usenet} newsgroups. 2. An electronic circuit board. boat anchor 1. Like {doorstop} but more severe; implies that the offending hardware is irreversibly dead or useless. "That was a working motherboard once. One lightning strike later, instant boat anchor!" 2. A person who just takes up space. 3. Obsolete but still working hardware, especially when used of an old S100-bus hobbyist system; originally a term of annoyance, but became more and more affectionate as the hardware became more and more obsolete. [{Jargon File}] Bob 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. [{Jargon File}] 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}. [{Jargon File}] (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. [{Jargon File}] bogon filter /boh'gon fil'tr/ Any device, software or hardware, that limits or suppresses the flow and/or emission of bogons. "Engineering hacked a bogon filter between the {Cray} and the {VAXen}, and now we're getting fewer dropped packets." See also {bogosity}, {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}. [{Jargon File}] 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"/ (Or "stupid-sort") The archetypical perversely awful {algorithm} (as opposed to {bubble sort}, which is merely the generic *bad* algorithm). Bogo-sort is equivalent to repeatedly throwing a deck of cards in the air, picking them up at random, and then testing whether they are in order. It serves as a sort of canonical example of awfulness. Looking at a program and seeing a dumb algorithm, one might say "Oh, I see, this program uses bogo-sort." Compare {bogus}, {brute force}, {Lasherism}. {An implementation (http://www.stdout.org/~adam/psort)}. [{Jargon File}] (2001-05-18) 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}. (2001-03-16) 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}. [{Jargon File}] 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}. [{Jargon File}] (1995-02-28) boink /boynk/ [{Usenet}: variously ascribed to the TV series "Cheers" "Moonlighting", and "Soap"] 1. To have sex with; compare {bounce}. (This is mainstream slang.) In Commonwealth hackish the variant "bonk" is more common. 2. After the original Peter Korn "Boinkon" {Usenet} parties, used for almost any net social gathering, e.g. Miniboink, a small boink held by Nancy Gillett in 1988; Minniboink, a Boinkcon in Minnesota in 1989; Humpdayboinks, Wednesday get-togethers held in the San Francisco Bay Area. Compare {@-party}. 3. Variant of "bonk"; see {bonk/oif}. [{Jargon File}] BOLERO {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. [{Jargon File}] (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}. [{Jargon File}] (1996-01-05) bonk/oif /bonk/, /oyf/ In the {MUD} community, it has become traditional to express pique or censure by "bonking" the offending person. Convention holds that one should acknowledge a bonk by saying "oif!" and there is a myth to the effect that failing to do so upsets the cosmic bonk/oif balance, causing much trouble in the universe. Some MUDs have implemented special commands for bonking and oifing. [{Jargon File}] (1998-01-18) Booch method A widely used {object-oriented analysis} and {object-oriented design} method. {(http://www.hsr.ch/div/Booch/BoochReference/)}. [Grady Booch, "Object-oriented Analysis and Design with Applications", 2nd edition. Benjamin Cummings, Redwood City, ISBN 0-8053-5340-2, 1993] (2000-05-23) 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}. [{Jargon File}] (1996-12-03) Bookviewer A hypertext documentation system from Oracle based on Oracle Toolkit. It allows the user to create private links and bookmarks, and to make multimedia annotations. bool {Boolean} Boolean 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}. [{Jargon File}] (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. [{Jargon File}] 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. [{Jargon File}] (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. [{Jargon File}] (1994-11-29) bounce message A notification message returned to the sender by a site unable to relay {e-mail} to the intended recipient or the next link in a {bang path}. Reasons might include a nonexistent or misspelled user name or a {down} relay site. Bounce messages can themselves fail, with occasionally ugly results; see {sorcerer's apprentice mode} and {software laser}. The terms "bounce mail" and "barfmail" are also common. [{Jargon File}] (1994-11-29) boundary scan The use of {scan 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}. [{Jargon File}] (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}. [{Jargon File}] (1997-07-21) boxen /bok'sn/ (By analogy with {VAXen}) A fanciful plural of {box} often encountered in the phrase "Unix boxen", used to describe commodity {Unix} hardware. The connotation is that any two Unix boxen are interchangeable. [{Jargon File}] (1994-11-29) Boxer 1. 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. A {text editor} for {MS-DOS} and {Microsoft Windows}. {Home (http://www.boxersoftware.com/users/dhamel)}. (2001-04-30) 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}. [{Jargon File}] (1994-12-02) Boycott Apple Some time before 1989, {Apple Computer, Inc.} started a lawsuit against {Hewlett-Packard} and {Microsoft}, claiming they had breeched Apple's {copyright} on the {look and feel} of the {Macintosh user interface}. In December 1989, {Xerox} failed to sue {Apple Computer}, claiming that the software for Apple's {Lisa} computer and {Macintosh} {Finder}, both copyrighted in 1987, were derived from two {Xerox} programs: {Smalltalk}, developed in the mid-1970s and {Star}, copyrighted in 1981. Apple wanted to stop people from writing any program that worked even vaguely like a {Macintosh}. If such {look and feel} lawsuits succeed they could put an end to {free software} that could substitute for commercial software. In the weeks after the suit was filed, {Usenet} reverberated with condemnation for Apple. {GNU} supporters {Richard Stallman}, John Gilmore, and Paul Rubin decided to take action against Apple. Apple's reputation as a force for progress came from having made better computers; but The {League for Programming Freedom} believed that Apple wanted to make all non-Apple computers worse. They therefore campaigned to discourage people from using Apple products or working for Apple or any other company threatening similar obstructionist tactics (e.g. {Lotus} and {Xerox}). Because of this boycott the {Free Software Foundation} for a long time didn't support {Macintosh} {Unix} in their software. In 1995, the LPF and the FSF decided to end the boycott. [Dates? Other events? Why did Xerox's case against Apple fail?] (1995-04-18) bozotic (From Bozo the Clown, a famous circus personality, via "bozo" - a clod, idiot or generally silly person) any form of clown-like or ludicrous behaviour. The word also has echoes of "robotic", so bozotic behaviour is mindless, automaton-like stupidity. [{Jargon File}] (1996-01-05) BPI {bits per inch} bpmake {Aspirin} 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 {run-time 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}. [{Jargon File}] brain-dead Brain-damaged in the extreme. It tends to imply terminal design failure rather than malfunction or simple stupidity. brain dump (The act of telling someone) everything one knows about a particular topic. Typically used when someone is going to let a new party maintain a piece of code. Conceptually analogous to an operating system {core dump} in that it saves a lot of useful {state} before an exit. "You'll have to give me a brain dump on FOOBAR before you start your new job at HackerCorp." At Sun, this is also known as "TOI" (transfer of information). [{Jargon File}] brain fart 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}. [{Jargon File}] Brazil An {operating system} from {Acorn Computers} used on an {ARM} card which could be fitted to an {IBM PC}. There was also an {ARM} second processor for the {BBC Microcomputer} which used Brazil. Never used on the {Archimedes}(?). (1994-12-05) BRB (I will) be right back. (1998-01-18) bread crumbs Debugging statements inserted into a program that emit output or log indicators of the program's {state} to a file so you can see where it dies or pin down the cause of surprising behaviour. The term is probably a reference to the Hansel and Gretel story from the Brothers Grimm; in several variants, a character leaves a trail of bread crumbs so as not to get lost in the woods. [{Jargon File}] breadth first search A graph search {algorithm} which tries all one-step extensions of current paths before trying larger extensions. This requires all current paths to be kept in memory simultaneously, or at least their end points. Opposite of {depth-first search}. See also {best first search}. (1996-01-05) break 1. To cause to be {broken} (in any sense). "Your latest patch to the editor broke the paragraph commands." 2. (Of a program) To stop temporarily, so that it may debugged. The place where it stops is a "{breakpoint}". 3. To send an {EIA-232} break (two character widths of line high) over a {serial line}. 4. [Unix] To strike whatever key currently causes the tty driver to send SIGINT to the current process. Normally, break, delete or {control-C} does this. 5. "break break" may be said to interrupt a conversation (this is an example of verb doubling). This usage comes from radio communications, which in turn probably came from landline telegraph/teleprinter usage, as badly abused in the Citizen's Band craze a few years ago. 6. {pipeline break}. [{Jargon File}] 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. [{Jargon File}] (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. Every network should only have one {root bridge}. See also {gateway}, {router}. (2001-03-04) Bridgetalk A {visual language}. (2001-03-04) 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}. [{Jargon File}] 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}. [{Jargon File}] (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}. [{Jargon File}] (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 to con customers into not committing to an existing product of the competition's. The term is now especially applicable to new {web sites}, web site revisions, and ancillary services such as customer support and product return. Owing to the explosion of {database}-driven, {cookie}-using {dot-coms} (of the sort that can now deduce that you are, in fact, a dog), the term is now also used to describe sites made up of {static HTML} pages that contain not much more than contact info and mission statements. The term suggests that the company is small, irrelevant to the web, local in scope, clueless, broke, just starting out, or some combination thereof. Many new companies without product, funding, or even staff, post brochureware with investor info and press releases to help publicise their ventures. As of December 1999, examples include pop.com and cdradio.com. Small-timers that really have no business on the web such as lawncare companies and divorce laywers inexplicably have brochureware made that stays unchanged for years. [{Jargon File}] (2001-05-10) broken Not working properly (of programs). broken arrow The error code displayed on line 25 of a {IBM 3270} {terminal} (or a {terminal emulator} emulating a 3270) for various kinds of {protocol} violations and "unexpected" error conditions (including connection to a {down} computer). On a PC, simulated with "->/_", with the two centre characters overstruck. "Broken arrow" is also military jargon for an accident involving nuclear weapons. [{Jargon File}] (1995-02-07) broker {object request broker} broket /broh'k*t/ or /broh'ket/ (From broken bracket) Either of the characters "<" or ">" when used as paired enclosing {delimiters} ({angle brackets}). [{Jargon File}] (1997-07-21) Brooks's Law "Adding manpower to a late software project makes it later" - a result of the fact that the expected advantage from splitting work among N programmers is O(N) (that is, proportional to N), but the complexity and communications cost associated with coordinating and then merging their work is O(N^2) (that is, proportional to the square of N). The quote is from Fred Brooks, a manager of {IBM}'s {OS/360} project and author of "{The Mythical Man-Month}". The myth in question has been most tersely expressed as "Programmer time is fungible" and Brooks established conclusively that it is not. Hackers have never forgotten his advice; too often, {management} still does. See also {creationism}, {second-system effect}, {optimism}. [{Jargon File}] (1996-09-17) brouter A device which bridges some {packet}s (i.e. forwards based on {data link layer} information) and routes other packets (i.e. forwards based on {network layer} information). The {bridge}/{route} decision is based on configuration information. Brouwer Fixed-Point Theorem A well-known result in {topology} stating that any {continuous transformation} of an n-dimensional disk must have at least one {fixed point}. [Is this correct?] (2001-03-29) Brown and Sharpe Wire Gauge {American Wire Gauge} brown paper bag bug A programming {bug} that is so stupid that it makes the programmer want to put a brown paper bag over his head. (2001-01-16) browser A program which allows a person to read {hypertext}. The browser gives some means of viewing the contents of {nodes} (or "pages") and of {navigating} from one node to another. {Netscape Navigator}, {NCSA} {Mosaic}, {Lynx}, and {W3} are examples for browsers for the {World-Wide Web}. They act as {clients} to remote {web servers}. (1996-05-31) BRS {Big Red Switch}. This abbreviation is fairly common on-line. [{Jargon File}] BRUIN Brown University Interactive Language. A simple interactive language with {PL/I}-like {syntax}, for {IBM 360}. ["Meeting the Computational Requirements of the University, Brown University Interactive Language", R.G. Munck, Proc 24th ACM Conf, 1969]. (1995-02-14) brute force A primitive programming style in which the programmer relies on the computer's processing power instead of using his own intelligence to simplify the problem, often ignoring problems of scale and applying naive methods suited to small problems directly to large ones. The term can also be used in reference to programming style: brute-force programs are written in a heavy-handed, tedious way, full of repetition and devoid of any elegance or useful abstraction (see also {brute force and ignorance}). The {canonical} example of a brute-force algorithm is associated with the "{travelling salesman problem}" (TSP), a classical {NP-hard} problem: Suppose a person is in, say, Boston, and wishes to drive to N other cities. In what order should the cities be visited in order to minimise the distance travelled? The brute-force method is to simply generate all possible routes and compare the distances; while guaranteed to work and simple to implement, this algorithm is clearly very stupid in that it considers even obviously absurd routes (like going from Boston to Houston via San Francisco and New York, in that order). For very small N it works well, but it rapidly becomes absurdly inefficient when N increases (for N = 15, there are already 1,307,674,368,000 possible routes to consider, and for N = 1000 - well, see {bignum}). Sometimes, unfortunately, there is no better general solution than brute force. See also {NP-complete}. A more simple-minded example of brute-force programming is finding the smallest number in a large list by first using an existing program to sort the list in ascending order, and then picking the first number off the front. Whether brute-force programming should actually be considered stupid or not depends on the context; if the problem is not terribly big, the extra CPU time spent on a brute-force solution may cost less than the programmer time it would take to develop a more "intelligent" algorithm. Additionally, a more intelligent algorithm may imply more long-term complexity cost and bug-chasing than are justified by the speed improvement. When applied to {cryptography}, it is usually known as {brute force attack}. {Ken Thompson}, co-inventor of {Unix}, is reported to have uttered the epigram "When in doubt, use brute force". He probably intended this as a {ha ha only serious}, but the original {Unix} {kernel}'s preference for simple, robust and portable {algorithms} over {brittle} "smart" ones does seem to have been a significant factor in the success of that {operating system}. Like so many other tradeoffs in software design, the choice between brute force and complex, finely-tuned cleverness is often a difficult one that requires both engineering savvy and delicate aesthetic judgment. [{Jargon File}] (1995-02-14) brute force and ignorance (BFI) A popular design technique at many software houses - {brute force} coding unrelieved by any knowledge of how problems have been previously solved in elegant ways. Dogmatic adherence to design methods tends to encourage this sort of thing. Characteristic of early {larval stage} programming; unfortunately, many never outgrow it. Also encountered in the variants BFMI - brute force and massive ignorance, and BFBI - brute force and bloody ignorance. "Gak, they used a {bubble sort}! That's strictly BFI." Compare {bogosity}. [{Jargon File}] (1996-06-12) brute force attack A method of breaking a cipher (that is, to decrypt a specific encrypted text) by trying every possible {key}. The quicker the brute force attack, the weaker the cipher. Feasibility of brute force attack depends on the key length of the cipher, and on the amount of computational power available to the attacker. Brute force attack is impossible against the ciphers with variable-size key, such as a {one-time pad} cipher. {Breaking ciphers with many workstations (http://www.distributed.net/projects.html.en)}. (2000-01-16) BS Backspace, the {mnemonic} for {ASCII} 8. (1996-06-24) bs The {country code} for the Bahamas. (1999-01-27) BS2000 An {operating system} from {SNI} for {mainframes}. {Home (http://www.mch.sni.de.public/bs2000/server.htm)}. (1997-06-13) BSA 1. {Business Software Alliance}. 2. {Bidouilleurs Sans Argent}. (1998-10-26) BSD {Berkeley System Distribution} BSD386 {386BSD} BSDI {Berkeley Software Design, Inc.} BSD/OS {BSDI}'s commercial version of {Berkeley Standard Distribution} {Unix}. BSD/OS is a {POSIX}-compatible, {Unix}-like system for the {80386}, {486}, and {Pentium}. It is based on the {BSD} software from {UCB}, a number of other sources, and components engineered by BSDI. The initial production release of BSD/OS shipped in March, 1993. (1996-01-13) BSD Unix {Berkeley System Distribution} BSI {British Standards Institute} BSL A variant of {IBM}'s {PL/S} systems language. Versions: BSL1, BSL2. (1998-06-15) BSOD {Blue Screen of Death} BSOL {Blue Screen of Life} BSOM {Beats the shit outa me} BSP method A {CASE} method from {IBM}. (1998-02-24) BSRAM {Burst Static Random Access Memory} BSS {Block Started by Symbol} BST British Summer Time. The name for daylight-saving time in the UK {GMT} time zone. (2000-03-28) bt The {country code} for Bhutan. (1999-01-27) BTB {Branch Target Buffer} btoa /B too A/ A {binary} to {ASCII} conversion utility. btoa is a {uuencode} or {base 64} equivalent which addresses some of the problems with the uuencode standard but not as many as the base 64 standard. It avoids problems that some {hosts} have with spaces (e.g. conversion of groups of spaces to tabs) by not including them in its character set, but may still have problems on non-ASCII systems (e.g. {EBCDIC}). btoa is primarily used to transfer {binary files} between systems across connections which are not {eight-bit clean}, e.g. {electronic mail}. btoa takes adjacent sets of four binary {octets} and encodes them as five ASCII {octets} using ASCII characters '!' through to 'u'. Special characters are also used: 'x' marks the beginning or end of the archive; 'z' marks four consecutive zeros and 'y' (version 5.2) four consecutive spaces. Each group of four octets is processed as a 32-bit integer. Call this 'I'. Let 'D' = 85^4. Divide I by D. Call this result 'R'. Make I = I - (R * D) to avoid {overflow} on the next step. Repeat, for values of D = 85^3, 85^2, 85 and 1. At each step, to convert R to the output character add decimal 33 (output octet = R + ASCII value for '!'). Five output octets are produced. btoa provides some integrity checking in the form of a line {checksum}, and facilities for patching corrupted downloads. The {algorithm} used by btoa is more efficient than uuencode or base 64. ASCII files are encoded to about 120% the size of their binary sources. This compares with 135% for uuencode or base 64. {C source (ftp://hpux.csc.liv.ac.uk/hpux/Misc/btoa-5.2/)} (version 5.2 - ~1994). Pre-compiled {MS-DOS} versions are also available. (1997-08-08) B-Toolkit A set of software tools designed to support a rigorous or formal development of software systems using the {B-Method}. The Toolkit also provides a development environment automating the management of all associated files, ensuring that the entire development, including code and documentation, is always in a consistent state. The Toolkit includes: a specification, design and code configuration management system, including integrity and dependency management and source file editing facilities; a set of software specification and design analysis tools, which includes {syntax} checkers, type checkers and a specification animator; a set of verification tools, which includes a proof-obligation generator and automatic and interactive provers; a set of coding tools, which includes a translator, linker, rapid prototyping facilities and a reusable specification/code module library; a documentation tool for automatically producing fully cross-referenced and indexed type-set documents from source files; a re-making tool for automatically re-checking and re-generating specifications, designs, code and documentation after modifications to source files. A normal licence costs 25,000 pounds, academic 6,250 pounds. (1995-03-13) BTOS {Convergent Technologies Operating System} B-tree A multi-way {balanced tree}. The "B" in B-tree has never been officially defined. It could stand for "balanced" or "Bayer", after one of the original designers of the algorithms and structure. A B-tree is _not_ (necessarily?) a "{binary tree}". A B+-tree (as used by {IBM}'s {VSAM}) is a B-tree where the leaves are also linked sequentially, thus allowing both fast {random access} and sequential access to data. [Knuth's Art of Computer Programming]. [Example algorithm?] (2000-01-10) BTRIEVE 1. {BTRIEVE Technologies, Inc.}. 2. A trademark of {BTRIEVE Technologies, Inc.} for their {ISAM} {index file} manager for {IBM PC}s. (1995-03-28) BTRIEVE Technologies, Inc. /bee-treev/ (BTI) A provider of {client-server} {database engines}. BTI was founded by former {Novell, Inc.} employees, including the original developers of the Btrieve database engine. BTI acquired the database product line from Novell in April, 1994. {Home (http://www.btrieve.com/)} Address: Austin, Texas, USA. (1995-12-14) BTRL {British Telecom Research Laboratories}. BTW by the way. BUAF [alt.fan.warlord] Big Ugly ASCII Font. A special form of {ASCII art}. Various programs exist for rendering text strings into block, {bloob}, and pseudo-script fonts in cells between four and six character cells on a side; this is smaller than the letters generated by older {banner} programs. These are sometimes used to render one's name in a {sig block}, and are critically referred to as "BUAF"s. See {warlording}. [{Jargon File}] BUAG [alt.fan.warlord] Big Ugly ASCII Graphic. Pejorative term for ugly {ASCII ART}, especially as found in {sig block}s. For some reason, mutations of the head of Bart Simpson are particularly common in the least imaginative {sig block}s. See {warlording}. bubble memory A storage device built using materials such as gadolinium gallium garnet which are can be magnetised easily in only one direction. A film of these materials can be created so that it is magnetisable in an up-down direction. The magnetic fields tend to join together, some with the north pole facing up, some with the south. When a veritcal magnetic field is imposed on this, the areas in opposite alignment to the field shrink to circles, or 'bubbles'. A bubble can be formed by reversing the field in a small spot, and can be destroyed by increasing the field. Bubble memory is a kind of {non-volatile storage} but {EEPROM}, {Flash Erasable Programmable Read-Only Memory} and ferroelectric technologies, which are also non-volatile, are faster. ["Great Microprocessors of the Past and Present", V 4.0.0, John Bayko , Appendix C] (1995-02-03) bubble sort A sorting technique in which pairs of adjacent values in the list to be sorted are compared and interchanged if they are out of order; thus, list entries "bubble upward" in the list until they bump into one with a lower sort value. Because it is not very good relative to other methods and is the one typically stumbled on by {naive} and untutored programmers, hackers consider it the {canonical} example of a naive algorithm. The canonical example of a really *bad* algorithm is {bogo-sort}. A bubble sort might be used out of ignorance, but any use of bogo-sort could issue only from brain damage or willful perversity. [{Jargon File}] bucky bits /buh'kee bits/ 1. Obsolete. The bits produced by the CONTROL and META shift keys on a SAIL keyboard ({octal} 200 and 400 respectively), resulting in a 9-bit keyboard character set. The MIT AI TV (Knight) keyboards extended this with TOP and separate left and right CONTROL and META keys, resulting in a 12-bit character set; later, LISP Machines added such keys as SUPER, HYPER, and GREEK (see {space-cadet keyboard}). 2. By extension, bits associated with "extra" shift keys on any keyboard, e.g. the ALT on an IBM PC or command and option keys on a Macintosh. It has long been rumored that "bucky bits" were named after Buckminster Fuller during a period when he was consulting at Stanford. Actually, bucky bits were invented by Niklaus Wirth when *he* was at Stanford in 1964--65; he first suggested the idea of an EDIT key to set the 8th bit of an otherwise 7 bit ASCII character. It seems that, unknown to Wirth, certain Stanford hackers had privately nicknamed him "Bucky" after a prominent portion of his dental anatomy, and this nickname transferred to the bit. Bucky-bit commands were used in a number of editors written at Stanford, including most notably TV-EDIT and NLS. The term spread to MIT and CMU early and is now in general use. Ironically, Wirth himself remained unaware of its derivation for nearly 30 years, until {GLS} dug up this history in early 1993! See {double bucky}, {quadruple bucky}. (2001-06-22) buffer 1. An area of memory used for storing messages. Typically, a buffer will have other attributes such as an input pointer (where new data will be written into the buffer), and output pointer (where the next item will be read from) and/or a count of the space used or free. Buffers are used to decouple processes so that the reader and writer may operate at different speeds or on different sized blocks of data. There are many different algorithms for using buffers, e.g. first-in first-out (FIFO or shelf), last-in first-out (LIFO or stack), double buffering (allowing one buffer to be read while the other is being written), cyclic buffer (reading or writing past the end wraps around to the beginning). 2. An electronic device to provide compatibility between two signals, e.g. changing voltage levels or current capability. buffered write-through A variation of {write-through} where the {cache} uses a "write buffer" to hold data being written back to {main memory}. This frees the cache to service read requests while the write is taking place. There is usually only one stage of buffering so subsequent writes must wait until the first is complete. Most accesses are reads so buffered write-through is only useful for very slow main memory. (1998-04-24) buffer overflow What happens when you try to store more data in a {buffer} than it can handle. This may be due to a mismatch in the processing rates of the producing and consuming processes (see {overrun} and {firehose syndrome}), or because the buffer is simply too small to hold all the data that must accumulate before a piece of it can be processed. For example, in a text-processing tool that {crunch}es a line at a time, a short line buffer can result in {lossage} as input from a long line overflows the buffer and overwrites data beyond it. Good defensive programming would check for overflow on each character and stop accepting data when the buffer is full. See also {spam}, {overrun screw}. [{Jargon File}] (1996-05-13) bug An unwanted and unintended property of a program or piece of hardware, especially one that causes it to malfunction. Antonym of {feature}. E.g. "There's a bug in the editor: it writes things out backwards." The identification and removal of bugs in a program is called "{debugging}". Admiral {Grace Hopper} (an early computing pioneer better known for inventing {COBOL}) liked to tell a story in which a technician solved a {glitch} in the {Harvard Mark II machine} by pulling an actual insect out from between the contacts of one of its relays, and she subsequently promulgated {bug} in its hackish sense as a joke about the incident (though, as she was careful to admit, she was not there when it happened). For many years the logbook associated with the incident and the actual bug in question (a moth) sat in a display case at the Naval Surface Warfare Center (NSWC). The entire story, with a picture of the logbook and the moth taped into it, is recorded in the "Annals of the History of Computing", Vol. 3, No. 3 (July 1981), pp. 285--286. The text of the log entry (from September 9, 1947), reads "1545 Relay #70 Panel F (moth) in relay. First actual case of bug being found". This wording establishes that the term was already in use at the time in its current specific sense - and Hopper herself reports that the term "bug" was regularly applied to problems in radar electronics during WWII. Indeed, the use of "bug" to mean an industrial defect was already established in Thomas Edison's time, and a more specific and rather modern use can be found in an electrical handbook from 1896 ("Hawkin's New Catechism of Electricity", Theo. Audel & Co.) which says: "The term "bug" is used to a limited extent to designate any fault or trouble in the connections or working of electric apparatus." It further notes that the term is "said to have originated in {quadruplex} telegraphy and have been transferred to all electric apparatus." The latter observation may explain a common folk etymology of the term; that it came from telephone company usage, in which "bugs in a telephone cable" were blamed for noisy lines. Though this derivation seems to be mistaken, it may well be a distorted memory of a joke first current among *telegraph* operators more than a century ago! Actually, use of "bug" in the general sense of a disruptive event goes back to Shakespeare! In the first edition of Samuel Johnson's dictionary one meaning of "bug" is "A frightful object; a walking spectre"; this is traced to "bugbear", a Welsh term for a variety of mythological monster which (to complete the circle) has recently been reintroduced into the popular lexicon through fantasy {role-playing games}. In any case, in jargon the word almost never refers to insects. Here is a plausible conversation that never actually happened: "There is a bug in this ant farm!" "What do you mean? I don't see any ants in it." "That's the bug." [There has been a widespread myth that the original bug was moved to the Smithsonian, and an earlier version of this entry so asserted. A correspondent who thought to check discovered that the bug was not there. While investigating this in late 1990, your editor discovered that the NSWC still had the bug, but had unsuccessfully tried to get the Smithsonian to accept it - and that the present curator of their History of American Technology Museum didn't know this and agreed that it would make a worthwhile exhibit. It was moved to the Smithsonian in mid-1991, but due to space and money constraints has not yet been exhibited. Thus, the process of investigating the original-computer-bug bug fixed it in an entirely unexpected way, by making the myth true! - ESR] [{Jargon File}] (1999-06-29) bug-compatible Said of a design or revision that has been badly compromised by a requirement to be compatible with {fossil}s or {misfeature}s in other programs or (especially) previous releases of itself. "{MS-DOS} 2.0 used \ as a path separator to be bug-compatible with some cretin's choice of / as an option character in 1.0." [{Jargon File}] bug fix A change to a program or system intended to permanently cure a {bug}. Often a fix for one bug inadvertantly introduces new bugs, hence the need for careful forethought and testing. Compare: {workaround}. (1998-06-25) bug fix release A {release} which introduces no new {features}, but which merely aims to fix bugs in previous releases. All too commonly new bugs are introduced at the same time. (1996-08-04) bug-for-bug compatible Same as {bug-compatible}, with the additional implication that much tedious effort went into ensuring that each (known) bug was replicated. [{Jargon File}] buglix /buhg'liks/ Pejorative term referring to {DEC}'s {ULTRIX} {operating system} in its earlier *severely* buggy versions. Still used to describe ULTRIX, but without nearly so much venom. Compare {AIDX}, {HP-SUX}, {Nominal Semidestructor}, {Telerat}, {sun-stools}. BUGSYS A programming system for {pattern recognition} and preparing animated films, for {IBM 7094} and {IBM 360}. ["BUGSYS: A Programming System for Picture Processing - Not for Debugging", R.A. Ledley et al, CACM 9(2) (Feb 1966)]. (1995-02-14) built-in (Or "primitive") A built-in function or operator is one provided by the lowest level of a language implementation. This usually means it is not possible (or efficient) to express it in the language itself. Typical examples are the basic arithmetic and {Boolean} operators (in {C} syntax: +, -, *, /, %, !, &&, ||), bit manipulation operators (~, &, |, ^) and I/O primitives. Other common functions may be provided in libraries but are not built-in if they are written in the language being implemented. (1995-02-14) Built-in Self Test (BIST) The technique of designing circuits with additional logic which can be used to test proper operation of the primary (functional) logic. (1995-02-14) Bull {Bull Information Systems} bulletin board {bulletin board system} bulletin board system (BBS, bboard /bee'bord/; after a physical piece of board on which people can pin messages written on paper for general consumption - a "physical bboard"). A computer and associated software which typically provides an electronic message database where people can log in and leave messages. Messages are typically split into {topic groups} similar to the {newsgroups} on {Usenet} (which is like a distributed BBS). Any user may submit or read any message in these public areas. Apart from public message areas, a BBS may provide archives of files, personal {electronic mail} and any other services or activities of interest to the bulletin board's system operator (the "{sysop}"). Thousands of local BBSes are in operation throughout the world, typically run by amateurs for fun out of their homes on {MS-DOS} boxes with a single {modem} line each. Although BBSes have traditionally been the domain of hobbyists, an increasing number of BBSes are connected directly to the {Internet}, and many BBSes are currently operated by government, educational, and research institutions. Fans of {Usenet} and {Internet} or the big commercial {time-sharing} bboards such as {CompuServe}, {CIX} and {GEnie} tend to consider local BBSes the low-rent district of the hacker culture, but they serve a valuable function by knitting together lots of hackers and users in the personal-{micro} world who would otherwise be unable to exchange code at all. Use of this term for a {Usenet} newsgroup generally marks one either as a {newbie} fresh in from the BBS world or as a real old-timer predating {Usenet}. (1998-03-24) bulletproof Used of an algorithm or implementation considered extremely {robust}; lossage-resistant; capable of correctly recovering from any imaginable exception condition - a rare and valued quality. Synonym {armor-plated}. [{Jargon File}] Bull Information Systems A multinational I.T. group based in Europe with 21,000 people and operations in more than 85 countries. In 1997, Bull earned revenues of over $4 billion, including over 65% outside of France, its country of origin. The company is ranked as the third largest {systems integrator} in Europe. {Home (http://www.bull.com/)}. (1998-07-02) bum 1. To make highly efficient, either in time or space, often at the expense of clarity. "I managed to bum three more instructions out of that code." "I spent half the night bumming the interrupt code." In {elder days}, {John McCarthy} (inventor of {Lisp}) used to compare some efficiency-obsessed hackers among his students to "ski bums"; thus, optimisation became "program bumming", and eventually just "bumming". 2. To squeeze out excess; to remove something in order to improve whatever it was removed from (without changing function; this distinguishes the process from a {featurectomy}). 3. A small change to an algorithm, program, or hardware device to make it more efficient. "This hardware bum makes the jump instruction faster." Usage: now uncommon, largely superseded by v. {tune} (and {tweak}, {hack}), though none of these exactly capture sense 2. All these uses are rare in Commonwealth hackish, because in the parent dialects of English "bum" is a rude synonym for "buttocks". [{Jargon File}] bump Increment. E.g. {C}'s {++} operator. It is used especially of counter variables, pointers and index dummies in "for", "while", and "do-while" loops. (1994-11-29) burble [Lewis Carroll's "Jabberwocky"] Like {flame}, but connotes that the source is truly clueless and ineffectual (mere flamers can be competent). A term of deep contempt. "There's some guy on the phone burbling about how he got a DISK FULL error and it's all our comm software's fault." This is mainstream slang in some parts of England. [{Jargon File}] Burge's Language Unnamed functional language based on lambda-calculus. Recursive Programming techniques", W.H. Burge, A-W 1975. buried treasure A surprising piece of code found in some program. While usually not wrong, it tends to vary from {crufty} to bletcherous, and has lain undiscovered only because it was functionally correct, however horrible it is. Used sarcastically, because what is found is anything *but* treasure. Buried treasure almost always needs to be dug up and removed. "I just found that the scheduler sorts its queue using {bubble sort}! Buried treasure!" [{Jargon File}] burn-in 1. {screen saver}. 2. {burn-in period}. (1997-11-23) burn-in period 1. A factory test designed to catch systems with {marginal} components before they get out the door; the theory is that burn-in will protect customers by outwaiting the steepest part of the {bathtub curve} (see {infant mortality}). 2. A period of indeterminate length in which a person using a computer is so intensely involved in his project that he forgets basic needs such as food, drink, sleep, etc. Warning: Excessive burn-in can lead to burn-out. See {hack mode}, {larval stage}. [{Jargon File}] Burroughs Corporation A company which merged with {Sperry Univac} to form {Unisys Corporation}. (1994-11-22) Burst EDO {Burst Extended Data Out DRAM} Burst Extended Data Out DRAM (Burst EDO, BEDO) A variant on {EDO DRAM} in which read or write cycles are batched in bursts of four. The bursts wrap around on a four byte boundary which means that only the two least significant bits of the {CAS} address are modified internally to produce each address of the burst sequence. Consequently, burst EDO bus speeds will range from 40MHz to 66MHz, well above the 33MHz bus speeds that can be accomplished using {Fast Page Mode} or EDO DRAM. Burst EDO was introduced sometime before May 1995. (1996-06-25) burst page {banner} Burst Static Random Access Memory (BSRAM) A kind of {SRAM} used primarily for external {Level 2 cache} memory. [How does it work?] (1998-02-24) bus One of the sets of conductors (wires, PCB tracks or connections in an {integrated circuit}) connecting the various {functional units} in a computer. There are busses both within the {CPU} and connecting it to external memory and {peripheral} devices. The data bus, address bus and control signals, despite their names, really constitute a single bus since each is useless without the others. The width of the data bus, i.e. the number of parallel connectors, and its {clock rate} determine its data rate (the number of {bytes} per second which it can carry. This is one of the factors limiting a computer's performance. Most current {microprocessors} have 32-bit busses both internally and externally. 100 or 133 {megahertz} bus clock rates are common. The bus clock is typically slower than the processor clock. Some processors have internal busses which are wider than their external busses (usually twice the width) since the width of the internal bus affects the speed of all operations and has less effect on the overall system cost than the width of the external bus. Various bus designs have been used in the {PC}, including {ISA}, {EISA}, {Micro Channel}, {VL-bus} and {PCI}. Other peripheral busses are NuBus, TURBOchannel, VMEbus, MULTIBUS and STD bus. Some {networks} are implemented as a {bus} at the {physical layer}, e.g. {Ethernet} - a one-bit bus operating at 10 (or later 100) {megabits per second}. The term is almost certainly derived from the electrical engineering term "bus bar" - a substantial, rigid power supply conductor to which several connections are made. This was once written "'bus bar" as it was a contraction of "omnibus bar" - a connection bar "for all", by analogy with the passenger omnibus - a conveyance "for all". {More on derivation (http://www.foldoc.org/pub/omnibus.html)}. (2000-03-20) bus error A fatal failure in the execution of a {machine language} instruction resulting from the {processor} detecting an anomalous condition on its {bus}. Such conditions include invalid address alignment (accessing a multi-byte number at an odd address), accessing a {physical address} that does not correspond to any device, or some other device-specific hardware error. A bus error triggers a processor-level {exception} which {Unix} translates into a "SIGBUS" {signal} which, if not caught, will terminate the current process. (2000-04-04) Bush, Vannevar {Vannevar Bush} Business Application Programming Interface (BAPI) /bap'ee/ A {method} provided by an {SAP} business {object}. Release 4.0 of {SAP AG}'s {R/3} system was completely rewritten using {object-oriented programming}. Everything is an {object}, and the {methods} are called BAPIs. For example if a material object provides a function to check availability, the corresponding SAP business object type "Material" might provide a BAPI called "Material.CheckAvailability". The definitions of SAP business objects and their BAPIs are kept in an SAP business {object repository}. SAP provide {classes} and {libraries} to enable a programming team to build SAP applications that use business objects and BAPIs. Supported environments include {COM} and {Java}. For more background information and a list of available objects and BAPIs visit the {Open BAPI Network (http://www.sap.com/solutions/technology/bapis/index.htm)}. (2000-12-15) Business Process Re-engineering (BPR) Any radical change in the way in which an organisation performs its business activities. BPR involves a fundamental re-think of the business processes followed by a redesign of business activities to enhance all or most of its critical measures - costs, quality of service, staff dynamics, etc. (1999-09-27) Business Software Alliance The BSA was created by {Microsoft} in 1988 in an attempt to combat {software theft}. The alliance includes the majority of leading software publishers including {Novell}, {Symantec}, and {Autodesk} and is actively campaigning in over 65 countries. The BSA operates a three-pronged approach: 1. Lobbying to strengthen copyright laws and co-operation with law enforcement agencies. 2. Educating the public through marketing, roadshows, etc. 3. Bringing legal actions against counterfeiters. BSA's aims are the same as the {Federation Against Software Theft} but it is not limited to the UK. In December 1990 the BSA obtained the first legal order in the UK which allowed a surprise search on a company's offices for suspected copyright infringement. {Home (http://www.bsa.org/bsa)} UK Office: Business Software Alliance, 1st Floor, Leaconfield House, Curzon Street, London W1Y 8AS, United Kingdom. See also {software audit}. (1996-05-19) business to business (B2B) {Electronic commerce} between businesses, as opposed to between a consumer and a business (B2C). While derived from "business to business", "B2B" is narrower in meaning. (2001-03-26) bus master The device in a computer which is driving the {address bus} and bus control signals at some point in time. In a simple architecture only the (single) {CPU} can be bus master but this means that all communications between ("slave") I/O devices must involve the CPU. More sophisticated architectures allow other capable devices (or multiple CPUs) to take turns at controling the bus. This allows, for example, a {network controller} card to access a {disk controller} directly while the CPU performs other tasks which do not require the bus, e.g. fetching code from its {cache}. Note that any device can drive data onto the {data bus} when the CPU reads from that device, but only the bus master drives the {address bus} and control signals. {Direct Memory Access} is a simple form of bus mastering where the I/O device is set up by the CPU to read from or write to one or more contiguous blocks of memory and then signal to the CPU when it has done so. Full bus mastering (or "First Party DMA", "bus mastering DMA") implies that the I/O device is capable of performing more complex sequences of operations without CPU intervention (e.g. servicing a complete {NFS} request). This will normally mean that the I/O device contains its own processor or {microcontroller}. See also {distributed kernel}. (1996-08-26) bus mastering {bus master} bus network A network in which all {nodes} are connected to a single wire (the bus). The two endpoints will have a {terminator}. Bus networks typically use {CSMA/CD} techniques to determine which node transmits data on the wire at any given time. Examples are {Ethernet} {10Base2} and {10Base5} networks. See also {star network}, {ring network}. (1999-11-28) Busy Beaver (BB) One of a series of sets of {Turing Machine} programs. The BBs in the Nth set are programs of N states that produce a larger finite number of ones on an initially blank tape than any other program of N states. There is no program that, given input N, can deduce the productivity (number of ones output) of the BB of size N. The productivity of the BB of size 1 is 1. Some work has been done to figure out productivities of bigger Busy Beavers - the 7th is in the thousands. (1994-10-24) busy-loop {tight loop} busy-wait To wait for an {event} by {spinning} through a {tight loop} or timed-delay loop that {polls} for the event on each pass, as opposed to setting up an {interrupt handler} and continuing execution on another part of the task. This is a wasteful technique, best avoided on {time-sharing} systems where a busy-waiting program may {hog} the processor. [{Jargon File}] (1999-06-10) Butterfly Common LISP A parallel version of {Common LISP} for the {BBN Butterfly} computer. Butterfly Scheme A parallel version of {Scheme} for the {BBN Butterfly} computer. button 1. {push-button}. 2. A graphical representation of an electrical {push-button} appearing as part of a {graphical user interface}. Moving the {mouse pointer} over the graphical button and pressing one of the physical mouse buttons starts some software action such as closing a window or deleting a file. See also {radio button}. (1997-07-07) buzz 1. Of a program, to run with no indication of progress and perhaps without guarantee of ever finishing; especially said of programs thought to be executing a {tight loop} of code. A program that is buzzing appears to be {catatonic}, but never gets out of catatonia, while a buzzing loop may eventually end of its own accord. "The program buzzes for about 10 seconds trying to sort all the names into order." See {spin}; see also {grovel}. 2. [ETA Systems] To test a wire or printed circuit trace for continuity by applying an AC rather than DC signal. Some wire faults will pass DC tests but fail a buzz test. 3. To process an {array} or list in sequence, doing the same thing to each element. "This loop buzzes through the tz array looking for a terminator type." [{Jargon File}] bv The {country code} for Bouvet Island. (1999-01-27) bw The {country code} for Botswana. (1999-01-27) bwBASIC Bywater BASIC interpreter. A {BASIC} {interpreter} by Ted A. Campbell which implements a large superset of the {ANSI Standard for Minimal BASIC} (X3.60-1978) in {ANSI C}, and offers a simple interactive environment including some {shell} program facilities as an extension of BASIC. The interpreter source has been compiled successfully on a range of {ANSI C} {compiler}s on varying {platform}s including {MS-DOS}, {Unix}, and {Acorn} {RISC OS}. Version 2.10 was posted to {news:comp.sources.misc}, volume 40. (1993-10-29) BWQ [IBM] Buzz Word Quotient. The percentage of buzzwords in a speech or documents. Usually roughly proportional to {bogosity}. See {TLA}. [{Jargon File}] by The {country code} for Belarus. (1999-01-27) byacc {Berkeley Yacc} by hand 1. Said of an operation (especially a repetitive, trivial, and/or tedious one) that ought to be performed automatically by the computer, but which a hacker instead has to step tediously through. "My mailer doesn't have a command to include the text of the message I'm replying to, so I have to do it by hand." This does not necessarily mean the speaker has to retype a copy of the message; it might refer to, say, dropping into a subshell from the mailer, making a copy of one's mailbox file, reading that into an editor, locating the top and bottom of the message in question, deleting the rest of the file, inserting ">" characters on each line, writing the file, leaving the editor, returning to the mailer, reading the file in, and later remembering to delete the file. Compare {eyeball search}. 2. By extension, writing code which does something in an explicit or low-level way for which a presupplied library routine ought to have been available. "This cretinous {B-tree} library doesn't supply a decent iterator, so I'm having to walk the trees by hand." [{Jargon File}] Byte A popular computing magazine. {Home (http://www.byte.com)}. (1997-03-27) byte /bi:t/ (B) A component in the machine {data hierarchy} usually larger than a {bit} and smaller than a {word}; now most often eight bits and the smallest addressable unit of storage. A byte typically holds one {character}. A byte may be 9 bits on 36-bit computers. Some older architectures used "byte" for quantities of 6 or 7 bits, and the PDP-10 and IBM 7030 supported "bytes" that were actually {bit-fields} of 1 to 36 (or 64) bits! These usages are now obsolete, and even 9-bit bytes have become rare in the general trend toward power-of-2 word sizes. The term was coined by Werner Buchholz in 1956 during the early design phase for the {IBM} {Stretch} computer. It was a mutation of the word "bite" intended to avoid confusion with "bit". In 1962 he described it as "a group of bits used to encode a character, or the number of bits transmitted in parallel to and from input-output units". The move to an 8-bit byte happened in late 1956, and this size was later adopted and promulgated as a standard by the {System/360} {operating system} (announced April 1964). James S. Jones adds: I am sure I read in some historical brochure by IBM some 15-20 years ago that BYTE was an acronym that stood for "Bit asYnchronous Transmission E__?__" which related to width of the bus between the Stretch CPU and its CRT-memory (prior to Core). Terry Carr says: In the early days IBM taught that a series of bits transferred together (like so many yoked oxen) formed a Binary Yoked Transfer Element (BYTE). [True origin? First 8-bit byte architecture?] See also {nibble}, {octet}. [{Jargon File}] (1998-08-06) byte-code A {binary} file containing an {executable} program, formed by a sequence of {op code}/data pairs. Byte-code op codes are most often fixed size binary patterns, but can be variable size. The data portion consists of zero or more {bits}, the format of the data portion may be determined by the identifier. The data is most often variable in size. In some cases, by clever design, (e.g. some {RISC} {instruction sets}) the identifier/data pair is a fixed size. This can provide performance benefits. A byte-code program is normally interpreted by a {byte-code interpreter}. The advantage of this technique compared with outputing {machine code} for a particular processor is that the same byte-code can be executed on any processor on which the byte-code interpreter runs. The byte-code may be compiled to machine code ("native code") for speed of execution but this usually requires significantly greater effort for each new taraget architecture than simply porting the interpreter. For example, {Java} is compiled to byte-code which runs on the {Java Virtual Machine}. (1998-08-30) byte-code compiler A {compiler} which outputs a program in some kind of {byte-code}. Compare: {byte-code interpreter}. (1995-11-04) byte-code interpreter A program that {executes} a {byte code} program. An example is the {Java Virtual Machine}. (1999-11-28) byte compiler {byte-code compiler} bytesexual /bi:t"sek"shu-*l/ Said of hardware, denotes willingness to compute or pass data in either {big-endian} or {little-endian} format (depending, presumably, on a {mode bit} somewhere). See also {NUXI problem}. [{Jargon File}] Byzantine A term describing any system that has so many labyrinthine internal interconnections that it would be impossible to simplify by separation into loosely coupled or linked components. The city of Byzantium, later renamed Constantinople and then Istanbul, and the Byzantine Empire were vitiated by a bureaucratic overelaboration bordering on lunacy: quadruple banked agencies, dozens or even scores of superfluous levels and officials with high flown titles unrelated to their actual function, if any. Access to the Emperor and his council was controlled by powerful and inscrutable eunuchs and by rival sports factions. [Edward Gibbon, "Decline and Fall of the Roman Empire"]. (1999-01-15) bz The {country code} for Belize. (1999-01-27) bzzzt, wrong /bzt rong/ ({Usenet}, {Internet}) From a Robin Williams routine in the movie "Dead Poets Society" spoofing radio or TV quiz programs, such as *Truth or Consequences*, where an incorrect answer earns one a blast from the buzzer and condolences from the interlocutor. A way of expressing mock-rude disagreement, usually immediately following an included quote from another poster. The less abbreviated "*Bzzzzt*, wrong, but thank you for playing" is also common; capitalisation and emphasis of the buzzer sound varies. [{Jargon File}] (1994-11-11) C A programming language designed by {Dennis Ritchie} at {AT&T} {Bell Labs} ca. 1972 for systems programming on the {PDP-11} and immediately used to reimplement {Unix}. It was called "C" because many features derived from an earlier compiler named "{B}". In fact, C was briefly named "NB". B was itself strongly influenced by {BCPL}. Before {Bjarne Stroustrup} settled the question by designing {C++}, there was a humorous debate over whether C's successor should be named "D" or "P" (following B and C in "BCPL"). C is terse, low-level and permissive. It has a {macro preprocessor}, {cpp}. Partly due to its distribution with {Unix}, C became immensely popular outside {Bell Labs} after about 1980 and is now the dominant language in systems and {microcomputer} applications programming. It has grown popular due to its simplicity, efficiency, and flexibility. C programs are often easily adapted to new environments. C is often described, with a mixture of fondness and disdain, as "a language that combines all the elegance and power of {assembly language} with all the readability and maintainability of assembly language". Ritchie's original C, known as {K&R C} after Kernighan and Ritchie's book, has been {standard}ised (and simultaneously modified) as {ANSI C}. See also {ACCU}, {ae}, {c68}, {c386}, {C-Interp}, {cxref}, {dbx}, {dsp56k-gcc}, {dsp56165-gcc}, {gc}, {GCT}, {GNU C}, {GNU superoptimiser}, {Harvest C}, {malloc}, {mpl}, {Pthreads}, {ups}. [{Jargon File}] (1996-06-01) (c) An {ASCII} rendition of the encircled "c" {copyright} symbol. Unfortunately, this rendition is not legally valid, the circle must be complete. The word "copyright" in full is perfectly adequate though. (In {LaTeX} the copyright symbol is written as \copyright). [{Jargon File}] (1995-02-03) C* An {object-oriented}, {data-parallel} superset of {ANSI C} with synchronous {semantics}, for the {Connection Machine}, designed by {Thinking Machines}, 1987. C* adds a "domain" data type and a selection statement for parallel execution in domains. An unimplemented language called "{Parallel C}" [which one?] influenced the design of {C*}. {Dataparallel-C} was based on {C*}. Current version: 6.x, as of 1993-07-27. ["C*: An Extended C Language for Data Parallel Programming", J.R. Rose et al, Proc Second Intl Conf on Supercomputing, L.P. Kartashev et al eds, May 1987, pp 2-16]. ["C* Programming Manual", Thinking Machines Corp, 1986]. [{Jargon File}] (2000-11-14) C++ One of the most used {object-oriented} languages, a superset of {C} developed primarily by Bjarne Stroustrup at {AT&T} {Bell Laboratories} in 1986. In C++ a {class} is a user-defined type, syntactically a struct with {member function}s. {Constructor}s and {destructor}s are member functions called to create or destroy {instance}s. A {friend} is a nonmember function that is allowed to access the private portion of a class. C++ allows {implicit type conversion}, {function inlining}, {overloading} of operators and function names, and {default function argument}s. It has {stream}s for I/O and references. C++ 2.0 (May 1989) introduced {multiple inheritance}, type-safe linkage, pointers to members, and {abstract classes}. C++ 2.1 was introduced in ["Annotated C++ Reference Manual", B. Stroustrup et al, A-W 1990]. {MS-DOS (ftp://grape.ecs.clarkson.edu/pub/msdos/djgpp/djgpp.zip)}, {Unix ANSI C++ (ftp://gnu.org/pub/gnu/g++-1.39.0.tar.Z)} - X3J16 committee. (They're workin' on it). See also {cfront}, {LEDA}, {uC++}. {Usenet} newsgroup: {news:comp.lang.c++}. ["The C++ Programming Language", Bjarne Stroustrup, A-W, 1986]. (1996-06-06) C+- (C More or Less) A subject-oriented language (SOL). Each C+- {class} instance, known as a subject, holds hidden {members}, known as prejudices, agendas or undeclared preferences, which are impervious to outside messages; as well as public members, known as boasts or claims. The following {C} {operators} are overridden as shown: > better than < worse than >> way better than << forget it ! not on your life == comparable, other things being equal !== get a life, guy! C+- is {strongly typed}, based on stereotyping and self-righteous logic. The {Boolean} {variables} TRUE and FALSE (known as constants in other, less realistic languages) are supplemented with CREDIBLE and DUBIOUS, which are fuzzier than Zadeh's traditional fuzzy categories. All Booleans can be declared with the modifiers strong and weak. Weak implication is said to "preserve deniability" and was added at the request of the DoD to ensure compatibility with future versions of {Ada}. Well-formed falsehoods (WFFs) are {assignment}-compatible with all Booleans. What-if and why-not interactions are aided by the special conditional EVENIFNOT X THEN Y. C+- supports {information hiding} and, among {friend classes} only, rumor sharing. Borrowing from the {Eiffel} lexicon, non-friend classes can be killed by arranging contracts. Note that friendships are {intransitive}, {volatile} and non-{Abelian}. {Operator precedence} rules can be suspended with the directive #pragma dwim, known as the "{Do what I mean}" {pragma}. {ANSIfication} will be firmly resisted. C+-'s slogan is "Be Your Own Standard." [{Jargon File}] (1999-06-15) C+@ (Formerly Calico). An {object-oriented language} from {Bell Laboratories} which uniformly represents all data as a pointer to a self-described object. C+@ provides {multiple inheritance} with {delegation} and with control over which {method}s come from which delegated object; and {default methodologies}. It has a simple {syntax} with emphasis on graphics. It was originally used for prototyping of telecommunication services. It runs under {SunOS} and compiles to {Vcode}. Unir Tech, (800) 222-8647. E-mail: Jim Vandendorpe . ["A Dynamic C-Based Object-Oriented System for Unix", S. Engelstad et al, IEEE Software 8(3):73-85 (May 1991)]. ["The C+@ Programming Language", J. Fleming, Dr Dobbs J, Oct 1993, pp.24-32]. [{Jargon File}] (1994-10-31) [What has "Unir Tech" got to do with it?] C-10 An improved version of {COLINGO}. [Sammet 1969, p.702]. (1994-10-28) C1 security {Orange Book} c2man An automatic {documentation} extraction tool by Graham Stoney . c2man extracts comments from {C} source code to generate functional interface documentation in the same format as sections 2 and 3 of the {Unix} Programmer's Manual. It looks for comments near the objects they document, rather than imposing a rigid {syntax} or requiring that the programmer use a typesetting language. Acceptable documentation can often be generated from existing code with no modifications. It supports both {K&R} and {ISO}/{ANSI C} coding styles. Output can be in {nroff} -man, {Texinfo} or {LaTeX} format. It {automagically} documents {enum} parameter and return values, it handles both {C} (/* */) and {C++} (//) style comments, but not C++ grammar (yet). It requires {yacc}, {byacc} or {bison} for syntax analysis; {lex} or {flex} for {lexical analysis} and {nroff}, {groff}, {texinfo} or {LaTeX} to format the output. It runs under {Unix}, {OS/2} and {MS-DOS}. Version 2.0 patchlevel 25 (1995-10-25). {Washington FTP (ftp://ftp.wustl.edu/usenet/comp.sources.reviewed/volume03/)}. {Stuttgart FTP (ftp://ftp.informatik.uni-stuttgart.de/pub/archive/comp.sources/reviewed/)}. {Patches (ftp://lth.se/pub/netnews/sources.bugs/volume93/sep/)}. Mailing list: ("subscribe c2man " in the message body). Patches posted to {Usenet} newsgroups {news:comp.sources.bugs} and {news:comp.sources.reviewed}. (1994-02-21) C2 security {Orange Book} c386 A compiler for {K&R C} plus {prototype}s and other {ANSI C} features by Matthew Brandt, Christoph van Wuellen, Keith and Dave Walker. c386 is targetted to several {68000} and {Intel 80386} {assembler}s, including {gas}. {floating-point} support is by inline code or {emulation}. It can produce lots of warnings and generates better code than {ACK}. {Version 4.2a (ftp://bugs.nosc.mil/pub/Minix/common-pkgs/c386-4.2.tar.Z)}. c386 has been ported to {Intel 80386} and {68000} {MINIX} and should work on any Unix. It is actively worked on by the Walkers. {Usenet} newsgroup: {news:comp.os.minix}. C5 An {OPS5} implementation in {C}. C64 {Commodore 64} c68 {c386} also produces {68000} code. CA 1. {cellular automaton}. 2. {Computer Associates}. 3. {Certificate Authority}. (1996-09-28) ca The {country code} for Canada. (1995-04-19) cable modem A type of {modem} that allows people to access the {Internet} via their cable television service. A cable modem can transfer data at 500 {kbps} or higher, compared with 28.8 kbps for common telephone line modems, but the actual transfer rates may be lower depending on the number of other simultaneous users on the same cable. Industry pundits often point out that the cable system still does not have the {bandwidth} or service level in many areas to make this feasible. For example, it has to be capable of two-way communication. See also: {DOCSIS}. (2000-12-19) cache /kash/ A small fast memory holding recently accessed data, designed to speed up subsequent access to the same data. Most often applied to processor-memory access but also used for a local copy of data accessible over a network etc. When data is read from, or written to, {main memory} a copy is also saved in the cache, along with the associated main memory address. The cache monitors addresses of subsequent reads to see if the required data is already in the cache. If it is (a {cache hit}) then it is returned immediately and the main memory read is aborted (or not started). If the data is not cached (a {cache miss}) then it is fetched from main memory and also saved in the cache. The cache is built from faster memory chips than main memory so a cache hit takes much less time to complete than a normal memory access. The cache may be located on the same {integrated circuit} as the {CPU}, in order to further reduce the access time. In this case it is often known as {primary cache} since there may be a larger, slower {secondary cache} outside the CPU chip. The most important characteristic of a cache is its {hit rate} - the fraction of all memory accesses which are satisfied from the cache. This in turn depends on the cache design but mostly on its size relative to the main memory. The size is limited by the cost of fast memory chips. The hit rate also depends on the access pattern of the particular program being run (the sequence of addresses being read and written). Caches rely on two properties of the access patterns of most programs: temporal locality - if something is accessed once, it is likely to be accessed again soon, and spatial locality - if one memory location is accessed then nearby memory locations are also likely to be accessed. In order to exploit spatial locality, caches often operate on several words at a time, a "{cache line}" or "cache block". Main memory reads and writes are whole {cache lines}. When the processor wants to write to main memory, the data is first written to the cache on the assumption that the processor will probably read it again soon. Various different policies are used. In a {write-through} cache, data is written to main memory at the same time as it is cached. In a {write-back} cache it is only written to main memory when it is forced out of the cache. If all accesses were writes then, with a write-through policy, every write to the cache would necessitate a main memory write, thus slowing the system down to main memory speed. However, statistically, most accesses are reads and most of these will be satisfied from the cache. Write-through is simpler than write-back because an entry that is to be replaced can just be overwritten in the cache as it will already have been copied to main memory whereas write-back requires the cache to initiate a main memory write of the flushed entry followed (for a processor read) by a main memory read. However, write-back is more efficient because an entry may be written many times in the cache without a main memory access. When the cache is full and it is desired to cache another line of data then a cache entry is selected to be written back to main memory or "flushed". The new line is then put in its place. Which entry is chosen to be flushed is determined by a "{replacement algorithm}". Some processors have separate instruction and data caches. Both can be active at the same time, allowing an instruction fetch to overlap with a data read or write. This separation also avoids the possibility of bad {cache conflict} between say the instructions in a loop and some data in an array which is accessed by that loop. See also {direct mapped cache}, {fully associative cache}, {sector mapping}, {set associative cache}. (1997-06-25) cache block {cache line} cache coherency (Or "cache consistency") /kash koh-heer'n-see/ The synchronisation of data in multiple {caches} such that reading a memory location via any cache will return the most recent data written to that location via any (other) cache. Some {parallel processors} do not cache accesses to {shared memory} to avoid the issue of cache coherency. If caches are used with shared memory then some system is required to detect when data in one processor's cache should be discarded or replaced because another processor has updated that memory location. Several such schemes have been devised. (1998-11-10) cache conflict A sequence of accesses to memory repeatedly overwriting the same {cache} entry. This can happen if two blocks of data, which are mapped to the same set of cache locations, are needed simultaneously. For example, in the case of a {direct mapped cache}, if {arrays} A, B, and C map to the same range of cache locations, thrashing will occur when the following loop is executed: for (i=1; i A request to read from memory which can satisfied from the {cache} without using the {main memory}. Opposite: {cache miss}. (1997-01-21) cache line (Or cache block) The smallest unit of memory than can be transferred between the {main memory} and the {cache}. Rather than reading a single word or byte from main memory at a time, each cache entry is usually holds a certain number of words, known as a "cache line" or "cache block" and a whole line is read and cached at once. This takes advantage of the principle of locality of reference: if one location is read then nearby locations (particularly following locations) are likely to be read soon afterwards. It can also take advantage of {page-mode} {DRAM} which allows faster access to consecutive locations. (1997-01-21) cache memory {cache} cache miss A request to read from memory which cannot be satisfied from the {cache}, for which the {main memory} has to be consulted. Opposite: {cache hit}. (1997-01-21) Cache On A STick (COAST) {Intel Corporation} attempt to's standardise the modular {L2 cache} subsystem in {Pentium}-based computers. A COAST module should be about 4.35" wide by 1.14" high. According to earlier specifications from {Motorola}, a module between 4.33" and 4.36" wide, and between 1.12" and 1.16" high is within the COAST standard. Some module vendors, including some major motherboard suppliers, greatly violate the height specification. Another COAST specification violated by many suppliers concerns clock distribution in synchronous modules. The specification requires that the clock tree to each synchronous chip be balanced, i.e. equal length from edge of the connector to individual chips. An unbalanced clock tree increases reflections and noise. For a 256 {kilobyte} cache module the standard requires the same clock be used for both chips but some vendors use separate clocks to reduce loading on the clock driver and hence increase the clock speed. However, this creates unbalanced loading in other motherboard configurations, such as motherboards with soldered caches in the system. (1996-06-10) caching {cache} CACI A company developing and marketing {SIMSCRIPT}, {MODSIM} and other {simulation} software products. Telephone: +1 (619) 457-9681. (1994-09-22) CACM {Communications of the ACM} CAD {Computer Aided Design} CAD/CAM {Computer Aided Design}/Computer Aided Manufacturing. CADD Computer Aided Detector Design: a project to develop standards and methods to allow cooperation between HEP detector designers working in different institutes. Cadence Design Systems A company that sells {electronic design automation} software and services. {Home (http://www.cadence.com/)}. See also {Verilog}. (1999-04-16) CADET Computer Aided Design Experimental Translator. [Sammet 1969, p. 683]. (1994-11-29) CADRE The US {software engineering} vendor which merged with {Bachman Information Systems} to form {Cayenne Software} in July 1996. (1998-02-08) CAE 1. {Common Applications Environment}. 2. {Computer Aided Engineering}. (1999-09-17) CAF {constant applicative form} CAFE ["Job Control Languages: MAXIMOP and CAFE", J. Brandon, Proc BCS Symp on Job Control Languages--Past Present and Future, NCC, Manchester, England 1974]. (1994-10-28) CAGE Early system on IBM 704. Listed in CACM 2(5):16 (May 1959). CAI {Computer-Aided Instruction} Cairo {Windows NT 4} CAIS {Common APSE Interface Specification} CAIS-A Common APSE Interface Set A DoD-STD-1838A. CAiSE Conference on Advanced Information Systems Engineering. CAJOLE (Chris And John's Own LanguagE) A {dataflow} language developed by Chris Hankin and John Sharp at {Westfield College}. ["The Data Flow Programming Language CAJOLE: An Informal Introduction", C.L. Hankin et al, SIGPLAN Notices 16(7):35-44 (Jul 1981)]. (1994-11-08) CAL 1. {Computer Assisted Learning}. 2. {Course Author Language}. (1997-03-21) Calc An extensible, advanced desk calculator and mathematical tool written in {Emacs Lisp} by Dave Gillespie . Calc runs as part of {GNU Emacs}. You can use Calc as only a simple four-function calculator, but it also provides additional features including choice of algebraic or {RPN} ({stack}-based) entry, logarithms, trigonometric and financial functions, {arbitrary precision}, complex numbers, vectors, matrices, dates, times, infinities, sets, algebraic simplification, differentiation, and integration. Latest version: 2.02, as of 1994-11-08. FTP calc-2.02.tar.z from your nearest {GNU archive site}. (2000-10-20) calculator {bitty box} Calculus of Communicating Systems (CCS) A mathematical model (a formal language) for describing processes, mostly used in the study of {parallelism}. A CCS program, written in {behaviour expressions syntax} denotes a process behaviour. Programs can be compared using the notion of {observational equivalence}. ["A Calculus of Communicating Systems", LNCS 92, Springer 1980]. ["Communication and Concurrency", R. Milner, P-H 1989]. (1994-11-29) Calendar API {Calendar Application Programming Interface} Calendar Application Programming Interface (CAPI, Calendar API) An {API} for calendar {software}. {Microsoft} has defined a CAPI for their {Schedule+} application. (1995-01-11) Caliban A {declarative} annotation language for controlling the partitioning and placement of the evaluation of expressions in a distributed {functional language}. Designed by Paul Kelly , {Imperial College}. ["Functional Programming for Loosely-coupled Multiprocessors", P. Kelly, Pitman/MIT Press, 1989]. (1995-01-11) Calico {C+@} California State University San Marcos (CSUSM) {Home (http://coyote.csusm.edu/)} (1994-12-21) callback 1. A scheme used in {event-driven} programs where the program registers a {subroutine} (a "callback handler") to handle a certain {event}. The program does not call the handler directly but when the event occurs, the {run-time system} calls the handler, usually passing it arguments to describe the event. 2. A {user authentication} scheme used by some computers running {dial-up} services. The user dials in to the computer and gives his {user name} and {password}. The computer then hangs up the connection and uses an {auto-dial} {modem} to call back to the user's registered telephone number. Thus, if an unauthorised person discovers a user's password, the callback will go, not to him, but to the owner of that login who will then know that his account is under attack. However, some {PABX}s can be fooled into thinking that the caller has hung up by sending them a dial tone. When the computer tries to call out on the same line it is not actually dialing through to the authorised user but is still connected to the original caller. (1999-01-06) call-by-name (CBN) (Normal order reduction, leftmost, outermost reduction). An argument passing convention (first provided by {ALGOL 60}?) where argument expressions are passed unevaluated. This is usually implemented by passing a pointer to some code which will return the value of the argument and an environment giving the values of its {free variable}s. This {evaluation strategy} is guaranteed to reach a {normal form} if one exists. When used to implement {functional programming} languages, call-by-name is usually combined with {graph reduction} to avoid repeated evaluation of the same expression. This is then known as {call-by-need}. The opposite of call-by-name is {call-by-value} where arguments are evaluated before they are passed to a function. This is more efficient but is less likely to terminate in the presence of infinite data structures and {recursive} functions. Arguments to {macro}s are usually passed using call-by-name. (1994-11-29) call-by-need A {reduction strategy} which delays evaluation of function arguments until they are needed because they are arguments to a {primitive} function or a conditional. Call-by-need is one part of {lazy evaluation}. The term first appears in Chris Wadsworth's thesis "Semantics and Pragmatics of the Lambda calculus" (Oxford, 1971, p. 183). It was used later, by J. Vuillemin in his thesis (Stanford, 1973). (1995-05-27) call-by-reference An argument passing convention where the address of an argument variable is passed to a function or procedure, as opposed to where the value of the argument expression is passed. Execution of the function or procedure may have {side-effect}s on the actual argument as seen by the caller. The C language's "&" (address of) and "*" (dereference) operators allow the programmer to code explicit call-by-reference. Other languages provide special syntax to declare reference arguments (e.g. {ALGOL 60}). See also {call-by-name}, {call-by-value}, {call-by-value-result}. call-by-value (CBV) An {evaluation strategy} where arguments are evaluated before the function or procedure is entered. Only the values of the arguments are passed and changes to the arguments within the called procedure have no effect on the actual arguments as seen by the caller. See {applicative order reduction}, {call-by-value-result}, {strict evaluation}, {call-by-name}, {lazy evaluation}. call-by-value-result An argument passing convention where the {actual argument} is a variable V whose value is copied to a local variable L inside the called function or procedure. If the procedure modifies L, these changes will not affect V, which may also be in scope inside the procedure, until the procedure returns when the final value of L is copied to V. Under {call-by-reference} changes to L would affect V immediately. Used, for example, by {BBC BASIC V} on the {Acorn} {Archimedes}. call/cc {call-with-current-continuation} callee The {function} or {subroutine} being called by the {caller}. (2001-05-09) Caller ID (CID) A feature of some {modem}s. calling convention The arrangement of {arguments} for a procedure or function call. Different programming languages may require arguments to be pushed onto a {stack} or entered in {registers} in left-to-right or right-to left order, and either the caller or the callee can be responsible for removing the arguments. The calling convention also determines if a variable number of arguments is allowed. (1995-11-11) Call-Level Interface (SQL/CLI) A programming interface designed to support {SQL} access to {databases} from shrink-wrapped {application programs}. CLI was originally created by a subcommittee of the {SQL Access Group} (SAG). The SAG/CLI specification was published as the {Microsoft} {Open DataBase Connectivity} (ODBC) specification in 1992. In 1993, SAG submitted the CLI to the {ANSI} and {ISO} SQL committees. SQL/CLI provides an international standard implementation-independent CLI to access SQL databases. {Client-server} tools can easily access databases through {dynamic link libraries}. It supports and encourages a rich set of client-server tools. SQL/CLI is an addendum to 1992 SQL standard (SQL-92). It was completed as ISO standard ISO/IEC 9075-3:1995 Information technology -- Database languages -- SQL -- Part 3: Call-Level Interface (SQL/CLI). The current SQL/CLI effort is adding support for {SQL3}. {(http://www.jcc.com/sql_cli.html)}. (1996-10-27) Call Unix (cu) The original {Unix} {virtual terminal} utility. cu allows a user on one computer to log in to another connected via {Ethernet}, direct {serial line} or {modem}. It shares some configuration files with {UUCP} in order to be able to use the same connections without conflict. {Unix manual page}: cu(1). (1997-12-01) Callware The developers of {Phonetastic}. (1996-12-08) call-with-current-continuation (call/cc) A {Lisp} control function that takes a function f as its argument and calls f, passing it the current {continuation}, which is itself a function, k. k, which represents the context of the call to call/cc, takes the result of call/cc (which is the result of f) and returns the final result of the whole program. Thus if, for example, the final result is to print the value returned by call/cc then anything passed to k will also be printed. E.g, in {Scheme}: (define (f k) (k 1) (k 2) 3) (display (call-with-current-continuation f)) Will display 1. (2001-04-27) CALS Computer-Aided Acquisition and Logistics Support: a DoD standard for electronic exchange of data with commercial suppliers. CAM 1. {content addressable memory}. 2. {computer aided manufacturing}. (1999-09-17) CAM-6 Software for running {cellular automata}. CAM-6 has been implemented in hardware as {CAM-PC}. (1995-04-21) CAMAL CAMbridge ALgebra system. A {symbolic mathematics} system used in Celestial Mechanics and General Relativity. CAMAL was implemented in {BCPL} on {Titan}. ["CAMAL User's Manual", John P. Fitch, Cambridge U, England (1975)]. ["The Design of the Cambridge Algebra System", S.R. Bourne et al, Proc 2nd Symp of Symb & Alg Manip, SIGSAM 1971]. (1995-02-16) Cambridge Lisp A flavour of Lisp using BCPL. Sources owned by Fitznorman partners. Camelot Library ["The Camelot Library", J. Bloch, in "Guide to the Camelot Distributed Transaction Facility: Release I", A.Z. Spector et al eds, CMU 1988, pp. 29-62]. [What is it?] (1995-04-19) camera ready A final edition of a document or graphic (e.g. a newspaper advertisement or a technical paper for a journal) that is of suitable quality for mass reproduction by making printing plates from the negatives by photoengraving. (1996-11-15) CAMIL Computer Assisted/Managed Instructional Language. A language used for {CAI} at Lowry AFB, CO. ["The CAMIL Programming Language", David Pflasterer, SIGPLAN Notices 13(11):43 (Nov 1978)]. (1994-11-09) CAML 1. A language for preparation of animated movies. 1976. (1994-11-09) 2. {Categorical Abstract Machine Language}. (2000-07-06) Caml Light A small portable implementation of a version of {CAML} by Xavier Leroy and Damien Doligez of {INRIA}. Caml Light uses a {bytecode interpreter} written in {C}. It adds a {Modula-2}-like {module} system, {separate compilation}, {lazy stream}s for parsing and printing, graphics primitives and an interface with {C}. Version 0.6 runs on {Unix}, {MS-DOS}, {Macintosh}, {Atari ST} and {Amiga}. It includes an {interpreter}, {compiler}, {Emacs} mode, libraries, {scanner generator}, {parser generator}, {run-time support} and an interactive development environment. {(ftp://ftp.inria.fr/lang/caml-light/)} E-mail: . Mailing list: . {Usenet} newsgroup: {news:comp.lang.ml}. (1993-10-06) CAM-PC A {cellular automata} circuit board which is a hardware implementation from {Automatrix} of the {MIT} {CAM-6} machine. It comes with dozens of experiments and applications. {Home (http://www.automatrix.com/campc/index.html)} (1995-04-21) Campus Wide Information System (CWIS) Information and services made publicly available at university sites via {kiosk}s running interactive computing systems, possibly via campus networks. Services routinely include directory information, calendars, {bulletin board}s and {database}s. (1994-11-09) CAN {Cancel} can To abort a job on a {time-sharing} system. Used especially when the person doing the deed is an operator, as in "canned from the {console}". Frequently used in an imperative sense, as in "Can that print job, the LPT just popped a sprocket!" Synonymous with {gun}. It is said that the ASCII character with {mnemonic} CAN (0011000) was used as a kill-job character on some early OSes. Alternatively, this term may derive from mainstream slang "canned" for being laid off or fired. [{Jargon File}] Canada Country with {domain} "ca". (1995-04-06) Cancel (CAN, Control-X) {ASCII} character 24. (1996-06-28) Cancelbunny {Cancelpoodle} Cancelm00se {Cancelmoose} Cancelmoose A semi-mythical being that cancels {Usenet} {articles} posted by others. (In general, an article can only be cancelled by its original author.) The Cancelmoose's usual target is {spam} or extremely excessive {cross-post}ing. Some believe that the Cancelmoose exists only in the same mythic sense that {B1FF}, the {NSA line eater} and {Shub Internet} exist; others consider Cancelmoose's historicity to be closer to that of {Kibo}. The latter group assume that the real Cancelmoose is not one person (or moose), but instead is a cabal of {NNTP} wonks. However, the Cancelmoose is probably real, seeing as how it has its own {web site}. {Home (http://www.nocem.org/)}. (1999-01-14) Cancelpoodle (Or Cancelbunny) A manifestation of the {Cancelmoose} in the form of a more selective (and probably not automated) way to cancel {Usenet} articles. The term became common during the alt.religion.scientology wars of the mid-90s, during which Cancelpoodles were used. The "poodle" part is an allusion to one of the parties obliquely involved in the fray, who an earlier well-known witticism had compared to "a psychotic poodle". (1999-01-14) candidate key One of several possible attributes or combinations of attributes which can be used to uniquely identify a body of information (a "{record}"). (1997-04-26) Candle Part of the {Scorpion} environment development system. (1994-11-09) candygrammar A programming-language grammar that is mostly {syntactic sugar}; the term is also a play on "candygram". {COBOL}, {Apple Computer}'s {Hypertalk} language, and a lot of the so-called "{4GL}" database languages share this property. The usual intent of such designs is that they be as English-like as possible, on the theory that they will then be easier for unskilled people to program. This intention comes to grief on the reality that syntax isn't what makes programming hard; it's the mental effort and organisation required to specify an algorithm precisely that costs. Thus the invariable result is that "candygrammar" languages are just as difficult to program in as terser ones, and far more painful for the experienced hacker. [The overtones from the old Chevy Chase skit on Saturday Night Live should not be overlooked. This was a "Jaws" parody. Someone lurking outside an apartment door tries all kinds of bogus ways to get the occupant to open up, while ominous music plays in the background. The last attempt is a half-hearted "Candygram!" When the door is opened, a shark bursts in and chomps the poor occupant. There is a moral here for those attracted to candygrammars. Note that, in many circles, pretty much the same ones who remember Monty Python sketches, all it takes is the word "Candygram!", suitably timed, to get people rolling on the floor. - {GLS}] [{Jargon File}] (2001-06-22) canonical (Historically, "according to religious law") 1. A standard way of writing a formula. Two formulas such as 9 + x and x + 9 are said to be equivalent because they mean the same thing, but the second one is in "canonical form" because it is written in the usual way, with the highest power of x first. Usually there are fixed rules you can use to decide whether something is in canonical form. Things in canonical form are easier to compare. 2. The usual or standard state or manner of something. The term acquired this meaning in computer-science culture largely through its prominence in {Alonzo Church}'s work in computation theory and {mathematical logic} (see {Knights of the Lambda-Calculus}). Compare {vanilla}. This word has an interesting history. Non-technical academics do not use the adjective "canonical" in any of the senses defined above with any regularity; they do however use the nouns "canon" and "canonicity" (not "canonicalness"* or "canonicality"*). The "canon" of a given author is the complete body of authentic works by that author (this usage is familiar to Sherlock Holmes fans as well as to literary scholars). "The canon" is the body of works in a given field (e.g. works of literature, or of art, or of music) deemed worthwhile for students to study and for scholars to investigate. The word "canon" derives ultimately from the Greek "kanon" (akin to the English "cane") referring to a reed. Reeds were used for measurement, and in Latin and later Greek the word "canon" meant a rule or a standard. The establishment of a canon of scriptures within Christianity was meant to define a standard or a rule for the religion. The above non-technical academic usages stem from this instance of a defined and accepted body of work. Alongside this usage was the promulgation of "canons" ("rules") for the government of the Catholic Church. The usages relating to religious law derive from this use of the Latin "canon". Hackers invest this term with a playfulness that makes an ironic contrast with its historical meaning. A true story: One Bob Sjoberg, new at the {MIT} {AI Lab}, expressed some annoyance at the incessant use of jargon. Over his loud objections, {GLS} and {RMS} made a point of using as much of it as possible in his presence, and eventually it began to sink in. Finally, in one conversation, he used the word "canonical" in jargon-like fashion without thinking. Steele: "Aha! We've finally got you talking jargon too!" Stallman: "What did he say?" Steele: "Bob just used "canonical" in the canonical way." Of course, canonicality depends on context, but it is implicitly defined as the way *hackers* normally expect things to be. Thus, a hacker may claim with a straight face that "according to religious law" is *not* the canonical meaning of "canonical". (1994-12-22) Canonical Encoding Rules (CER) A restricted variant of {BER} for producing unequivocal {transfer syntax} for data structures described by {ASN.1}. Whereas {BER} gives choices as to how data values may be encoded, CER and {DER} select just one encoding from those allowed by the basic encoding rules, eliminating all of the options. They are useful when the encodings must be preserved, e.g. in security exchanges. CER and {DER} differ in the set of restrictions that they place on the encoder. The basic difference between CER and {DER} is that {DER} uses definitive length form and CER uses indefinite length form. Documents: {ITU-T} X.690, {ISO} 8825-1. See also {PER}. (1998-05-19) canonical name (CNAME) A host's official name as opposed to an alias. The official name is the first hostname listed for its {Internet address} in the hostname database, {/etc/hosts} or the {Network Information Service} (NIS) map hosts.byaddr ("hosts" for short). A host with multiple network interfaces may have more than one Internet address, each with its own canonical name (and zero or more aliases). You can find a host's canonical name using {nslookup} if you say set querytype=CNAME and then type a hostname. (1994-11-29) canonicity The extent to which something is {canonical}. (1995-03-03) C (ANSI) {ANSI C} can't happen The traditional program comment for code executed under a condition that should never be true, for example a file size computed as negative. Often, such a condition being true indicates data corruption or a faulty {algorithm}; it is almost always handled by emitting a fatal error message and terminating or crashing, since there is little else that can be done. Some case variant of "can't happen" is also often the text emitted if the "impossible" error actually happens. Although "can't happen" events are genuinely infrequent in production code, programmers wise enough to check for them habitually are often surprised at how frequently they are triggered during development and how many headaches checking for them turns out to head off. See also {firewall code}, {professional programming}. [{Jargon File}] (1996-05-10) Cantor 1. A mathematician. Cantor devised the diagonal proof of the uncountability of the {real numbers}: Given a function, f, from the {natural numbers} to the {real numbers}, consider the real number r whose binary expansion is given as follows: for each natural number i, r's i-th digit is the complement of the i-th digit of f(i). Thus, since r and f(i) differ in their i-th digits, r differs from any value taken by f. Therefore, f is not {surjective} (there are values of its result type which it cannot return). Consequently, no function from the natural numbers to the reals is surjective. A further theorem dependent on the {axiom of choice} turns this result into the statement that the reals are uncountable. This is just a special case of a diagonal proof that a function from a set to its {power set} cannot be surjective: Let f be a function from a set S to its power set, P(S) and let U = { x in S: x not in f(x) }. Now, observe that any x in U is not in f(x), so U != f(x); and any x not in U is in f(x), so U != f(x): whence U is not in { f(x) : x in S }. But U is in P(S). Therefore, no function from a set to its power-set can be surjective. 2. An {object-oriented language} with fine-grained {concurrency}. [Athas, Caltech 1987. "Multicomputers: Message Passing Concurrent Computers", W. Athas et al, Computer 21(8):9-24 (Aug 1988)]. (1997-03-14) CAP 1. {Columbia AppleTalk Package}. 2. {Carrierless Amplitude/Phase Modulation}. 3. {Competitive Access Provider} Capabilities Maturity Model (CMM) The {Software Engineering Institute}'s model of {software engineering} that specifies five levels of maturity of the processes of a software organisation. CMM offers a framework for evolutionary process improvement. Originally applied to software development (SE-CMM), it has been expanded to cover other areas including Human Resources and Software Acquitition. The levels - focii - and key process areas are: Level 1 Initial - Heroes - None. Level 2 Repeatable - Project Management - Software Project Planning, Software Project Tracking and Oversight, Software Subcontract Management, Software Quality Assurance, Software Configuration Management, Requirements Management. Level 3 Defined - Engineering Process - Organisation Process Focus, Organisation Process Definition, Peer Reviews, Training Program, Inter-group Coordination, Software Product Engineering, Integrated Software Management. Level 4 Managed - Product and Process Quality - Software Quality Management, Quantitative Process Management. Level 5 Optimising - Continuous Improvement - Process Change Management, Technology Change Management, Defect Prevention. [Reference?] (2001-04-28) capability An {operating system} security or access control model where specific types of access to a specific object are granted by giving a process this data structure or {token}. The token may be unforgeable (typically by using {encryption} or hardware "tagged" memory). Capabilities are used in OSes such as {Hydra}, {KeyKOS}, {EROS}, {Chorus}/{Mix}, and the {Stanford V system}. Similar to {Kerberos}, but in an OS context. Compare {access control list}. (1998-03-08) Capability Maturity Model {Capabilities Maturity Model} capacitor An electronic device that can store electrical charge. The charge stored Q in Coulombs is related to the capacitance C in Farads and the voltage V across the capacitor in Volts by Q = CV. The basis of a {dynamic RAM} cell is a capacitor. They are also used for power-supply smoothing (or "decoupling"). This is especially important in digital circuits where a digital device switching between states causes a sudden demand for current. Without sufficient local power supply decoupling, this current "spike" cannot be supplied directly from the power supply due to the inductance of the connectors and so will cause a sharp drop in the power supply voltage near the switching device. This can cause other devices to malfunction resulting in hard to trace {glitch}es. (1995-04-12) capacity The maximum possible {data transfer rate} of a communications channel under ideal conditions. The total capacity of a channel may be shared between several independent data streams using some kind of {multiplexing}, in which case, each stream's data rate may be limited to a fixed fraction of the total capacity. (2001-05-22) CAPI 1. {Calendar Application Programming Interface}. 2. {Cryptographic Application Programming Interface}. 3. {Common ISDN Application Programming Interface}. (1998-09-07) Cap'n Crunch {Captain Crunch} Captain Abstraction The champion of the principles of {abstraction} and modularity, who protects unwary students on {MIT}'s course {6.001} from the nefarious designs of Sergeant Spaghetticode and his vile {concrete} programming practices. See also {spaghetti code}. (1994-11-22) Captain Crunch 1. ("Cap'n Crunch") An early 1970s {hacker}/{phreaker}/{phacker} who used a free whistle included with "Cap'n Crunch" breakfast cereal to fake pay phone system tones and make large quantities of free phone calls. Also alludes to "{crunch}". {Home (http://www.well.com/user/crunch/)}. 2. (After the above) {wardialer}. 3. Reportedly, a program which {crash}es a computer by overloading the {interrupt} {stack}. (1998-08-25) card 1. A circuit board. 2. A {punched card}. 3. An alternative term for a {node} in a system (e.g. {HyperCard}, {Notecards}) in which the node size is limited. Cardbox for Windows A database handling program, especially useful for scholars and librarians. [Details? Features? Developer? URL?] (1997-05-14) Cardbus The 32-bit version of the {PCMCIA} (PC Card) {bus}. [Spec?] (1996-08-20) cardinality The number of elements in a set. If two sets have the same number of elements (i.e. there is a {bijection} between them) then they have the same cardinality. A cardinality is thus an {isomorphism class} in the {category} of sets. {aleph 0} is defined as the cardinality of the first {infinite} {ordinal}, {omega} (the number of {natural number}s). (1995-03-29) cardinal number The {cardinality} of some set. CARDS Central Archive for Reusable Defense Software of the DoD. card walloper An {EDP} programmer who grinds out {batch program}s that do stupid things like print people's paychecks. Compare {code grinder}. See also {punched card}, {eighty-column mind}. [{Jargon File}] Career Limiting Move (CLM, Sun) Any action endangering one's future prospects of getting plum projects and raises, and possibly one's job. E.g. "His Halloween costume was a parody of his manager. He won the prize for "best CLM"." A severe bug discovered by a customer might be a "CLM bug". (2000-08-09) caret ^ Common: hat; control; uparrow; caret; {ITU-T}: circumflex. Rare: chevron; {INTERCAL}: shark (or shark-fin); to the ("to the power of"); fang; pointer (in Pascal). careware /keir'weir/ (Or "{charityware}") {Shareware} for which either the author suggests that some payment be made to a nominated charity or a levy directed to charity is included on top of the distribution charge. Compare {crippleware}. [{Jargon File}] (1994-12-16) cargo cult programming A style of (incompetent) programming dominated by ritual inclusion of code or program structures that serve no real purpose. A cargo cult programmer will usually explain the extra code as a way of working around some bug encountered in the past, but usually neither the bug nor the reason the code apparently avoided the bug was ever fully understood (compare {shotgun debugging}, {voodoo programming}). The term "cargo cult" is a reference to aboriginal religions that grew up in the South Pacific after World War II. The practices of these cults centre on building elaborate mockups of aeroplanes and military style landing strips in the hope of bringing the return of the god-like aeroplanes that brought such marvelous cargo during the war. Hackish usage probably derives from Richard Feynman's characterisation of certain practices as "cargo cult science" in his book "Surely You're Joking, Mr. Feynman" (W. W. Norton & Co, New York 1985, ISBN 0-393-01921-7). [{Jargon File}] Caribou CodeWorks The company which sells {QTRADER}. Director of Marketing: Norm Larsen . (1995-11-05) Carl Friedrich Gauss A German mathematician (1777 - 1855), one of all time greatest. Gauss discovered the {method of least squares} and {Gaussian elimination}. Gauss was something of a child prodigy; the most commonly told story relates that when he was 10 his teacher, wanting a rest, told his class to add up all the numbers from 1 to 100. Gauss did it in seconds, having noticed that 1+...+100 = 100+...+1 = (101+...+101)/2. He did important work in almost every area of mathematics. Such eclecticism is probably impossible today, since further progress in most areas of mathematics requires much hard background study. Some idea of the range of his work can be obtained by noting the many mathematical terms with "Gauss" in their names. E.g. {Gaussian elimination} ({linear algebra}); {Gaussian primes} (number theory); {Gaussian distribution} (statistics); {Gauss} [unit] (electromagnetism); {Gaussian curvature} (differential geometry); {Gaussian quadrature} (numerical analysis); {Gauss-Bonnet formula} (differential geometry); {Gauss's identity} ({hypergeometric functions}); {Gauss sums} ({number theory}). His favourite area of mathematics was {number theory}. He conjectured the {Prime Number Theorem}, pioneered the {theory of quadratic forms}, proved the {quadratic reciprocity theorem}, and much more. He was "the first mathematician to use {complex numbers} in a really confident and scientific way" (Hardy & Wright, chapter 12). He nearly went into architecture rather than mathematics; what decided him on mathematics was his proof, at age 18, of the startling theorem that a regular N-sided polygon can be constructed with ruler and compasses if and only if N is a power of 2 times a product of distinct {Fermat primes}. (1995-04-10) Carnegie Mellon University (CMU) A university in Pittsburgh, Pennsylvania. {School of Computer Science (http://www.cs.cmu.edu/Web/FrontDoor.html)}. (1997-06-23) carpal tunnel syndrome {overuse strain injury} Carriage Return (CR, Control-M, {ASCII} 13) The character which causes the {cursor} to move to the left margin, often used with {line feed} to start a new line of output. Encoded in {C} and {Unix} as "\r". (1996-06-24) Carrierless Amplitude/Phase Modulation (CAP) A design of {Asymmetric Digital Subscriber Line} {transceiver} developed by {Bell Labs}. CAP was the first ADSL design to be commercially deployed and, as of August 1996, was installed on more lines than any other. CAP is a variation of {Quadrature Amplitude Modulation}, the modulation used by most existing {modems} in 1997. With CAP, the three channels ({POTS}, downstream data and upstream data) are supported by splitting the frequency spectrum. Voice occupies the standard 0-4 Khz frequency band, followed by the upstream channel and the high-speed downstream channel. (1997-10-08) carrier scanner (Or "wardialer") A program which uses a {modem} to dial a series of phone numbers (say, from 770-0000 to 770-9999), and keeps a log of what phone numbers answer with a modem {carrier}. The results of such a search were generally used by people looking to engage in {random} mischief in {random} machines. Since the 1980s, wardialers have generally fallen into disuse, partly because of easily available "{caller ID}" technology, partly because fax machines are now in wide use and would often be logged as a {carrier} by a wardialer, and partly because there are so many new and more interesting venues for computerised mischief these days. (1997-03-16) carrier signal A continuous signal of a single frequency capable of being modulated by a second, data-carrying signal. In radio communication, the two common kinds of modulation are {amplitude modulation} and {frequency modulation}. (1995-03-01) Cartesian coordinates (After Renee Descartes, French philosopher and mathematician) A pair of numbers, (x, y), defining the position of a point in a two-dimensional space by its perpendicular projection onto two axes which are at right angles to each other. x and y are also known as the {abscissa} and {ordinate}. The idea can be generalised to any number of independent axes. Compare {polar coordinates}. (1997-07-08) Cartesian product (After Renee Descartes, French philosper and mathematician) The Cartesian product of two sets A and B is the set A x B = {(a, b) | a in A, b in B}. I.e. the product set contains all possible combinations of one element from each set. The idea can be extended to products of any number of sets. If we consider the elements in sets A and B as points along perpendicular axes in a two-dimensional space then the elements of the product are the "{Cartesian coordinates}" of points in that space. See also {tuple}. (1995-03-01) CAS {Column Address Strobe} CAS 8051 Assembler An experimental one-pass {assembler} for the 8051 with {C}-like syntax by Mark Hopkins. Most features of a modern assembler included except {macro}s (soon to be added). Requires an {ANSI-C} compiler. Ported to {MS-DOS}, {Ultrix}, {Sun-4}. (July 1993). Version 1.2. Assembler/linker, disassembler, documentation, examples. {(ftp://lyman.pppl.gov/pub/8051/assem)}, {(ftp://nic.funet.fi/pub/microprocs/MCS-51/csd4-archive/assem)}. {Other software tools and applications (ftp://nic.funet.fi/pub/compilers/8051/)}. (1995-01-26) cascade 1. A huge volume of spurious error-messages output by a {compiler} with poor {error recovery}. Too frequently, one trivial {syntax} error (such as a missing ")" or "}") throws the {parser} out of synch so that much of the remaining program text, whether correct or not, is interpreted as garbaged or ill-formed. 2. A chain of {Usenet} followups, each adding some trivial variation or riposte to the text of the previous one, all of which is reproduced in the new message; an {include war} in which the object is to create a sort of communal graffito. 3. A collection of interconneced networking devices, typically {hub}s, that allows those devices to act together as a {logical} {repeater}. [{Jargon File}] (1997-07-17) Cascading Style Sheets (CSS) An extension to {HTML} to allow styles, e.g. colour, {font}, size to be specified for certain elements of a {hypertext} document. Style information can be included in-line in the HTML file or in a separate CSS file (which can then be easily shared by multiple HTML files). Multiple levels of CSS can be used to allow selective overriding of styles. {Home (http://www.w3.org/Style/CSS/)}. (2000-07-26) CASE 1. {Computer Aided Software Engineering}. 2. {Common Application Service Element}. case 1. {switch statement}. 2. Whether a character is a capital letter ("upper case" - ABC..Z) or a small letter ("lower case" - abc..z). The term case comes from the printing trade when the use of moving type was invented in the early Middle Ages (Caxton or Gutenberg?) and the letters for each {font} were stored in a box with two sections (or "cases"), the upper case was for the capital letters and the lower case was for the small letters. The Oxford Universal Dictionary of Historical Principles (Feb 1993, reprinted 1952) indicates that this usage of "case" (as the box or frame used by a compositor in the printing trade) was first used in 1588. (1996-03-01) case and paste (From "{cut and paste}") The addition of a new {feature} to an existing system by selecting the code from an existing feature and pasting it in with minor changes. Common in telephony circles because most operations in a telephone switch are selected using "case" statements. Leads to {software bloat}. In some circles of {Emacs} users this is called "programming by Meta-W", because Meta-W is the Emacs command for copying a block of text to a {kill buffer} in preparation to pasting it in elsewhere. The term is condescending, implying that the programmer is acting mindlessly rather than thinking carefully about what is required to integrate the code for two similar cases. At {DEC}, this is sometimes called "clone-and-hack" coding. [{Jargon File}] (1996-03-01) case based reasoning (CBR) A technique for problem solving which looks for previous examples which are similar to the current problem. This is useful where {heuristic} {knowledge} is not available. There are many situations where experts are not happy to be questioned about their knowledge by people who want to write the knowledge in rules, for use in {expert systems}. In most of these situations, the natural way for an expert to describe his or her knowledge is through examples, stories or cases (which are all basically the same thing). Such an expert will teach trainees about the expertise by apprenticeship, i.e. by giving examples and by asking the trainees to remember them, copy them and adapt them in solving new problems if they describe situations that are similar to the new problems. CBR aims to exploit such knowledge. Some key research areas are efficient indexing, how to define "similarity" between cases and how to use temporal information. (1996-05-28) CASE Data Interchange Format (CDIF) An emerging standard for interchange of data between {CASE} tools. (1994-11-03) CASE framework A set of products and conventions that allow CASE tools to be integrated into a coherent environment. case insensitive {case sensitivity} Case Integration Services (CIS) A committee formed to discuss {CASE} tool integration standards related to {ATIS}. (1994-10-25) CASE*Method An analysis and design method from {Oracle} targeted at information management applications. (1994-10-28) case sensitive {case sensitivity} case sensitivity Whether a text matching operation distinguishes upper-{case} (capital) letters from lower case (is "case sensitive") or not ("case insensitive"). Case in file names should be preserved (for readability) but ignored when matching (so the user doesn't have to get it right). {MS-DOS} does not preserve case in file names, {Unix} preserves case and matches are case sensitive. Any decent {text editor} will allow the user to specify whether or not text searches should be {case sensitive}. Case sensitivity is also relevant in programming (most programming languages distiguish between case in the names of {identifiers}), and addressing ({Internet} {domain names} are case insensitive but {RFC 822} local {mailbox} names are case sensitive). Case insensitive operations are sometimes said to "fold case", from the idea of folding the character code table so that upper and lower case letters coincide. The alternative "smash case" is more likely to be used by someone who considers this behaviour a {misfeature} or in cases where one case is actually permanently converted to the other. "{MS-DOS} will automatically smash case in the names of all the files you create". (1997-07-09) CASE SOAP III Version of SOAP assembly language for IBM 650. Listed in CACM 2(5):16 (May 1959). case statement {switch statement} CASE tools Software tools to help in the application of CASE methods to a software project. cashe It's spelled "{cache}". (1996-12-13) CAST {Computer Aided Software Testing} cast {explicit type conversion} casters-up mode [IBM, probably from slang belly up] Yet another synonym for "broken" or "down". Usually connotes a major failure. A system (hardware or software) which is "down" may be already being restarted before the failure is noticed, whereas one which is "casters up" is usually a good excuse to take the rest of the day off (as long as you're not responsible for fixing it). [{Jargon File}] casting the runes What a {guru} does when you ask him or her to run a particular program because it never works for anyone else; especially used when nobody can ever see what the guru is doing different from what J. Random Luser does. Compare {incantation}, {runes}, {examining the entrails}; also see the {AI koan} about Tom Knight. (1997-12-26) CAT Common Abstract Tree Language. R. Voeller & Uwe Schmidt, U Kiel, Germany 1983. Universal intermediate language, used by Norsk Data in their family of compilers. "A Multi-Language Compiler System with Automatically Generated Codegenerators, U. Schmidt et al, SIGPLAN Notices 19(6):202-2121 (June 1984). [{Jargon File}] cat (From "catenate") {Unix}'s command which copies one or more entire files to the screen or some other output sink without pause. See also {dd}, {BLT}. Among {Unix} fans, cat is considered an excellent example of user-interface design, because it delivers the file contents without such verbosity as spacing or headers between the files (the {pr} command can be used to do this), and because it does not require the files to consist of lines of text, but works with any sort of data. Among Unix haters, cat is considered the {canonical} example of *bad* user-interface design, because of its woefully unobvious name. It is far more often used to {blast} a file to standard output than to concatenate files. The name "cat" for the former operation is just as unintuitive as, say, LISP's {cdr}. Of such oppositions are {holy wars} made. (1994-11-29) Cat 3 {Category 3} Cat 5 {Category 5} catatonic Describes a condition of suspended animation in which something is so {wedged} or {hung} that it makes no response. If you are typing on a {terminal} and suddenly the computer doesn't even echo the letters back to the screen as you type, let alone do what you're asking it to do, then the computer is suffering from catatonia (possibly because it has crashed). Compare {buzz}. [{Jargon File}] CATE Computer Aided Test Engineering: CASE methods applied to electronics testing and linked to CAE Categorical Abstract Machine Language {Objective CAML} category A category K is a collection of objects, obj(K), and a collection of {morphisms} (or "{arrows}"), mor(K) such that 1. Each morphism f has a "typing" on a pair of objects A, B written f:A->B. This is read 'f is a morphism from A to B'. A is the "source" or "{domain}" of f and B is its "target" or "{co-domain}". 2. There is a {partial function} on morphisms called {composition} and denoted by an {infix} ring symbol, o. We may form the "composite" g o f : A -> C if we have g:B->C and f:A->B. 3. This composition is associative: h o (g o f) = (h o g) o f. 4. Each object A has an identity morphism id_A:A->A associated with it. This is the identity under composition, shown by the equations id_B o f = f = f o id_A. In general, the morphisms between two objects need not form a {set} (to avoid problems with {Russell's paradox}). An example of a category is the collection of sets where the objects are sets and the morphisms are functions. Sometimes the composition ring is omitted. The use of capitals for objects and lower case letters for morphisms is widespread but not universal. Variables which refer to categories themselves are usually written in a script font. (1997-10-06) Category 3 (Cat 3, or "voice grade") An American Standards Institute standard for cables. Used, e.g., for {100BaseVG} network cabling. (1998-06-30) Category 5 (Cat 5) An American Standards Institute standard for cables. Used, e.g., for {100BaseTX} cabling. (1998-06-30) CA-Telon A {Computer Aided Software Engineering} (CASE) tool for designing, generating and maintaining {COBOL} and {PL/I} {application programs}. Telon was developed by {Pansophic} Systems who were bought by {Computer Associates} in 1991, whereupon it was renamed CA-Telon. It supports high-level, non-{prodedural} design and prototyping, combined with automatic {code generation}. There are {mainframe} and {PC} versions. The generated COBOL applications can execute in {AIX}, {HP-UX}, {VSE}, {OS/400} for the {AS/400}, {PC-DOS}, or {OS/2}. (2000-01-19) cathode ray tube (CRT) An electrical device for displaying images by exciting phosphor dots with a scanned electron beam. CRTs are found in computer {VDU}s and {monitors}, televisions and oscilloscopes. The first commercially practical CRT was perfected on 29 January 1901 by Allen B DuMont. A large glass envelope containing a negative electrode (the cathode) emits electrons (formerly called "cathode rays") when heated, as in a {vacuum tube}. The electrons are accelerated across a large voltage gradient towards the flat surface of the tube (the screen) which is covered with phosphor. When an electron strikes the phosphor, light is emitted. The electron beam is deflected by electromagnetic coils around the outside of the tube so that it scans across the screen, usually in horizontal stripes. This scan pattern is known as a {raster}. By controlling the current in the beam, the brightness at any particular point (roughly a "{pixel}") can be varied. Different phosphors have different "{persistence}" - the length of time for which they glow after being struck by electrons. If the scanning is done fast enough, the eye sees a steady image, due to both the persistence of the phospor and of the eye itself. CRTs also differ in their {dot pitch}, which determines their spatial {resolution}, and in whether they use {interlace} or not. (1994-11-17) CATIA A {CAD}/CAM system produced by Dassault Systemes and sold by {IBM}. CATIA is used heavily in the car and aerospace industries. It runs on various {Unix} platforms and {Windows NT}. {Home (http://www.catia.ibm.com/catmain.html)}. (1999-09-18) cationic cocktail (Or "Downy cocktail") Diluted fabric softener sprayed on computer room carpets to prevent static electricity from being built up by feet shuffling on carpet. The {canonical} cationic cocktail is one part unscented liquid fabric softener (in the US, usually "Downy" brand) to five parts water. "Cationic" is the chemical term for the most common active ingredient in fabric softeners. The use of the term "cocktail" may be influenced by its use in other jargons, especially pharmacological and chemical, to denote a mixture which, like cationic cocktail, typically contains no alcohol and would be unwise to drink. (1998-04-04) C/ATLAS A DoD test language. It is a variant of {ATLAS}. (1995-05-01) CATNIP {Common Architecture for Next Generation Internet Protocol} CATO Fortran-like CAI language for PLATO system on CDC 1604. "CSL PLATO System Manual", L.A. Fillman, U Illinois, June 1966. Cauchy sequence A sequence of elements from some {vector space} that converge and stay arbitrarily close to each other (using the {norm} definied for the space). (2000-03-10) cause-effect graphing A testing technique that aids in selecting, in a systematic way, a high-yield set of test cases that logically relates causes to effects to produce test cases. It has a beneficial side effect in pointing out incompleteness and ambiguities in specifications. (1996-05-10) CAV {Constant Angular Velocity} Cayenne Software The company formed when {CADRE} merged with {Bachman Information Systems} in July 1996. {Home (http://www.cayennesoft.com/)}. [Details?] (2001-04-30) CAYLEY A {symbolic mathematics} system for {group theory} written by John Cannon of the {University of Sydney}, Australia in 1976. Cayley was used at about 100 sites but has been superceded by a much more general system, {Magma}. ["An Introduction to the Group Theory Language CAYLEY", J. Cannon, Computational Group Theory, M.D. Atkinson ed, Academic Press 1984, pp. 148-183]. Current version: V3.7, for {Sun}, {Apollo}, {VAX}/{VMS}. (2000-09-03) cb {C Beautifier} CBASIC A {BASIC} compiler by Gordon Eubanks, now at {Symantec}. It evolved from/into {EBASIC}. (1994-11-29) C-BC A {strongly typed} version of {BC} by Mark Hopkins, with expanded {C}-like {syntax}, more base types and the ability to form {array} and pointer types of any dimension and to allocate/free arrays at run-time. Most {POSIX-BC} features are supported, except that functions must be declared consistently and declared before first use. String handling is slightly different. It requires and {ANSI-C} compiler and runs under {MS-DOS} or {Unix}. Version 1.1. Posted to {alt.sources} 1993-04-10. (1993-08-23) CBD {component based development} C Beautifier (cb) A {Unix} tool for reformatting {C} {source} code. {Unix manual page}: cb(1). CBIR {content-based information retrieval}. (1995-11-23) CBN {call-by-name} CBR {case based reasoning} CBT {Computer-Based Training} CBV {call-by-value} cbw {Crypt Breakers Workbench} cc The {country code} for the Cocos (Keeling) Islands. (1999-01-27) CC++ {Compositional C++} C/C++ 1. {Borland C/C++}. 2. {Watcom C/C++}. 3. Either {C} or {C++}. (1996-04-06) CCalc A {symbolic mathematics} system for {MS-DOS}, available from {Simtel}. (1995-04-12) CCD {Charge-Coupled Device} CCIRN Coordinating Committee for Intercontinental Research Networks. CCITT Commite' Consultatif International de Telegraphique et Telephonique. (International consultative committee on telecommunications and Telegraphy). CCITT changed its name to {ITU-T} on 1 March 1993. (1994-11-03) CCITT HIgh-Level Language (CHILL) A {real-time} language widely used in telecommunications. CHILL was developed in the 1970s and improved in 1984, 1988, 1992, and 1996. It is used in several countries including Germany, Norway, Brasil, and South Korea. {Cygnus} are developing a compiler based on {gcc}. {(http://www1.informatik.uni-jena.de/languages/chill/chill.htm)}. ["An Analytical Description of CHILL, the CCITT High Level Language", P. Branquart, LNCS 128, Springer 1982]. ["CHILL User's Manual", ITU, 1986, ISBN 92-61-02601-X. ISO-9496 (1988?)]. (1997-01-20) CCL 1. Coral Common LISP. 2. Computer Control Language. English-like query language based on COLINGO, for IBM 1401 and IBM 1410. CCLU Cambridge CLU. {CLU} extended to support {concurrency}, distributed programming and {remote procedure call}, by G. Hamilton et al at {CUCL}. E-mail: Jean Bacon . (1994-10-13) ccmail It's written {cc:mail}. cc:mail Commercial {electronic mail} software by {Lotus Corporation} for {Microsoft Windows}. (1995-03-14) CCP {Concurrent Constraint Programming} Not a language, but a general approach. CCR 1. {condition code register}. 2. (Database) {concurrency control and recovery}. CCS 1. {Common Communication Services}. 2. {Calculus of Communicating Systems}. 3. {Computer Conservation Society}. 4. {Common Command Set}. 5. {Centi-Call Second}. (1997-10-22) CCSP {Contextually Communicating Sequential Processes} CCTA The Government Centre for Information Systems. (Originally "Central Computer and Telecommunications Agency"). CCTA is part of the Office of Public Service and Science, which works to improve government's services to the public. They are responsible for stimulating and promoting the effective use of Information Systems in support of the efficient delivery of business objectives and improved quality of services by the public sector. CCTA had to change its name as it was not an agency in the "Next Steps" sense. The letters were retained as customers were familiar with them. {Home (http://www.open.gov.uk/)} E-mail: . Address: Norwich, UK. (1995-01-18) CD {Compact Disc} cd 1. {change directory}. 2. The {country code} for the Democratic Republic of the Congo (formerly Zaire, {zr}). (1999-01-27) CDA 1. {Compound Document Architecture}. 2. {Communications Decency Act}. CDC {Control Data Corporation} CDDI {Copper Distributed Data Interface} CDD/Plus {DEC}'s {CASE} {repository}. CDE 1. C Development environment from {IDE}. 2. {Common Desktop Environment}. 3. {Co-operative Development Environment}. (1996-07-11) CDF Common Data Format. A library and toolkit for multi-dimensional data sets. CD-i {Compact Disc interactive} CDIF {CASE Data Interchange Format} CDL 1. Computer Definition [Design?] Language. A hardware description language. "Computer Organisation and Microprogramming", Yaohan Chu, P-H 1970. 2. Command Definition Language. Portion of ICES used to implement commands. Sammet 1969, p.618-620. 3. Compiler Description Language. C.H.A. Koster, 1969. Intended for implementation of the rules of an affix grammar by recursive procedures. A procedure may be a set of tree-structured alternatives, each alternative is executed until one successfully exits. Used in a portable COBOL-74 compiler from MPB, mprolog system from SzKI, and the Mephisto chess computer. "CDL: A Compiler Implementation Language", in Methods of Algorithmic Language Implementation, C.H.A. Koster, LNCS 47, Springer 1977, pp.341-351. "Using the CDL Compiler Compiler", C.H.A. Koster, 1974. Versions: CDL2, CDLM used at Manchester. 4. Common Design Language. "Common Design Language", IBM, Software Engineering Inst, Sept 1983. 5. Control Definition Language. Ideas which contributed to Smalltalk. ["Control Structures for Programming Languges", David A. Fisher, PhD Thesis, CMU 1970]. CDM 1. {Content Data Model} 2. {Code Division Multiplexing} CDMA {Code Division Multiple Access} CDP1802 {RCA 1802} CDPD {Cellular Digital Packet Data} cdr /ku'dr/ or /kuh'dr/ [LISP] To skip past the first item from a list of things (generalised from the LISP operation on binary tree structures, which returns a list consisting of all but the first element of its argument). In the form "cdr down", to trace down a list of elements: "Shall we cdr down the agenda?" Usage: silly. See also {loop through}. Historical note: The instruction format of the IBM 7090 that hosted the original LISP implementation featured two 15 bit fields called the "address" and "decrement" parts. The term "cdr" was originally "Contents of Decrement part of Register". Similarly, "car" stood for "Contents of Address part of Register". The cdr and car operations have since become bases for formation of compound metaphors in non-LISP contexts. {GLS} recalls, for example, a programming project in which strings were represented as linked lists; the get-character and skip-character operations were of course called CHAR and CHDR. [{Jargon File}] (2001-06-22) CD-R {Compact Disc Recordable} CD-Read-Write {Compact Disc Rewritable} CD-Rewritable {Compact Disc Rewritable} CD-ROM {Compact Disc Read-Only Memory} CD-ROM drive {Compact Disc Read-Only Memory} CD-RW {Compact Disc Rewritable} CDS {Concrete Data Structure} cd tilde /C-D til-d*/ To go home. From the {Unix} {C shell} and Korn-shell command "cd ~", which takes one to one's "$HOME" directory. "cd" with no arguments does the same thing. [{Jargon File}] (1994-10-28) CE {IBM Customer Engineer} Cecil AN {object-oriented} language combining {multi-method}s with a classless object model, object-based {encapsulation} and optional {static type checking}. It distinguishes between {subtyping} and {code inheritance}. Includes both explicit and implicit parameterisation of objects, types, and methods. {(ftp://cs.washington.edu/pub/chambers/cecil-spec.ps.Z)} ["The Cecil Language: Specification and Rationale", C. Chambers, TR 93-03-05, U Wash (Mar 1993)]. (1994-10-28) Cedar A superset of {Mesa}, from {Xerox PARC}, adding {garbage collection}, {dynamic type}s and a universal pointer type (REF ANY). Cedar is a large complex language designed for custom Xerox hardware and the Cedar {operating system}/environment. Data types are {atom}s, lists, ropes ("industrial strength" strings), conditions. Multi-processing features include {thread}s, {monitor}s, {signal}s and catch phrases. It was used to develop the Cedar integrated programming environment. ["A Description of the Cedar Language", Butler Lampson, Xerox PARC, CSL-83-15 (Dec 1983)]. ["The Structure of Cedar", D. Swinehart et al, SIGPLAN Notices 20(7):230-244 (July 1985)]. (1995-01-26) CEEMAC+ Graphics language for DOS 3.3 on {Apple II}. CEI-PACT Central European Initiative on Parallel Computation. Celeron {Intel Corporation}'s trade name for its family of {Pentium II} {microprocessors} meant for use in low-end computers. The Celeron is constructed on the 0.25 micron Deschutes base. {Clock rates} of 266, 300 and 333 {MHz} are supported. It is built on the same {daughterboard} as the Pentium II without the black plastic case and {heat sink}. Four Celeron models are in production as of October 1998. The 266 and 300 MHz models are essentially Pentium II {CPU}s without the Level 2 {cache} {RAM}. The 300A and 333 MHz Celerons include 128k of Level 2 cache. A special mounting bracket on the motherboard is used to secure the Celeron in place in its standard 242-pin Slot 1 socket. Intel calls the caseless design SEPP (Single Edge Processor Package) to differentiate it from the Pentium II SEC (Single Edge Cartridge). Some believe that the real purpose for the different mounting configurations is to prevent users from placing lower cost processors onto Pentium II motherboards. A Celeron is about one third the cost of a similar speed Pentium II. Hardware {hackers} claim that the Celeron 300 without Level 2 cache could be {overclocked} to perform as well as a Pentium II at a fraction of the price. {Home (http://www.intel.com/Celeron/)}. {Tom's Hardware (http://www2.tomshardware.com/cpuslot1.html)}. (1998-10-06) CELIP A cellular language for {image processing}. ["CELIP: A cellular Language for Image Processing", W. Hasselbring , Parallel Computing 14:99-109 (1990)]. (1994-12-05) cell {ATM}'s term for a {packet}. (1996-08-21) Cellang See {Cellular}. CELLAS CELLular ASsemblies. A {concurrent} {block-structured} language. [Mentioned in "Attribute Grammars", LNCS 323, p.97]. (1994-12-05) Cello {World-Wide Web} {browser} {client} for {IBM PC}s. Runs under {Microsoft Windows}. CELLSIM A program for modelling populations of biological cells. ["CELLSIM II User's Manual", C.E. Donaghey, U Houston. Sep 1975]. (1994-12-05) Cellular A system for {cellular automaton} programming by J Dana Eckart . Cellular includes a {byte-code compiler}, {run-time system}, and a viewer. Latest version: 2.0, as of 1993-04-03. Posted to comp.sources.unix, volume 26. See also {Cellang}. (2000-10-07) cellular automata {cellular automaton} cellular automaton (CA, plural "- automata") A regular spatial lattice of "cells", each of which can have any one of a finite number of states. The state of all cells in the lattice are updated simultaneously and the state of the entire lattice advances in discrete time steps. The state of each cell in the lattice is updated according to a local rule which may depend on the state of the cell and its neighbors at the previous time step. Each cell in a cellular automaton could be considered to be a {finite state machine} which takes its neighbours' states as input and outputs its own state. The best known example is J.H. Conway's game of {Life}. {FAQ (http://alife.santafe.edu/alife/topics/cas/ca-faq/ca-faq.html)}. {Usenet} newsgroups: {news:comp.theory.cell-automata}, {news:comp.theory.self-org-sys}. (1995-03-03) Cellular Digital Packet Data (CDPD) A wireless standard providing two-way, 19.2 kbps {packet} data transmission over exisiting {cellular telephone} channels. [Reference?] (1994-12-05) cellular multiprocessing (CMP) The partitioning of {processors} into separate computing environments running different {operating systems}. The term cellular multiprocessing appears to have been coined by {Unisys}, who are developing a system where computers communicate as clustered machines through a high speed {bus}, rather than through communication {protocols} such as {TCP/IP}. The Unisys system is based on {Intel} processors, initially the {Pentium II Xeon} and moving on to the 64-bit {Merced} processors later in 1999. It will be scalable from four up to 32 processors, which can be clustered or partitioned in various ways. For example a sixteen processor system could be configured as four {Windows NT} systems (each functioning as a four-processor {symmetric multiprocessing} system), or an 8-way NT and 8-way {Unix} system. Supported operating systems will be {Windows NT}, {SCO}'s {Unixware} 7.0, Unisys' {SVR4} {Unix} and possibly the OS2200 and MCP-AS {mainframe} operating systems (with the assistance of Unisys' own dedicated {chipset}). {Home (http://www.marketplace.unisys.com/ent/cmp.html)}. (1998-09-09) Cellular Neural Network (CNN) The CNN Universal Machine is a low cost, low power, extremely high speed {supercomputer} on a chip. It is at least 1000 times faster than equivalent {DSP} solutions of many complex {image processing} tasks. It is a stored program supercomputer where a complex sequence of image processing {algorithm}s is programmed and downloaded into the chip, just like any digital computer. Because the entire computer is integrated into a chip, no signal leaves the chip until the image processing task is completed. Although the CNN universal chip is based on analogue and logic operating principles, it has an on-chip analog-to-digital input-output interface so that at the system design and application perspective, it can be used as a digital component, just like a DSP. In particular, a development system is available for rapid design and prototyping. Moreover, a {compiler}, an {operating system}, and a {user-friendly} CNN {high-level language}, like the {C} language, have been developed which makes it easy to implement any image processing algorithm. [Professor Leon Chua, University of California at Berkeley]. (1995-04-27) CELP Computationally Extended Logic Programming. ["Computationally Extended Logic Programming", M.C. Rubenstein et al, Comp Langs 12(1):1-7 (1987)]. (1995-04-27) CEN Conseil Européen pour la Normalisation. A body coordinating {standard}isation activities in the EEC and EFTA countries. (1994-12-14) CENELEC The European Committee for Electrotechnical Standardization. A body developing electrotechnical standards for the Single European Market / European Economic Area in order to reduce internal frontiers and trade barriers for electrotechnical products, systems and services. CENELEC's 19 member countries and 11 affiliate countries aim to adopt and implement the required standards, which are mostly identical to the {International Electrotechnical Commission} (IEC) standards. CENELEC works in co-operation with {Comité Européen de Normalisation} (CEN) and {European Telecommunications Standards Institute} (ETSI). (1999-09-28) Centi-Call Second (CCS) A unit used (in North America) to quantify the aggregate of traffic running in a network. 1 CCS is 100 Call-Seconds. That means 1 CCS could be 2 calls of 50 seconds duration or 20 calls of 5 seconds duration. (1997-10-22) central office The place where telephone companies terminate customer lines and locate switching equipment to interconnect those lines with other networks. (1995-03-20) Central office exchange service (Centrex) A {PBX} service providing {switching} at the {central office} instead of at the company premises. Typically, the telephone company owns and manages all the communications equipment necessary to implement the PBX and then sells various services to the company. (1999-10-27) central processing unit (CPU, processor) The part of a computer which controls all the other parts. Designs vary widely but, in general, the CPU consists of the {control unit}, the {arithmetic and logic unit} (ALU) and memory ({registers}, {cache}, {RAM} and {ROM}) as well as various temporary buffers and other logic. The control unit fetches instructions from memory and decodes them to produce signals which control the other part of the computer. This may cause it to transfer data between memory and ALU or to activate {peripherals} to perform input or output. A {parallel computer} has several CPUs which may share other resources such as memory and peripherals. The term "processor" has to some extent replaced "CPU", though RAM and ROM are not normally considered as part of a processor. This is particularly true of common modern {microprocessors} though there have been microprocessors which include RAM and/or ROM on the same {integrated circuit}. The {CPU Info Center} lists many kinds of CPU. (1998-10-21) Centrex {Central office exchange service} Centronics (Named after the company who first used it(?)) A {parallel interface} for printers, found on many {microcomputers}. [Pin-out? Origin?] (1998-03-15) Centrum voor Wiskunde en Informatica (CWI, Centre for Mathematics and Computer Science) An independent research institute active in the fields of mathematics and computer science. CWI also aims to transfer new knowledge in these fields to society, trade and industry CWI is funded for 70 percent by NWO, the National Organisation for Scientific Research. The remaining 30 percent is obtained through national and international programmes and contract research commissioned by industry. Address: Kruislaan 413, 1098 SJ Amsterdam, The Netherlands; P.O.Box 94079, 1090 GB Amsterdam, The Netherlands. Telephone: +31 (20) 5929 333. {Home (http://www.cwi.nl/)} {(ftp://ftp.cwi.nl/pub/)}. century meltdown {Year 2000} cepstra {cepstrum} cepstrum (Coined in a 1963 paper by Bogert, Healey, and Tukey) The {Fourier transform} of the log-magnitude spectrum: fFt(ln( | fFt(window . signal) | )) This function is used in {speech recognition} and possibly elsewhere. Note that the outer transform is NOT an inverse Fourier transform (as reported in many respectable DSP texts). [What's it for?] (1997-01-07) CEPT {Comite Europeen des Postes et Telecommunications} CER {Canonical Encoding Rules} Ceramic Pin Grid Array (CPGA) A form of {Pin Grid Array} package used by {Cyrix III} {processors}. Compare {PPGA} and {FC-PGA}. [Other uses?] (2000-08-26) Ceres workstation Oberon System A complete {Oberon} compiler written in {Oberon}. Source to most of the complete Ceres workstation Oberon System, including the {NS32032} {code generator} is available. Less of the low level system specific code is available. {(ftp://neptune.ethz.ch/Oberon/)} (1994-12-14) Cerf, Vint {Vint Cerf} CERN The European Laboratory for Particle Physics. CERNLIB The CERN Program Library. CERT {Computer Emergency Response Team} Certificate Authority (CA or "Trusted Third Party") An entity (typically a company) that issues {digital certificates} to other entities (organisations or individuals) to allow them to prove their identity to others. A Certificate Authority might be an external company such as {VeriSign} that offers digital certificate services or they might be an internal organisation such as a corporate {MIS} department. The Certificate Authority's chief function is to verify the identity of entities and issue digital certificates attesting to that identity. The process uses {public key cryptography} to create a "network of trust". If I want to prove my identity to you, I ask a CA (who you trust to have verified my identity) to encrypt a {hash} of my signed key with their {private key}. Then you can use the CA's {public key} to decrypt the hash and compare it with a hash you calculate yourself. Hashes are used to decrease the amount of data that needs to be transmitted. The hash function must be {cryptographically strong}, e.g. {MD5}. {(http://home.netscape.com/comprod/server_central/support/faq/certificate_faq.html#11)}. (1998-03-30) CESP {Common ESP} CESSL CEll Space Simulation Language. A language for simulating cellular space models. ["The CESSL Programming Language", D.R. Frantz, 012520-6-T, CS Dept, U Michigan (Sept 1971)]. (1994-12-14) cextract A {C} {prototype} extractor by Adam Bryant . It can generate {header files} for large multi-file C programs, and will automatically generate prototypes for all of the functions in such a program. It can also generate a sorted list of all functions and their locations. cextract version 1.7 works with both {ANSI C} and {K&R C} and runs under {Unix} and {VMS}. Posted to comp.sources.reviewed. (1992-11-03) cf The {country code} for the Central African Republic. (1999-01-27) CFD Computational Fluid Dynamics. A {Fortran}-based parallel language for the {Illiac IV}. (1994-11-29) CFML {ColdFusion Markup Language} cforth A {Forth} {interpreter}. Posted to comp.sources.unix volume 1. (1994-11-29) cfortran.h A {transparent}, machine independent interface between {C} and {Fortran} routines and {global data} by Burkhard Burow at CERN in Swizerland. It provides {macros} which allow the {C} {preprocessor} to translate a simple description of a C (Fortran) routine or global data into a Fortran (C) interface. Version 2.6 runs on {VAX}/{VMS}/{Ultrix}, {DECstation}, {Silicon Graphics}, {IBM} {RS/6000}, {Sun}, {Cray}, {Apollo}, {HP9000}, {LynxOS}, {f2c}, {NAG f90}. {(ftp://zebra.desy.de/cfortran/)} It was reviewed in RS/Magazine November 1992 and a user's experiences with cfortran.h are described in the Jan 93 issue of Computers in Physics. (1992-04-12) CFP 1. {Constraint Functional Programming}. 2. {Communicating Functional Processes}. 3. Call For Papers (for a conference). CFP92 {SPEC CFP92} cg The {country code} for Congo. (1999-01-27) CGA {Color Graphics Adapter} CGGL ("seagull") Code-Generator Generator Language. A machine description language based on modelling the computer as a {finite-state machine}. ["A Code Generator Generator Language", M.K. Donegan et al, SIGPLAN Notices 14(8):58-64 (Aug 1979)]. (1994-10-24) CGI 1. {Common Gateway Interface}. 2. {computer-generated imagery}. 3. A French {software engineering} vendor in the US. 4. {Computer Generation Incorporated}. (1997-02-11) cgi-bin {Common Gateway Interface} CGI Joe (From "GI Joe") A hard-core {CGI} script programmer with all the social skills and charisma of a plastic action figure. (1997-03-30) CGI program (Often "CGI script") A program running on a {web server} to produce dynamic content, usually an {HTML} {web page}, in response to a user's request. The {Common Gateway Interface} specification defines the interface between the web server and such programs. The program can access any data that a normal application program can, however the facilities available to CGI programs are usually limited for security. Although CGI programs can be compiled programs, they are more often written in a (semi) {interpreted language} such as {Perl}, or as {Unix} {shell scripts}, hence the name "CGI script". Here is a trivial CGI script written in Perl. (It requires the "CGI" module available from {CPAN}). #!/usr/bin/perl use CGI qw(:standard); print header, start_html, h1("CGI Test"), "Your IP address is: ", remote_host(), end_html; When run it produces an {HTTP} header and then a simple HTML page containing the {IP address} or {hostname} of the machine that generated the initial request. If run from a command prompt it outputs: Content-Type: text/html Untitled Document

CGI Test

Your IP address is: localhost The CGI program might be saved as the file "test.cgi" (or test.pl) in the appropriate directory on a web server, e.g. "/home/httpd/cgi-bin/". A user could then type the appropriate {URL}, e.g. http://www.acme.com/cgi-bin/test.cgi, into their {web browser} to get the program to run and a custom page produced for them. Early web servers required all CGI programs to be installed in one directory called cgi-bin but it is much better to keep them with the HTML files to which they relate unless they are truly global to the site. All modern web servers make this easy to do. (2000-06-23) CGI script {CGI program} CGM {Computer Graphics Metafile} CGOL A package providing {ALGOL}-like surface syntax for {MACLISP} written by V.R. Pratt in 1977. {(ftp://mc.lcs.mit.edu/its/ai/lisp/cgol.fasl)} ["CGOL - An Alternative Exetrnal Representation for LISP Users", V. Pratt, MIT AI Lab, Working Paper 89, 1976]. cgram An {ANSI C} {LL1} or {LL2} {grammar} written in {Scheme} by Mohd Hanafiah Abdullah . A program (f-f-d.s) extracts the FIRST/FOLLOW/DIRECTOR sets. {(ftp://primost.cs.wisc.edu/pub/comp.compilers/cgram-ll1.Z)} ch The {country code} for Switzerland. (1999-01-27) chad /chad/ (Or "selvage" /sel'v*j/ (sewing and weaving), "{perf}", "perfory", "snaf"). 1. The perforated edge strips on paper for {sprocket feed} printers, after they have been separated from the printed portion. The term {perf} may also refer to the perforations themselves, rather than the chad they produce when torn. [Why "snaf"?] 2. (Or "chaff", "computer confetti", "keypunch droppings") The confetti-like bits punched out of {punched cards} or {paper tape} which collected in the {chad box}. One of the {Jargon File}'s correspondents believed that "chad" derived from the {chadless keypunch}. [{Jargon File}] (1997-07-18) chad box ({IBM} called this a "chip box") A metal box about the size of a lunchbox (or in some models a large wastebasket), for collecting the {chad} that accumulated in {Iron Age} {card punches}. You had to open the covers of the card punch periodically and empty the chad box. The {bit bucket} was notionally the equivalent device in the {CPU} enclosure, which was typically across the room in another great grey-and-blue box. [{Jargon File}] (1996-11-20) Chadless keypunch A {card punch} which cut little U-shapes in {punched cards}, rather than punching out a circle or rectangle. The U's made a hole when folded back. One of the {Jargon File}'s correspondents believed that the term "chad" derived from the {Chadless keypunch}. Obviously, if the Chadless keypunch didn't make them, then the stuff that other keypunches made had to be "{chad}". The assertion that the keypunch was was named after its inventor is not supported by any record in US or UK patents or surname references. (2000-11-22) chain 1. (From {BASIC}'s "CHAIN" statement) To pass control to a child or successor without going through the {operating system} {command interpreter} that invoked you. The state of the parent program is lost and there is no returning to it. Though this facility used to be common on memory-limited {microcomputers} and is still widely supported for {backward compatibility}, the jargon usage is semi-obsolescent; in particular, {Unix} calls this {exec}. Compare with the more modern "{subshell}". 2. A series of linked data areas within an {operating system} or {application program}. "Chain rattling" is the process of repeatedly running through the linked data areas searching for one which is of interest. The implication is that there are many links in the chain. 3. A possibly infinite, non-decreasing sequence of elements of some {total ordering}, S x0 <= x1 <= x2 ... A chain satisfies: for all x,y in S, x <= y \/ y <= x. I.e. any two elements of a chain are related. ("<=" is written in {LaTeX} as {\sqsubseteq}). [{Jargon File}] (1995-02-03) Challenge-Handshake Authentication Protocol (CHAP) An {authentication} scheme used by {PPP} servers to validate the identity of the originator of the connection upon connection or any time later. CHAP applies a three-way {handshaking} procedure. After the link is established, the server sends a "challenge" message to the originator. The originator responds with a value calculated using a {one-way hash function}. The server checks the response against its own calculation of the expected hash value. If the values match, the authentication is acknowledged; otherwise the connection is usually terminated. CHAP provides protection against {playback} attack through the use of an incrementally changing identifier and a variable challenge value. The authentication can be repeated any time while the connection is open limiting the time of exposure to any single attack, and the server is in control of the frequency and timing of the challenges. As a result, CHAP provides grater security then {PAP}. CHAP is defined in {RFC} 1334. (1996-03-05) Chalmers University of Technology A Swedish university founded in 1829 offering master of science and doctoral degrees. Research is carried out in the main engineering sciences as well as in technology related mathematical and natural sciences. Five hundred faculty members work in more than 100 departments organised in nine schools. Chalmers collaborates with the University of Göteborg. Around 8500 people work and study on the Chalmers campus, including around 500 faculty members and some 600 teachers and doctoral students. About 4800 students follow the master degree programs. Every year 700 Masters of Science in Engineering and in Architecture graduate from Chalmers, and about 190 PhDs and licentiates are awarded. Some 40% of Sweden's engineers and architects are Chalmers graduates. About a thousand research projects are in progress and more than 1500 scientific articles and research reports are published every year. Chalmers is a partner in 80 EC research projects. {Home (http://www.chalmers.se/Home-E.html)} Address: S-412 96 Göteborg, SWEDEN. Telephone: +46 (31) 772 10 00. Fax: +46 (31) 772 38 72. (1995-02-16) change management A set of techniques that aid in evolution, composition and policy management of the design and implementation of an object or system. (1995-02-16) channel (Or "chat room", "room", depending on the system in question) The basic unit of group discussion in {chat} systems like {IRC}. Once one joins a channel, everything one types is read by others on that channel. Channels can either be named with numbers or with strings that begin with a "#" sign and can have topic descriptions (which are generally irrelevant to the actual subject of discussion). Some notable channels are "#initgame", "#hottub" and "#report". At times of international crisis, "#report" has hundreds of members, some of whom take turns listening to various news services and typing in summaries of the news, or in some cases, giving first-hand accounts of the action (e.g. Scud missile attacks in Tel Aviv during the Gulf War in 1991). [{Jargon File}] (1998-01-25) channel hopping To rapidly switch channels on {IRC}, or a {GEnie} chat board, just as a social butterfly might hop from one group to another at a party. This term may derive from the TV idiom, "channel surfing". [{Jargon File}] (1994-11-29) channel op /chan'l op/ (Or "{op}", "chan op", "chop") Someone who is endowed with privileges on a particular {IRC} {channel}. These privileges include the right to {kick} users, to change various status bits and to make others into CHOPs. The full form, "channel operator", is almost never used. [{Jargon File}] (1998-01-08) channel service unit (CSU) A type of interface used to connect a {terminal} or computer to a digital medium in the same way that a {modem} is used for connection to an analogue medium. A CSU is provided by the communication carrier to customers who wish to use their own equipment to retime and regenerate the incoming signals. The customer must supply all of the transmit logic, receive logic, and timing recovery in order to use the CSU, whereas a {digital service unit} DSU performs these functions. (1995-01-30) channel service unit/data service unit (CSU/DSU) A device that performs both the {channel service unit} (CSU) and {data service unit} DSU functions. The Channel Service Unit (CSU) is used to terminate a {DS1} or {DS0} (56/64 kb/s) digital circuit. It peforms {line conditioning}, protection, {loop-back} and timing functions. The Data Service Unit (DSU) terminates the data circuit to the {Data Terminal Equipment} (DTE) and converts the customer's data stream into a bi-polar format for transmission. (1995-02-28) chan op {channel op} chaos A property of some non-linear dynamic systems which exhibit sensitive dependence on initial conditions. This means that there are initial states which evolve within some finite time to states whose separation in one or more dimensions of state space depends, in an average sense, exponentially on their initial separation. Such systems may still be completely {deterministic} in that any future state of the system depends only on the initial conditions and the equations describing the change of the system with time. It may, however, require arbitrarily high precision to actually calculate a future state to within some finite precision. ["On defining chaos", R. Glynn Holt and D. Lynn Holt . {(ftp://mrcnext.cso.uiuc.edu/pub/etext/ippe/preprints/Phil_of_Science/Holt_and_Holt.On_Defining_Chaos)}] Fixed precision {floating-point} arithmetic, as used by most computers, may actually introduce chaotic dependence on initial conditions due to the accumulation of rounding errors (which constitutes a non-linear system). (1995-02-07) CHAP {Challenge-Handshake Authentication Protocol} char /keir/ or /char/; rarely, /kar/ character. Especially used by {C} programmers, as "char" is {C}'s typename for character data. [{Jargon File}] (1994-11-29) character An {atom} in a {character repertoire}. Compare with {glyph}. (1998-10-18) character encoding (Or "character encoding scheme") A mapping of {binary} values to {code positions} and back; generally a 1:1 ({bijective}) mapping. In the case of {ASCII}, this is generally a f(x)=x mapping: code point 65 maps to the byte value 65, and vice versa. This is possible because ASCII uses only code positions representable as single bytes, i.e., values between 0 and 255, at most. ({US-ASCII} only uses values 0 to 127, in fact.) {Unicode} and many {CJK} {coded character sets} use many more than 255 positions, requiring more complex mappings: sometimes the characters are mapped onto pairs of bytes (see {DBCS}). In many cases, this breaks programs that assume a one-to-one mapping of bytes to characters, and so, for example, treat any occurrance of the byte value 13 as a {carriage return}. To avoid this problem, character encodings such as {UTF-8} were devised. (1998-10-18) character encoding scheme {character encoding} character graphics {ASCII art} characteristic function The characteristic function of set returns True if its argument is an element of the set and False otherwise. (1995-04-13) character repertoire The set of all {characters} onto which a {coded character set} maps {integers} ({code positions}). For example, consider these two simple coded character sets: Coded Character Set One: integer 0 -> the character "A" integer 1 -> the character "B" Coded Character Set Two: integer 0 -> the character "B" integer 1 -> the character "A" Both of these coded character sets map to the characters "A" and "B", so they have the same character repertoire. But since the mapping is different (and obviously incompatible), these are different coded character sets. (1998-12-17) character set 1. A particular mapping between {characters} and {byte strings}, i.e. the combination of a particular {character encoding} (which maps between byte strings and {integers}) and a particular {coded character set} (which maps between integers and characters). For example: {ASCII} (the ASCII coded character set, encoded directly as single-byte values), or {UTF-8} (the Unicode coded character set, encoded with an 8-bit transformation method). 2. Occasionally: a {character repertoire}; or a {coded character set}. (1998-12-17) character set identifier (CSID) (IBM) A number that identifies a {character set}. (1995-03-21) Charge-Coupled Device (CCD) A semiconductor technology used to build light-sensitive electronic devices such as cameras and image scanners. Such devices may detect either colour or black-and-white. Each CCD chip consists of an array of light-sensitive photocells. The photocell is sensitised by giving it an electrical charge prior to exposure. (1995-01-04) CHARITY A {functional language} based purely on {category theory} by Cockett, Spencer, and Fukushima, 1990-1991. A version for {Sun-4} is available from Tom Fukushima . ["About Charity", J.R.B. Cockett, U. Calgary, Canada, et al]. (2000-10-30) charityware {careware} Charles Babbage The british inventor known to some as the "Father of Computing" for his contributions to the basic design of the computer through his {Analytical Engine}. His previous {Difference Engine} was a special purpose device intended for the production of mathematical tables. Babbage was born on December 26, 1791 in Teignmouth, Devonshire UK. He entered Trinity College, Cambridge in 1814 and graduated from Peterhouse. In 1817 he received an MA from Cambridge and in 1823 started work on the Difference Engine through funding from the British Government. In 1827 he published a table of {logarithms} from 1 to 108000. In 1828 he was appointed to the Lucasian Chair of Mathematics at Cambridge (though he never presented a lecture). In 1831 he founded the British Association for the Advancement of Science and in 1832 he published "Economy of Manufactures and Machinery". In 1833 he began work on the Analytical Engine. In 1834 he founded the Statistical Society of London. He died in 1871 in London. Babbage also invented the cowcatcher, the dynamometer, standard railroad gauge, uniform postal rates, occulting lights for lighthouses, Greenwich time signals, and the heliograph opthalmoscope. He also had an interest in cyphers and lock-picking. [Adapted from the text by J. A. N. Lee, Copyright September 1994]. Babbage, as (necessarily) the first person to work with machines that can attack problems at arbitrary levels of {abstraction}, fell into a trap familiar to {toolsmiths} since, as described here by the English ethicist, Lord Moulton: "One of the sad memories of my life is a visit to the celebrated mathematician and inventor, Mr Babbage. He was far advanced in age, but his mind was still as vigorous as ever. He took me through his work-rooms. In the first room I saw parts of the original Calculating Machine, which had been shown in an incomplete state many years before and had even been put to some use. I asked him about its present form. 'I have not finished it because in working at it I came on the idea of my {Analytical Machine}, which would do all that it was capable of doing and much more. Indeed, the idea was so much simpler that it would have taken more work to complete the Calculating Machine than to design and construct the other in its entirety, so I turned my attention to the Analytical Machine.'" "After a few minutes' talk, we went into the next work-room, where he showed and explained to me the working of the elements of the Analytical Machine. I asked if I could see it. 'I have never completed it,' he said, 'because I hit upon an idea of doing the same thing by a different and far more effective method, and this rendered it useless to proceed on the old lines.' Then we went into the third room. There lay scattered bits of mechanism, but I saw no trace of any working machine. Very cautiously I approached the subject, and received the dreaded answer, 'It is not constructed yet, but I am working on it, and it will take less time to construct it altogether than it would have token to complete the Analytical Machine from the stage in which I left it.' I took leave of the old man with a heavy heart." "When he died a few years later, not only had he constructed no machine, but the verdict of a jury of kind and sympathetic scientific men who were deputed to pronounce upon what he had left behind him, either in papers or in mechanism, was that everything was too incomplete of be capable of being put to any useful purpose." [Lord Moulton, "The invention of algorithms, its genesis, and growth", in G. C. Knott, ed., "Napier tercentenary memorial volume" (London, 1915), p. 1-24; quoted in Charles Babbage "Passage from the Life of a Philosopher", Martin Campbell-Kelly, ed. (Rutgers U. Press and IEEE Press, 1994), p. 34]. Compare: {uninteresting}, {Ninety-Ninety Rule}. (1996-02-22) Charles Simonyi {Microsoft} {programmer}, most famously responsible for {Hungarian Notation}. Simonyi was born in Budapest in 1948, and for more than a decade was senior {programmer} at {Microsoft} in Redmond. (1999-05-25) CHARM An explicitly parallel programming language based on {C}, for both shared and nonshared {MIMD} computers. {(ftp://a.cs.uiuc.edu/pub/CHARM)} Mailing list: . ["The CHARM(3.2) Programming Language Manual", UIUC (Dec 1992)]. CHARM++ An {object-oriented} parallel programming system, similar to {CHARM} but based on {C++}. {(ftp://a.cs.uiuc.edu/pub/CHARM/Charm++)} E-mail: Sanjeev Krishnan . [TR 1796, UIUC]. (1994-11-29) Charme A language with {discrete combinatorial constraint logic} aimed at industrial problems such as planning and {scheduling}. Implemented in {C} at {Bull} in 1989. Charme is an outgrowth of ideas from {CHIP}. It is semantically {nondeterministic}, with choice and {backtracking}, similar to {Prolog}. ["Charme Reference Manual", AI Development Centre, Bull, France 1990]. (1994-11-15) CHARYBDIS A {Lisp} program to display mathematical expressions. It is related to {MATHLAB}. [Sammet 1969, p. 522]. (1994-11-15) chase pointers 1. To go through multiple levels of indirection, as in traversing a linked list or graph structure. Used especially by programmers in {C}, where explicit pointers are a very common data type. See {dangling pointer} and {snap}. 2. (Cambridge) "pointer chase" or "pointer hunt": The process of going through a {core dump}, interactively or on a large piece of paper printed with {hex} {runes}, following dynamic data-structures. Used only in {debugging}. [{Jargon File}] (1995-05-11) CHASM CHeap ASseMbler. A {shareware} {assembler} for {MS-DOS}. (1994-11-15) chat Any system that allows any number of logged-in users to have a typed, real-time, on-line conversation, either by all users logging into the same computer, or more commonly nowadays, via a {network}. The medium of {chat} is descended from {talk}, but the terms (and the media) have been distinct since at least the early 1990s. {talk} is prototypically for a small number of people, generally with no provision for {channels}. In {chat} systems, however, there are many {channels} in which any number of people can talk; and users may send private (one-to-one) messages. Some well known chat systems to date (1998) include {IRC}, {ICQ} and {Palace}. Chat systems have given rise to a distinctive style combining the immediacy of talking with all the precision (and verbosity) that written language entails. It is difficult to communicate inflection, though conventions have arisen to help with this. The conventions of chat systems include special items of jargon, generally abbreviations meant to save typing, which are not used orally. E.g., {re}, {BCNU}, {BBL}, {BTW}, {CUL}, {FWIW}, {FYA}, {FYI}, {IMHO}, {OTT}, {TNX}, {WRT}, {WTF}, {WTH}, {}, {}, {BBL}, {HHOK}, {NHOH}, {ROTFL}, {AFK}, {b4}, {TTFN}, {TTYL}, {OIC}, {re}. Much of the chat style is identical to (and probably derived from) {Morse code} jargon used by ham-radio amateurs since the 1920s, and there is, not surprisingly, some overlap with {TDD} jargon. Most of the jargan was in use in {talk} systems. Many of these expressions are also common in {Usenet} {news} and {electronic mail} and some have seeped into popular culture, as with {emoticons}. The {MUD} community uses a mixture of {emoticons}, a few of the more natural of the old-style {talk mode} abbreviations, and some of the "social" list above; specifically, MUD respondents report use of {BBL}, {BRB}, {LOL}, {b4}, {BTW}, {WTF}, {TTFN}, and {WTH}. The use of "{re}" or "rehi" is also common; in fact, MUDders are fond of "re-" compounds and will frequently "rehug" or "rebonk" (see {bonk/oif}) people. In general, though, MUDders express a preference for typing things out in full rather than using abbreviations; this may be due to the relative youth of the MUD cultures, which tend to include many touch typists. Abbreviations specific to MUDs include: {FOAD}, ppl (people), THX (thanks), UOK? (are you OK?). Some {BIFF}isms (notably the variant spelling "d00d") and aspects of {ASCIIbonics} appear to be passing into wider use among some subgroups of MUDders and are already pandemic on {chat} systems in general. See also {hakspek}. {Suck article "Screaming in a Vacuum" (http://www.suck.com/daily/96/10/23/)}. (1998-01-25) chatbot (Or "chatterbot") A {bot} meant to be able to interact conversationally with humans. A chatbot is either an exercise in {AI} or merely as an interface, as in an {infobot}. One of the first and most famous chatterbots (prior to the Web) was {Eliza}. (1999-06-19) chat room {channel} chatterbot {chatbot} cheapernet (Or "thinnet") A colloquial term for thin-wire {Ethernet} ({10base2}) that uses {RG58} {coaxial cable} instead of the full-spec "Yellow Cable". (1995-03-28) checkdigit A one-digit {checksum}. Checkout Test language (CTL) ["Checkout Test Language: An Interpretive Language Designed for Aerospace Checkout Tasks", G.S. Metsker, Proc FJCC 33(2) (1968)]. (1994-11-14) checkpoint Saving the current state of a program and its data, including intermediate results to disk or other {non-volatile storage}, so that if interrupted the program could be restarted at the point at which the last checkpoint occurred. This facility came into popular use in {mainframe} {operating systems}s such as {OS/360} in which programs frequently ran for longer than the mean time between system failures. If a program run fails because of some event beyond the program's control (e.g. hardware or {operating system} failure) then the processor time invested before the checkpoint will not have been wasted. (1995-02-07) checksum A computed value which depends on the contents of a block of data and which is transmitted or stored along with the data in order to detect corruption of the data. The receiving system recomputes the checksum based upon the received data and compares this value with the one sent with the data. If the two values are the same, the receiver has some confidence that the data was received correctly. The checksum may be 8 bits (modulo 256 sum), 16, 32, or some other size. It is computed by summing the bytes or words of the data block ignoring {overflow}. The checksum may be negated so that the total of the data words plus the checksum is zero. {Internet} {packets} use a 32-bit checksum. See also {digital signature}, {cyclic redundancy check}. (1996-03-01) chemist (Cambridge) Someone who wastes computer time on {number crunching} when you'd far rather the computer were doing something more productive, such as working out anagrams of your name or printing Snoopy calendars or running {life} patterns. May or may not refer to someone who actually studies chemistry. [{Jargon File}] (1995-02-07) Chen {Peter Chen} CHEOPS A satellite-based batch data dissemination project between {CERN} and member state institutes. Chernobyl packet /cher-noh'b*l pak'*t/ A network packet that induces a {broadcast storm} and/or {network meltdown}, in memory of the April 1986 nuclear accident at Chernobyl in Ukraine. The typical scenario involves an IP Ethernet datagram that passes through a gateway with both source and destination Ether and IP address set as the respective broadcast addresses for the subnetworks being gated between. Compare {Christmas tree packet}. [{Jargon File}] chess A two-player {game} with {perfect information}. {Usenet} newsgroup: {news:rec.games.chess}. See also {Internet Chess Server}. (1995-03-25) CHI A wide spectrum language, the forerunner of Refine. "Research on Knowledge-Based Software Environments at Kestrel Institute", D.R. Smith et al, IEEE Trans Soft Eng, SE-11(11) (1985). Chicago {Windows 95} chicken head The {Commodore} Business Machines logo, which strongly resembles a poultry part. Rendered in ASCII as "C=". With the arguable exception of the {Amiga}, Commodore's computers are notoriously crocky little {bitty box}es (see also {PETSCII}). Thus, this usage may owe something to Philip K. Dick's novel "Do Androids Dream of Electric Sheep?" (the basis for the movie "Blade Runner"; the novel is now sold under that title), in which a "chickenhead" is a mutant with below-average intelligence. [{Jargon File}] chicklet keyboard It's spelled "{chiclet keyboard}". (1997-05-16) chiclet keyboard A {keyboard} with a small, flat rectangular or lozenge-shaped rubber or plastic keys that look like pieces of chewing gum. (Chiclets is the brand name of a variety of chewing gum that does in fact resemble the keys of chiclet keyboards). Used especially to describe the original {IBM PCjr} keyboard. Vendors unanimously liked these because they were cheap, and a lot of early {portable} and {laptop computers} were launched with them. Customers rejected the idea with almost equal unanimity, and chiclets are not often seen on anything larger than a digital watch any more. [{Jargon File}] (1997-05-16) child {daughter} child process A {process} created by another process (the {parent process}). Each process may create many child processes but will have only one parent process, except for the very first process which has no parent. The first process, called {init} in {Unix}, is started by the {kernel} at {boot time} and never terminates. A child process inherits most of its attributes, such as open files, from its parent. In fact in Unix, a child process is created (using {fork}) as a copy of the parent. The chid process can then overlay itself with a different program (using {exec}) as required. (1997-11-22) child record A {record} lower in the hierarchical tree than a parent record; it is also directly liked to the parent and hierarchical {database}s. (1995-04-13) child version A version of a version. See {change management}. CHILI D.L. Abt. Language for systems programming, based on ALGOL 60 with extensions for structure and type declarations. "CHILI, An Algorithmic Language for Systems Programming", CHI-1014, Chi Corp (Sep 1975). CHILL {CCITT HIgh-Level Language} Chimera A modular, {X Window System}-based {World-Wide Web} {browser} for {Unix}. Chimera uses the {Athena} {widget} set so {Motif} is not needed. Chimera supports forms, inline images, {TERM}, {SOCKS}, {proxy server}s, {Gopher}, {FTP}, {HTTP} and local file accesses. Chimera can be extended using external programs. New {protocol}s can easily be added and alternate image formats can be used for inline images (e.g. {PostScript}). Version 1.60 is available for {(ftp://ftp.cs.unlv.edu/pub/chimera)}. {Home (http://www.unlv.edu/chimera/)} Chimera runs on {Sun} {SPARC} {SunOS} 4.1.x, {IBM} {RS/6000} {AIX} 3.2.5, {Linux} 1.1.x. It should run on anything with {X11}R[3-6], {imake} and a {C} compiler. (1994-11-08) chine nual /sheen'yu-*l/ (MIT) The {LISP Machine} Manual, so called because the title was wrapped around the cover so only those letters showed on the front. [{Jargon File}] (1994-12-02) Chinese Army technique {Mongolian Hordes technique} CHIP 1. A early system on the {IBM 1103} or 1103A. [Listed in CACM 2(5):16 (May 1959)]. (1994-11-15) 2. {Constraint Handling In Prolog}. chip {integrated circuit} CHIP-48 A reimplementation of {CHIP-8} for the {HP-48} calculator by Andreas Gustafson . Posted to {news:comp.sys.handhelds} in Sep 1990. {(ftp://vega.hut.fi/pub/misc/hp48sx/asap)} (1994-12-02) CHIP-8 A low-level language (really a high-level {machine code}) developed at {RCA} in the late 1970s for video games on computers using {RCA}'s {CDP1802} processor. An {interpreter} for the {Amiga} is available by {(ftp://ftp.cso.uiuc.edu/pub/amiga/fish/f5/ff537/CHIP8.lzh)}. (1994-12-02) chip box {chad box} Chip Jewelry A euphamism for old computers destined to be scrapped or turned into decorative ornaments. "I paid three grand for that {Mac SE}, and now it's nothing but chip jewelry." (1997-03-30) Chip Scale Packaging (CSP) Surface Mount International attendees debated chip scale technologies as system manufacturers seek new levels of package miniaturisation for chip-on-board, flip chip and multichip modules. Technical and marketing gurus furthered the technical debate by focussing on which chip scale packaging schemes would be the most cost-effective for future packages designated for high volume consumer applications. Bare chip package supporters noted that mainstream circuitry is readily available in known good die (KGD) from a number of suppliers. Traditional ball grid array packages received strong support for current high volume and high density manufacturing needs. Chip scale packages (CSP) provide pre-speed-sorted,pre-tested and pre-packaged die without requiring specialized testing. CSP supporters improved their position with ChipScale's announcement that Motorola will license its Micro SMT packaging technology. ["Chip scale packaging gains at SMI. (Surface Mount International)", Bernard Levine, Electronic News (1991), Sept 4, 1995 v41 n2081 p1(2)]. [But what is it?] (1996-07-09) chip set A collection of {integrated circuit}s that are designed to be used together for some specific purpose. E.g. control circuitry in an {IBM PC}. (1995-03-27) Chips & Technologies An {integrated circuit} design company. They produce {IBM PC} {chipset}s, among other things. Address: Silicon Valley, California, USA. (1995-04-08) CHISEL An extension of {C} for {VLSI} design, implemented as a C {preprocessor}. It produces {CIF} as output. ["CHISEL - An Extension to the Programming language C for VLSI Layout", K. Karplus, PHD Thesis, Stanford U, 1982]. chmod ("Change mode") The {Unix} command and {system call} to change the access {permissions} of a named file. Each file (directory, device, etc.) has nine kinds of access which can be allowed or denied. Different permissions apply to the owner of the file, the members of the group the file belongs to, and all users. Each of these classes of user (owner, group and other) can have permission to read, write or execute the file. Chmod can also set various other mode bits for a file or directory such as the {sticky bit} and the {set user id} bit. Unix {man} page: chmod (1995-01-31) CHOCS A generalisation of {CCS}. ["A Calculus of Higher-Order Communicating Systems", B. Thomsen, 16th POPL pp.143-154 (1989)]. choke 1. To reject input, often ungracefully. "NULs make System V's "lpr(1)" choke." "I tried building an {Emacs} binary to use {X}, but "cpp(1)" choked on all those "#define"s." See {barf}, {gag}. 2. [MIT] More generally, to fail at any endeavor, but with some flair or bravado; the popular definition is "to snatch defeat from the jaws of victory." [{Jargon File}] chomp To {lose}; specifically, to chew on something of which more was bitten off than one can. Probably related to gnashing of teeth. See {bagbiter}. A hand gesture commonly accompanies this. To perform it, hold the four fingers together and place the thumb against their tips. Now open and close your hand rapidly to suggest a biting action (much like what Pac-Man does in the classic video game, though this pantomime seems to predate that). The gesture alone means "chomp chomp" (see {Verb Doubling}). The hand may be pointed at the object of complaint, and for real emphasis you can use both hands at once. Doing this to a person is equivalent to saying "You chomper!" If you point the gesture at yourself, it is a humble but humorous admission of some failure. You might do this if someone told you that a program you had written had failed in some surprising way and you felt dumb for not having anticipated it. (1996-06-01) CHOP {channel op} Chop A {code generator} by Alan L. Wendt for the {lcc} {C} compiler {front end}. Version 0.6 is interfaced with Fraser and Hanson's {lcc} {front end}. The result is a {C} compiler with good code selection but no {global optimisation}. Chop can currently compile and run small test programs on the {VAX}. The {NS32k} and {68000} code generators are being upgraded for lcc compatibility. {(ftp://beethoven.cs.colostate.edu/pub/chop/0.6.tar.Z)} ["Fast Code Generation Using Automatically-Generated Decision Trees", ACM SIGPLAN '90 PLDI]. (1993-04-28) Chorus A distributed {operating system} developed at {INRIA}. Christmas tree A kind of EIA-232 line tester or breakout box featuring rows of blinking red and green LEDs suggestive of Christmas lights. [{Jargon File}] Christmas tree packet A packet with every single option set for whatever protocol is in use. See {kamikaze packet}, {Chernobyl packet}. (The term doubtless derives from a fanciful image of each little option bit being represented by a different-coloured light bulb, all turned on.) Christopher Strachey Professor of Computation at Oxford, England, born 1916, died May 1975. He invented the term "{currying}". See also: {General Purpose Macro-generator}. (1998-06-29) chromatic number The smallest number of colours necessary to colour the nodes of a {graph} so that no two adjacent nodes have the same colour. See also: {four colour map theorem}. {Graph Theory Lessons (http://www.utc.edu/~cpmawata/petersen/lesson8.htm)}. {Eric Weisstein's World Of Mathematics (http://mathworld.wolfram.com/ChromaticNumber.html)}. {The Geometry Center (http://www.geom.umn.edu/~zarembe/grapht1.html)}. (2000-03-18) chrome (From automotive slang via wargaming) Showy {features} added to attract users but contributing little or nothing to the power of a system. "The 3D icons in {Motif} are just chrome, but they certainly are *pretty* chrome!" Chrome is distinguished from {bells and whistles} by the fact that the latter are usually added to gratify developers' own desires for featurefulness. Often used as a term of contempt and sometimes used in conjunction with 'fluff', "all the fluff and chrome that comes with Motif". [{Jargon File}] (1997-09-19) chroot The {UNIX} command to make the {root directory} (/) become something other than its default for the lifetime of the current process. It can only be run by privileged users and is used to give a process (commonly a network server such as {FTP} or {HTTP}) access to a restricted portion of the {file system}. The new root contains copies of all the essential files and directories, e.g. /lib, /dev/tty, /tmp. (1996-12-08) CHRP {PowerPC Platform} chug To run slowly; to {grind} or {grovel}. "The disk is chugging like crazy." [{Jargon File}] (1995-03-25) chunker A program like {Unix}'s "split" which breaks an input file into parts, usually of a pre-set size, e.g. the maximum size that can fit on a {floppy}. The parts can then be assembled with a {dechunker}, which is usually just the chunker in a different mode. (1998-12-15) Church, Alonzo {Alonzo Church} Church integer A representation of integers as functions invented by {Alonzo Church}, inventor of {lambda-calculus}. The integer N is represented as a {higher-order function} which applies a given function N times to a given expression. In the {pure lambda-calculus} there are no constants but numbers can be represented by Church integers. A {Haskell} function to return a given Church integer could be written: church n = c where c f x = if n == 0 then x else c' f (f x) where c' = church (n-1) A function to turn a Church integer into an ordinary integer: unchurch c = c (+1) 0 See also {von Neumann integer}. (1994-11-29) Church of the SubGenius A mutant offshoot of {Discordianism} launched in 1981 as a spoof of fundamentalist Christianity by the "Reverend" Ivan Stang, a brilliant satirist with a gift for promotion. Popular among hackers as a rich source of bizarre imagery and references such as "Bob" the divine drilling-equipment salesman, the Benevolent Space Xists, and the Stark Fist of Removal. Much SubGenius theory is concerned with the acquisition of the mystical substance or quality of {slack}. {Home (http://sunsite.unc.edu/subgenius/slack.html)} (1996-01-02) Church-Rosser Theorem This property of a {reduction} system states that if an expression can be reduced by zero or more reduction steps to either expression M or expression N then there exists some other expression to which both M and N can be reduced. This implies that there is a unique {normal form} for any expression since M and N cannot be different normal forms because the theorem says they can be reduced to some other expression and normal forms are irreducible by definition. It does not imply that a normal form is reachable, only that if reduction terminates it will reach a unique normal form. (1995-01-25) ci The {country code} for Cote d'Ivoire (the Ivory Coast). [{Jargon File}] (1999-01-27) CI$ CIS, {CompuServe Information Service}. Also {Compu$erve}. The dollar sign refers to CompuServe's rather steep line charges. Often used in {sig block}s just before a CompuServe address. [{Jargon File}] (1995-01-25) CICERO Control Information system Concepts based on Encapsulated Real-time Objects. A {CERN} {DRDC} proposal. (1995-01-25) CICS {Customer Information Control System} CID {Caller ID} CIDR {Classless Inter-Domain Routing} CIEL An {object-oriented} {Prolog}-like language. ["CIEL: Classes et Instances En Logique", M. Gandriau, Thesis ENSEEIHT (1988)]. (1995-01-25) CIF Caltech Intermediate Form. Geometry language for VLSI design, in which the primitives are coloured rectangles. ["Introduction to VLSI Systems", Mead & Conway, A-W 1980, Section 4.5]. (1995-01-25) CIFS {Common Internet File System} Cigale A {parser generator} language with extensible {syntax}. ["CIGALE: A Tool for Interactive Grammar Construction and Expression Parsing", F. Voisin, Sci Comp Prog 7:61-86, 1986]. (1999-01-14) CIL 1. {Component Integration Laboratories}. 2. {Common Intermediate Language}. (1999-01-14) CIM {Computer Integrated Manufacturing} CIMS PL/I A {PL/I} subset from the Courant Institute of Mathematical Sciences. ["CIMS PL/I", P.W. Abrahams, Courant Inst]. (1997-12-15) Cinderella Book "Introduction to Automata Theory, Languages, and Computation", by John Hopcroft and Jeffrey Ullman, (Addison-Wesley, 1979). So called because the cover depicts a girl (putatively Cinderella) sitting in front of a Rube Goldberg device and holding a rope coming out of it. On the back cover, the device is in shambles after she has (inevitably) pulled on the rope. See also {book titles}. [{Jargon File}] (1996-12-03) CINT92 {SPEC CINT92} C-Interp An {interpreter} for a small subset of {C}, originally part of a communications package. {(ftp://oac2.hsc.uth.tmc.edu/Mac/Misc/C_Interp.sit)}. E-mail: Chuck Shotton . (1993-05-14) ciphertext Text which has been encrypted by some {encryption} system. Opposite: {plaintext}. (1994-10-27) CIP-L CIP Language. (CIP stands for Computer-aided Intuition-guided Programming.) Wide-spectrum language for incremental program transformation. There are ALGOL-like and Pascal-like variants. ["The Munich Project CIP, v.I: The Wide Spectrum Language CIP-L", LNCS 183, Springer 1984. Version: CIP85]. CIR {Committed Information Rate} CIRCAL {CIRcuit CALculus} circuit 1. A communications path in a {circuit switching} network. 2. A complete path through which an electric current can flow. (1999-03-17) CIRcuit CALculus (CIRCAL) A {process algebra} used to model and verify the design correctness of {concurrent} systems such as {digital logic}. ["CIRCAL and the Representation of Communication, Concurrency and Time", G.J. Milne , ACM TOPLAS 7(2):270-298, 1985]. (2001-03-25) circuit switched {circuit switching} circuit switching A communications paradigm in which a dedicated communication path is established between the sender and receiver along which all {packet}s travel. The telephone system is an example of a circuit switched network. Also called {connection-oriented}. Contrast {connectionless}, {packet switching}. circular buffer An area of {memory} used to store a continuous stream of data by starting again at the beginning of the buffer after reaching the end. A circular buffer is usually written by one process and read by another. Separate read and write {pointers} are maintained. These are not allowed to pass each other otherwise either unread data would be overwritten or invalid data would be read. A circuit may implement a {hardware circular buffer}. (2000-06-17) Cirrus Logic A manufacturer of {integrated circuits} including the {Advanced RISC Machine} and display interface processors and cards for use as {Windows accelerators} (requiring dedicated driver software). {Home (http://www.cirrus.com/)}. [Other products?] (1996-10-13) CIS 1. {Case Integration Services}. 2. {Cooperative Information System}. 3. {Customer Interaction Software}, {Customer Information Systems}. (1999-10-04) CISC {Complex Instruction Set Computer} Cisco Systems, Inc. {Ethernet} hardware manufacturers. {Home (http://www.cisco.com/)} Address: 170 West Tasman Drive, San Jose, CA 95134-1706, USA. Telephone: +1 408 526 4000, +1 800 553 6387. Fax: +1 408 526 4100. (1995-04-19) CISI A French software house. CITRAN {Caltech}'s answer to {MIT}'s {JOSS}. [Sammet 1969, p.217]. CityScape A re-seller of {Internet} connections to the {PIPEX} {backbone}. E-Mail: . Address: CityScape Internet Services, 59 Wycliffe Rd., Cambridge, CB1 3JE, England. Telephone: +44 (1223) 566 950. (1994-11-08) CIX 1. {Commercial Internet Exchange}. 2. {Compulink Information eXchange}. (1997-07-16) CJK In {internationalisation}, a collective term for Chinese, Japanese, and Korean. These languages all share the fact that their writing systems are based partly on {Han characters} (i.e., "hanzi" or "{kanji}"), which are complex enough of a system to require 16-bit {character encodings}. CJK character encodings should consist minimally of {Han characters} plus language-specific phonetic scripts such as pinyin, bopomofo, hiragana, hangul, etc. {CJKV} is CJK plus {Vietnamese}. {(ftp://ftp.ora.com/pub/examples/nutshell/ujip/doc/cjk.inf)}. (2001-01-01) CJKV {CJK} plus {Vietnamese}. Vietnamese, like the other three CJK languages, requires 16-bit {character encodings} but it does not use {Han characters}. ["CJKV Information Processing: Chinese, Japanese, Korean & Vietnamese Computing", Ken Lunde, pub. O'Reilly 1998, {(http://www.oreilly.com/catalog/cjkvinfo/)}]. (2001-03-18) ck The {country code} for the Cook Islands. (1999-01-27) CL 1. {Control Language}. 2. A programming language and {proof system} developed by Paul Voda and a colleague since 1997, written in {Trilogy} II. {(http://www.fmph.uniba.sk/~voda)}. (2000-04-08) cl The {country code} for Chile. (1999-01-27) CLAM A system for {symbolic mathematics}, especially General Relativity. It was first implemented in {ATLAS} {assembly language} and later {Lisp}. See also {ALAM}. ["CLAM Programmer's Manual", Ray d'Inverno & Russell-Clark, King's College London, 1971]. (1994-11-08) C Language Integrated Production System (CLIPS) A language produced by Gary Riley of NASA {JSC} in Houston, Texas, for developing {expert system}s, with the inferencing and representation capabilities of {OPS5} and support for {forward chaining} rule-based, {object-oriented} and {procedural} programming. CLIPS has a {Lisp}-like {syntax}. It is available for {MS-DOS} and comes with source code in {C}. COSMIC, U Georgia, (404) 542-3265. Austin Code Works (512) 258-0785. Versions include CLIPS 5.1, CLIPS/Ada 4.3 and CLIPS6.0 (see {PCLIPS}). {Home (http://www.jsc.nasa.gov/~clips/CLIPS.html)} E-mail: . Telnet: cosmic.uga.edu, user: cosline. {U. Michigan (ftp://earth.rs.itd.umich.edu/mac.bin/etc/compsci/Clips/)}, {ENSMP, France (ftp://ftp.ensmp.fr/pub/clips/)}. ["Expert Systems: Principles and Programming", Joseph Giarratano and Gary Riley, PWS Publ 1994, ISBN 0-534-93744-6]. (1994-12-16) Clarify A software vendor, specialising in {Customer Relationship Management} software. A Nortel Networks Company. {Home (http://www.clarify.com/)}. (2000-07-16) Clarion A {fourth generation language} for {MS-DOS}. [Details?] (1994-11-09) Claris A subsidiary company of {Apple Computer, Inc.}. In January 1998, Apple restructured Claris to concentrate on their {FileMaker} line of {database} {software} and changed the company's name to {FileMaker, Inc.}. (1998-02-18) CLASP Computer Language for AeronauticS and Programming. A {real-time} language from NASA focussing on {fixed-point} mathematics. CLASP is a near subset of {SPL}, with some ideas from {PL/I}. ["Flight Computer and Language Processor Study", Raymond J. Rubey, Management Information Services, Detroit, 1971]. (1994-10-13) class 1. The prototype for an {object} in an {object-oriented language}; analogous to a {derived type} in a {procedural language}. A class may also be considered to be a set of objects which share a common structure and behaviour. The structure of a class is determined by the {class variables} which represent the {state} of an object of that class and the behaviour is given by a set of {methods} associated with the class. Classes are related in a {class hierarchy}. One class may be a specialisation (a "{subclass}") of another (one of its "{superclasses}") or it may be composed of other classes or it may use other classes in a {client-server} relationship. A class may be an {abstract class} or a {concrete class}. See also {signature}. 2. See {type class}. 3. One of three types of {Internet addresses} distinguished by their most significant bits. 3. A language developed by the {Andrew Project}. It was one of the first attempts to add {object-oriented} features to {C}. (1995-05-01) class hierarchy A set of {classes} and their interrelationships. One class may be a specialisation (a "{subclass}" or "{derived class}") of another which is one of its "{superclasses}" or "{base classes}". When a {method} is invoked on an {object} it is first looked for in the object's class, then the superclass of that class, and so on up the hierarchy until it is found. Thus a class need only define those methods which are specific to it, and inherits methods from all its superclasses. See also: {multiple inheritance}. (1997-08-06) classic An adjective used before or after a noun to describe the original version of something. This construction is especially used of product series in which the newer versions are considered worse than the older ones. Examples include "Star Trek Classic" - the original TV series as opposed to the films, ST The Next Generation or any of the other spin-offs and follow-ups; or "PC Classic" - {IBM}'s {ISA}-bus computers as opposed to the {PS/2} series. (1996-10-27) Classic-Ada An {object-oriented} extension to {Ada}, said to be like {Smalltalk}. It is implemented as an {Ada} {preprocessor}. (1994-12-05) classical logic Non-{intuitionistic logic}. (1995-04-13) Classic C /klas'ik C/ (Or "C Classic", a play on "Coke Classic") The {C} programming language as defined in the first edition of {K&R}, with some small additions. It is usually known as "{K&R C}". The name came into use while C was being standardised by the {ANSI X3J11} committee. See also {classic}. [{Jargon File}] Classless Inter-Domain Routing (CIDR) /sid*r/ A scheme which allocates blocks of {Internet addresses} in a way that allows summarisation into a smaller number of {routing table} entries. A CIDR block is a block of {Internet addresses} assigned to an {Internet Service Provider} (ISP) by the {Internic}. CIDR was introduced to enable the use of more sophisticated {routing} protocols such as {OSPF}. See {RFC 1467}, {RFC 1518}, {RFC 1519} and {RFC 1520}. [Is this true? Relation to classes?] (1997-03-06) class library A library of reusable {class}es for use with an {object-oriented programming} system. (1994-12-05) class method A kind of {method}, available in some {object-oriented programming} languages, that operates on the class as a whole, as opposed to an "object method" that operates on an object that is an instance of the class. A typical example of a class method would be one that keeps a count of the number of objects of that class that have been created. (2000-03-22) Class Oriented Ring Associated Language (CORAL) A language developed by L.G. Roberts at {MIT} in 1964 for graphical display and systems programming on the {TX-2}. It used "rings" (circular lists) from {Sketchpad}. ["Graphical Communication and Control Languages", L.B. Roberts, Information System Sciences: Proc Second Congress, 1965]. [Sammet 1969, p.462]. (1994-11-30) Class-Relation Method A design technique based on the concepts of {object-oriented programming} and the {Entity-Relationship model} from the French company {Softeam}. (1994-12-05) Clean A {lazy} {higher-order} {purely functional language} from the {University of Nijmegen}. Clean was originally a subset of {Lean}, designed to be an experimental {intermediate language} and used to study the {graph rewriting} model. To help focus on the essential implementation issues it deliberately lacked all {syntactic sugar}, even {infix} expressions or {complex lists}, As it was used more and more to construct all kinds of applications it was eventually turned into a general purpose functional programming language, first released in May 1995. The new language is {strongly typed} (Milner/Mycroft type system), provides {modules} and {functional I/O} (including a {WIMP} interface), and supports {parallel processing} and {distributed processing} on {loosely coupled} parallel architectures. Parallel execution was originally based on the {PABC} {abstract machine}. It is one of the fastest implementations of functional languages available, partly aided by programmer {annotations} to influence evaluation order. Although the two variants of Clean are rather different, the name Clean can be used to denote either of them. To distinguish, the old version can be referred to as Clean 0.8, and the new as Clean 1.0 or Concurrent Clean. The current release of Clean (1.0) includes a compiler, producing code for the {ABC} {abstract machine}, a {code generator}, compiling the ABC code into either {object-code} or {assembly language} (depending on the {platform}), I/O libraries, a {development environment} (not all platforms), and {documentation}. It is supported (or will soon be supported) under {Mac OS}, {Linux}, {OS/2}, {Windows 95}, {SunOS}, and {Solaris}. {Home (http://www.cs.kun.nl/~clean/)}. E-mail: . Mailing list: . ["Clean - A Language for Functional Graph Rewriting", T. Brus et al, IR 95, U Nijmegen, Feb 1987]. ["Concurrent Clean", M.C. van Eekelen et al, TR 89-18, U Nijmegen, Netherlands, 1989]. [{Jargon File}] (1995-11-08) clean 1. Used of hardware or software designs, implies "elegance in the small", that is, a design or implementation that may not hold any surprises but does things in a way that is reasonably intuitive and relatively easy to comprehend from the outside. The antonym is "grungy" or {crufty}. 2. To remove unneeded or undesired files in a effort to reduce clutter: "I'm cleaning up my account." "I cleaned up the garbage and now have 100 Meg free on that partition." [{Jargon File}] (1994-12-12) Cleanroom A software development approach aimed at producing software with the minimum number of errors. (1994-12-12) CLEAR A {specification language} based on {initial algebra}s. ["An Informal Introduction to Specification Using CLEAR", R.M. Burstall in The Correctness Problem in Computer Science, R.S. Boyer et al eds, Academic Press 1981, pp. 185-213]. (1994-11-03) clear box testing {white box testing} CLEO Clear Language for Expressing Orders. A language developed by {ICL} in the 1960s and used until early 1972 on {Leo} III {mainframe}s. (1994-11-03) CLHEP A {C++} {class library} for high energy physics {application}s. (1994-12-12) CLI 1. {Command Line Interface}. 2. {Call-Level Interface}. (1997-03-04) CLiCC A {Common Lisp} to {C} compiler by Heinz Knutzen , Ulrich Hoffman and Wolfgang Goerigk . CLiCC is meant to be used as a supplement to existing {CLISP} systems for generating portable applications. Target {C} code must be linked with CLiCC {run-time library} to produce an executable. Version 0.6.2 conforms to a subset of {Common Lisp} and {CLOS} called CL_0 or CommonLisp_0 and based on {CLtL1}. It runs with {Lucid Lisp}, {AKCL} or {CLISP}. Work on {CLtL2} and {ANSI-CL} conformance is in progress. {(ftp://ftp.informatik.uni-kiel.de/pub/kiel/apply/)} (1994-01-04) click To press and release a {button} on a {mouse} or other {pointing device}. This generates an {event}, also specifying the screen position, which is processed by the {window manager} or {application program}. On a mouse with more than one button, the unqualified term usually implies pressing the left-most button (with the right index finger), other buttons would be qualified, e.g. "{right-click}". {Keyboard} modifiers may also be used, e.g. "shift-click", meaning to hold down the shift key on the keyboard while clicking the mouse button. If the mouse moves while the button is pressed then this is a {drag}. (1995-03-14) client A computer system or process that requests a service of another computer system or process (a "{server}") using some kind of {protocol} and accepts the server's responses. A client is part of a {client-server} software architecture. For example, a {workstation} requesting the contents of a file from a {file server} is a client of the file server. (1997-10-27) client-server A common form of {distributed system} in which software is split between {server} tasks and {client} tasks. A client sends requests to a server, according to some {protocol}, asking for information or action, and the server responds. This is analogous to a customer (client) who sends an order (request) on an order form to a supplier (server) who despatches the goods and an invoice (response). The order form and invoice are part of the "protocol" used to communicate in this case. There may be either one centralised server or several distributed ones. This model allows clients and servers to be placed independently on {nodes} in a {network}, possibly on different {hardware} and {operating systems} appropriate to their function, e.g. fast server/cheap client. Examples are the name-server/name-resolver relationship in {DNS}, the file-server/file-client relationship in {NFS} and the screen server/client application split in the {X Window System}. {Usenet} newsgroup: {news:comp.client-server}. ["The Essential Client/Server Survival Guide", 2nd edition, 1996]. (1998-01-25) client/server {client-server} client-server model {client-server} Client To Client Protocol (CTCP) A type of {protocol} created to allow structured data such as {font} information to be exchanged between users on {IRC}. It is also used to send a query to a user. The available CTCP commands include VERSION, FINGER, DCC CHAT, DCC SEND, TIME, PING, ECHO, CLIENTINFO. Some commands are not available on some IRC {client} software. (1995-04-12) C++Linda ["The AUC C++Linda System", C. Callsen et al, U Aalborg, in Linda-Like Systems and Their Implementation, G. Wilson ed, U Edinburgh TR 91-13, 1991]. (1994-12-12) C-Linda The most widely used variant of {Linda}, with {C} as the base language. It is available from Sci Comp Assocs . (1994-12-12) CLIP 1. {Compiler Language for Information Processing}. 2. {Common LISP in Parallel}. CLiP A documentation extractor by Eric W. van Ammers that recognises a particular style of {comments}. This style can be adjusted to suit virtually any programming language and target documentation language. CLiP was designed to be compatible with {hypertext} systems. Version 2.1 runs on {MS-DOS}, {VAX}/{VMS} and {Unix} {(ftp://sun01.info.wau.nl/clip/)} (1993-11-18) clipboard A temporary memory area, used to transfer information within a document being edited or between documents or between programs. The fundamental operations are "cut" which moves data from a document to the clipboard, "copy" which copies it to the clipboard, and "paste" which inserts the clipboard contents into the current document in place of the current selection. Different {Graphical User Interfaces} vary in how they handle the different types of data which a user might want to transfer via the clipboard, some (e.g. the {X Window System}) support only plain text, others (e.g. {NEXTSTEP}) support arbitrarily typed data. (1996-08-23) Clipper 1. An {integrated circuit} which implements the {SkipJack} {algorithm}. The Clipper is manufactured by the US government to encrypt telephone data. It has the added feature that it can be decrypted by the US government, which has tried to make the chip compulsory in the United States. Phil Zimmerman (inventor of {PGP}) remarked, "This doesn't even pass the sniff test" (i.e. it stinks). {(http://www.wired.com/clipper/)} {news:alt.privacy.clipper} 2. A compiled {dBASE} dialect from Nantucket Corp, LA. Versions: Winter 85, Spring 86, Autumn 86, Summer 87, 4.5 (Japanese Kanji), 5.0. (1995-03-25) CLIPS {C Language Integrated Production System}. clique A {maximal} {totally connected} {subgraph}. Given a {graph} with {nodes} N, a clique C is a {subset} of N where every node in C is directly connected to every other node in C (i.e. C is totally connected), and C contains all such nodes (C is maximal). In other words, a clique contains all, and only, those nodes which are directly connected to all other nodes in the clique. [Is this correct?] (1996-09-22) CLISP 1. {Conversational LISP}. 2. A {Common Lisp} implementation by Bruno Haible of {Karlsruhe University} and Michael Stoll of {Munich University}, both in Germany. CLISP includes an {interpreter}, {bytecode compiler}, {run-time library} and editor and needs only 1.5 MB of {RAM}. German and English versions are available, French soon. Packages running in CLISP include {PCL} and {CLX} on {Unix} machines. A native subset of {CLOS} is included. Version 1993/10/06 conforms to {CLtL1} and parts of {CLtL2} and is distributed under the {GNU} {General Public License}. CLISP runs on {Atari}, {Amiga}, {MS-DOS}, {OS/2}, {Linux}, {Sun-4}, {Sun386i}, {HP90000}/800 and others. {(ftp://ftp2.cons.org/pub/lisp/clisp/)}. Mailing list: (send "subscribe clisp-list"). (1998-11-21) Clive Sinclair Sir Clive Sinclair (1939- ) The British inventor who pioneered the home {microcomputer} market in the early 1980s, with the introduction of low-cost, easy to use {8-bit} computers produced by his company, {Sinclair Research}. Sir Clive also invented and produced a variety of electronic devices from the 1960s to 1990s, including pocket calculators (he marketed the first pocket calculator in the world), radios, and televisions. Perhaps he is most famous (or some might say notorious) for his range electric vehicles, especially the Sinclair C5, introduced in 1985. He has been a member of MENSA, the high IQ society, since 1962. {Planet Sinclair (http://www.nvg.ntnu.no/sinclair/)}. ["The Sinclair Story", Rodney Dale, pub. Duckworth 1985] (1998-11-09) CLIX ["Overview of a Parallel Object-Oriented Language CLIX", J. Hur et al, in ECOOP '87, LNCS 276, Springer 1987, pp.265-273]. (1994-12-16) CLM {Career Limiting Move} CLNP {ConnectionLess Network Protocol} clobber To overwrite, usually unintentionally: "I walked off the end of the array and clobbered the stack." Compare {mung}, {scribble}, {trash}, and {smash the stack}. [{Jargon File}] (1994-12-16) clock A processor's clock or one {cycle} thereof. The relative execution times of instructions on a computer are usually measured by number of clock cycles rather than seconds. One good reason for this is that {clock rate}s for various models of the computer may increase as technology improves, and it is usually the relative times one is interested in when discussing the {instruction set}. (1994-12-16) clock rate The fundamental rate in {cycle}s per second at which a computer performs its most basic operations such as adding two numbers or transfering a value from one register to another. The clock rate of a computer is normally determined by the frequency of a crystal. The original {IBM PC}, circa 1981, had a clock rate of 4.77 MHz (almost five million cycles/second). As of 1995, {Intel}'s Pentium chip runs at 100 MHz (100 million cycles/second). The clock rate of a computer is only useful for providing comparisons between computer chips in the same processor family. An {IBM PC} with an {Intel 486} {CPU} running at 50 MHz will be about twice as fast as one with the same CPU, memory and display running at 25 MHz. However, there are many other factors to consider when comparing different computers. Clock rate should not be used when comparing different computers or different processor families. Rather, some {benchmark} should be used. Clock rate can be very misleading, since the amount of work different computer chips can do in one cycle varies. For example, {RISC} CPUs tend to have simpler instructions than {CISC} CPUs (but higher clock rates) and {pipelined} processors execute more than one instruction per cycle. (1995-01-12) clock speed {clock rate} clone 1. An exact copy of a product, made legally or illegally, from {documentation} or by {reverse engineering}, and usually cheaper. E.g. "PC clone": a PC-BUS/{ISA}, {EISA}, {VESA}, or {PCI} compatible {x86}-based {microcomputer} (this use is sometimes misspelled "klone" or "PClone"). These invariably have much more bang per buck than the {IB PCM} they resemble. E.g. "Unix clone": An {operating system} designed to deliver a {Unix}-like environment without Unix licence fees or with additional "mission-critical" features such as support for {real-time} programming. 2. A {clonebot}. [{Jargon File}] (2000-06-15) clone-and-hack coding A {DEC}ism for {case and paste}. [{Jargon File}] (1994-12-16) clonebot (Or "clone") A {bot} meant to replicate itself en masse on a {talk} network (generally {IRC}). A bot appears on the network as several {agents}, and then carries out some task, typically that of {flood}ing another user. Compare {ghost}. (1997-04-07) CLOS {Common LISP Object System} closed-box testing {functional testing} closed set A set S is closed under an operator * if x*y is in S for all x, y in S. (1994-12-16) closed term A term with no {free variable}s. (1994-12-16) Clos network A {network} topology. [What topology?] (1994-12-16) closure 1. In a {reduction system}, a closure is a data structure that holds an expression and an environment of variable bindings in which that expression is to be evaluated. The variables may be local or global. Closures are used to represent unevaluated expressions when implementing {functional programming languages} with {lazy evaluation}. In a real implementation, both expression and environment are represented by pointers. A {suspension} is a closure which includes a flag to say whether or not it has been evaluated. The term "{thunk}" has come to be synonymous with "closure" but originated outside {functional programming}. 2. In {domain theory}, given a {partially ordered set}, D and a subset, X of D, the upward closure of X in D is the union over all x in X of the sets of all d in D such that x <= d. Thus the upward closure of X in D contains the elements of X and any greater element of D. A set is "upward closed" if it is the same as its upward closure, i.e. any d greater than an element is also an element. The downward closure (or "left closure") is similar but with d <= x. A downward closed set is one for which any d less than an element is also an element. ("<=" is written in {LaTeX} as {\subseteq} and the upward closure of X in D is written \uparrow_\{D} X). (1994-12-16) closure conversion The transformation of {continuation passing style} code so that the only {free variables} of functions are names of other functions. See also Lambda lifting. (1994-12-16) Clover A {protocoll} similar to {packet radio} or {AMTOR}. (1995-03-03) clover key {feature key} CLP 1. {Cornell List Processor}. 2. {Constraint Logic Programming}. CLP* A derivative of {Constraint Logic Programming} (CLP). ["CLP* and Constraint Abstraction", T. Hickey, 16th POPL, pp. 125-133, 1989]. (1994-11-01) CLP(R) Constraint Logic Programming (Real). A {constraint logic programming} language with {real} arithmetic {constraint}s developed by Joxan Jaffar of {IBM} {TJWRC} and S. Michaylov of {Monash University} in 1986. The implementation contains a {byte-code compiler} and a built-in constraint solver which deals with linear arithmetic and contains a mechanism for delaying {nonlinear} constraints until they become linear. Since CLP(R) is a superse of {PROLOG}, the system is also usable as a general-purpose {logic programming} language. There are also powerful facilities for {meta programming} with constraints. Significant CLP(R) applications have been published in diverse areas such as molecular biology, finance and physical modelling. Version 1.2 for {Unix}, {MS-DOS} and {OS/2} is available from the authors. It is free for academic and research purposes. E-mail: Roland Yap . ["The CLP(R) Language and System", J. Jaffar et al, IBM RR RC16292 (#72336) (Nov 1990)]. (1992-10-14) CLP(sigma*) A {constraint logic programming} language with {regular set}s. ["CLP(sigma*): Constraint Logic Programming with Regular Sets", C. Walinsky, Proc ICLP, 1989, pp.181-190]. (1994-12-16) CLR {Consortium for Lexical Research} CLtL1 A report on {Common LISP}: ["Common LISP: The Language", Guy L. Steele, Digital Press 1984, ISBN 0-932376-41-X]. (1994-12-16) CLtL2 {Aluminum Book} CLU CLUster. An {object-oriented} programming language developed at {MIT} by Liskov et al in 1974-1975. CLU is an {object-oriented} language of the {Pascal} family designed to support data abstraction, similar to {Alphard}. It introduced the {iterator}: a {coroutine} yielding the elements of a data object, to be used as the sequence of values in a 'for' loop. A CLU program consists of separately compilable procedures, {cluster}s and iterators, no nesting. A cluster is a module naming an abstract type and its operations, its internal representation and implementation. Clusters and iterators may be generic. Supplying actual constant values for the parameters instantiates the {module}. There are no {implicit type conversion}s. In a cluster, the explicit type conversions 'up' and 'down' change between the abstract type and the representation. There is a universal type 'any', and a procedure force[] to check that an object is a certain type. Objects may be mutable or {immutable}. {Exception}s are raised using 'signal' and handled with 'except'. {Assignment} is by sharing, similar to the sharing of data objects in {Lisp}. Arguments are passed by {call-by-sharing}, similar to {call-by-value}, except that the arguments are objects and can be changed only if they are mutable. CLU has {own variable}s and multiple assignment. See also {Kamin's interpreters}, {clu2c}. ["CLU Reference Manual", Barbara Liskov et al, LNCS 114, Springer 1981]. E-mail: Paul R. Johnson . {Versions for Sun and VAX/VMS (ftp://pion.lcs.mit.edu/pub/clu/)}. {Portable version (ftp://mintaka.lcs.mit.edu/pub/dcurtis/)}. (1994-12-16) clu2c A {CLU} to {C} {compiler}. {(ftp://ftp.is.titech.ac.jp/pub/clu2c/)}. (2000-08-06) cluster An elementary unit of allocation of a disk made up of one or more physical {blocks}. A {file} is made up of a whole number of possibly non-contiguous clusters. The cluster size is a tradeoff between space efficiency (the bigger is the cluster, the bigger is on the average the wasted space at the end of each file) and the length of the {FAT}. (1996-11-04) Cluster 86 A distributed {object-oriented} language by L. Shang of {Nanjing University}, ca. 1986. A cluster is a metatype. There are versions for {MS-DOS} and {Unix}. ["Cluster: An Informal Report", L. Shang, SIGPLAN Notices 26(1):57-76 (Jan 1991)]. (1994-12-21) clustergeeking /kluh'st*r-gee"king/ ({CMU}) Spending more time at a computer cluster doing CS homework than most people spend breathing. [{Jargon File}] (1994-12-21) clustering {cluster} CLUT {colour palette} CLV {Constant Linear Velocity} CLX The {Common Lisp} library providing an interface to the {X Window System}, equivalent to {Xlib}. It works with {CMU Common Lisp}. Latest version: 5.01, as of 1992-08-26. {(ftp://export.lcs.mit.edu/contrib/)} (1992-08-26) CM {Configuration Management} cm The {country code} for Cameroon. (1999-01-27) CMA {Concert Multithread Architecture} from {DEC}. CMAY ["A Microkernel for Distributed Applications", R. Bagrodia et al, Proc 5th Intl Conf Distrib Comp Sys IEEE 1985, pp. 140-149]. (1994-12-21) CMC 1. {Computer Mediated Communication}. 2. {Common Mezzanine Card}. CMIP {Common Management Information Protocol} CMIS {Common Management Information Services} CML 1. A {query language}. ["Towards a Knowledge Description Language", A. Borgida et al, in On Knowledge Base Management Systems, J. Mylopoulos et al eds, Springer 1986]. 2. {Concurrent ML}. (1994-12-21) CMM {Capabilities Maturity Model} CMOS {Complementary Metal Oxide Semiconductor} CMP {cellular multiprocessing} CMS A {code management} system from {DEC}. (1994-12-21) CMS-2 A general purpose language used for command and control applications in the US Navy. Variants: CMS-2M and CMS-2Y. ["CMS-2Y Programmers Reference Manual", M-5049, PDCSSA, San Diego CA (Oct 1976)]. (1994-12-21) CMU {Carnegie Mellon University} CMU CL {CMU Common Lisp} CMU Common Lisp (CMU CL) A {public domain} "industrial strength" {Common Lisp} programming environment. Many of the {X3J13} changes have been incorporated into CMU CL. Wherever possible, this has been done so as to transparently allow use of either {CLtL1} or proposed {ANSI CL}. Probably the new features most interesting to users are {SETF} functions, {LOOP} and the {WITH-COMPILATION-UNIT} {macro}. The new CMU CL compiler is called {Python}. Version 17c includes an {incremental compiler}, profiler, run-time support, documentation, an editor and a debugger. It runs under {Mach} on {SPARC}, {MIPS} and {IBM PC RT} and under {SunOS} on {SPARC}. {(ftp://lisp-sun1.slisp.cs.cmu.edu/pub/)} E-mail: . (1993-11-18) CMVC {Configuration Management Version Control} from {IBM}. CMYK cyan, magenta, yellow, key. A {colour model} that describes each {colour} in terms of the quantity of each secondary colour (cyan, magenta, yellow), and "key" (black) it contains. The CMYK system is used for printing. For mixing of pigments, it is better to use the secondary colours, since they mix subtractively instead of additively. The secondary colours of light are cyan, magenta and yellow, which correspond to the primary colours of pigment (blue, red and yellow). In addition, although black could be obtained by mixing these three in equal proportions, in four-colour printing it always has its own ink. This gives the CMYK model. The K stands for "Key' or 'blacK,' so as not to cause confusion with the B in {RGB}. Alternative colour models are {RGB} and {HSB}. (1994-12-22) CMZ A portable interactive {code management} system from {CodeME} S.A.R.L in use in the high-energy physics community. (1994-12-22) cn The {country code} for China. (1999-01-27) CNAME The {canonical name} query type for {Domain Name System}. This query asks a DNS {server} for a {host}'s official {hostname}. (1994-12-22) CNC {Collaborative Networked Communication} CNET Centre national d'Etudes des Telecommunications. The French national telecommunications research centre at Lannion. (1994-12-22) CNI {Coalition for Networked Information} CNN {Cellular Neural Network}. CNRI Corporation for National Research Initiatives. A US research and development organisation in information processing technology. Address: Reston, VA, USA. (1994-12-22) co The {country code} for Colombia. (1999-01-27) CO2 An {object-oriented} {database} language combining {C} and {O2}, from GIP Altair, Versailles, France. [Francois Bancilon et al, in Advances in Object-Oriented Database Systems, K.R. Dittrich ed, LNCS 334, Springer 1988]. (1994-12-22) Coad/Yourdon An {object-oriented analysis} and design {methodology}, developed by {edward Yourdon} and Peter Coad. (1995-04-07) COALA ["COALA: The Object Code of the Compiler Producing System", S. Kruszewski et al, MERA, Warsaw 1974]. (1994-12-22) coalesced sum (Or "smash sum") In {domain theory}, the coalesced sum of {domain}s A and B, A (+) B, contains all the non-{bottom} elements of both domains, tagged to show which part of the sum they come from, and a new {bottom} element. D (+) E = { bottom(D(+)E) } U { (0,d) | d in D, d /= bottom(D) } U { (1,e) | e in E, e /= bottom(E) } The bottoms of the constituent domains are coalesced into a single bottom in the sum. This may be generalised to any number of domains. The ordering is bottom(D(+)E) <= v For all v in D(+)E (i,v1) <= (j,v2) iff i = j & v1 <= v2 "<=" is usually written as {LaTeX} \sqsubseteq and "(+)" as {LaTeX} \oplus - a "+" in a circle. (1994-12-22) Coalition for Networked Information (CNI) A consortium formed by American Research Libraries, CAUSE, and EDUCOM to promote the creation of, and access to, information resources in networked environments in order to enrich scholarship and enhance intellectual productivity. (1994-12-22) coarse grain {granularity} COAST {Cache On A STick} coax {coaxial cable} coaxial cable A kind of cable with a solid central conductor surrounded by insulator, in turn surrounded by a cylindrical shield woven from fine wires. It is used to carry high frequency signals such as video or radio. The shield is usually connected to electrical ground to reduce electrical interference. (1995-03-28) COBOL {COmmon Business Oriented Language} COBOL-1961 Extended A short-lived separation of {COBOL} specifications. [Sammet 1969, p. 339]. (1994-10-28) COBOL fingers /koh'bol fing'grz/ Reported from Sweden, a (hypothetical) disease one might get from coding in {COBOL}. The language requires code verbose beyond all reason (see {candygrammar}); thus it is alleged that programming too much in COBOL causes one's fingers to wear down to stubs by the endless typing. [{Jargon File}] (1994-12-22) COBRA Do you mean {CORBA}? Or is there a COBRA? (1996-05-10) cobweb site A {World-Wide Web} site that hasn't been updated for a long time. A dead {web page}. (1997-04-29) Cocktail {GMD Toolbox for Compiler Construction} cocktail shaker sort A bi-directional {bubble sort}. Passes alternate between ascending through array indexes, pushing the largest item to the bottom; and descending through array indexes, pushing the smallest item to the top. [Performace vs plain bubble?] (2001-03-26) CoCo The {Tandy} Color Computer with a Motorola {MC6809E} {CPU}. The {Dragon} is a CoCo clone. The CoCo was as powerful as the {IBM XT} at the time it was made, and could run {OS-9}. (1997-02-12) Cocol {Coco Language} Coco Language (Cocol) A language for writing left-attributed {LL1 grammars}, used as the input language for the {Coco} LL1 {parser generator}, which produces {Modula-2 table-driven parsers} as output. Cocol-2 is a version for the Coco-2 generator. {Cocol/R} is an improvement over the original Cocol and Cocol-2. {(ftp://neptune.inf.ethz.ch/)} ["A Compiler Generator for Microcomputers", P. Rechenberg et al, P-H 1989]. (1997-12-09) Cocol/R (Coco Language) A language for writing left-attributed {LL1 grammars}, used as the input language for the {Coco/R} LL1 {parser generators}, which produce {C++}, {Pascal}, {Modula-2}, {Java} or {Oberon} {recursive-descent parsers} and associated {scanners} as output. Cocol/R is an improvement over the original {Cocol} and Cocol-2. [Moessenboeck, H., "A Generator for Fast Compiler Front-Ends", Report 127, Dept. Informatik, ETH Zurich, 1990]. (1997-12-09) COCOMO {Constructive Cost Model} Coco/R A program by Hanspeter Moessenboeck which generates {recursive descent parsers} and their associated {scanners} from {attributed grammars} (LL1). Coco/R can {bootstrap} itself to generate its own driver, {parser}, scanner and {semantic evaluator} from an attributed grammar included in the distribution. Versions exist for generating {Oberon}, {Modula-2}, {Pascal}, {C}, and {C++} source for {MS-DOS} and {Unix}. A {Java} implementation was planned. Latest version: 1.34, as gf 1994-10-13. Coco/R was ported to {Modula-2} by Marc Brandis, Christof Brass, and Pat Terry. {Home (ftp://ftp.ssw.uni-linz.ac.at/pub/Coco)}. Mail server: (Subject: send pub/modula-2/coco/). E-mail: Pat Terry (Modula/Pascal versions), Hanspeter Moessenboeck (Oberon, Java versions), Frankie Arzu (C, C++ versions). ["A compiler generator for microcomputers", by Rechenberg and Mossenbock, Prentice Hall, 1989, 0-13-155136-1]. [Moessenboeck, H., "A Generator for Fast Compiler Front-Ends", Report 127, Dept. Informatik, ETH Zurich, 1990]. [Terry, P.D., "Compilers and Compiler Generators: An Introduction with C++", ITCP: ISBN 1-85032-298-8]. (1997-12-09) CODASYL {Conference On DAta SYstems Languages} Codd's First Normal Form {database normalisation} Codd's reduction algorithm An {algorithm} to convert an arbitrary expression of the {relational calculus} to an equivalent expression of the {relational algebra}. This can be used as the basis of an implementation of the relational calculus. (1998-10-05) code Instructions for a computer in some programming language, often {machine language}. The word "code" is often used to distinguish instructions from {data} (e.g. "The code is marked 'read-only'") whereas "{software}" is used in contrast with "{hardware}" and may consist of more than just code. (2000-04-08) Code 2.0 A large-grain {dataflow} language with a graphical interface for users to draw communication structure. {Home (http://www.cs.utexas.edu/users/code)} E-mail: Emery Berger . ["The CODE 2.0 Parallel Programming Language", P. Newton et al, Proc ACM Intl Conf on Supercomput, Jul 1992]. (1996-01-13) codebook {data dictionary} CODEC {coder/decoder} CodeCenter (Formerly {Saber-C}) A proprietary software development environment for {C} programs, offering an integrated toolkit for developing, testing, debugging and maintainance. (1994-12-23) coded character set A mapping from a set of {integers} to a set of {characters}. This mapping is generally 1:1 (i.e., {bijective}), for example, the code position 65 in {ASCII} maps only to "A", and it's the only position that maps to "A". There are several standard coded character sets, the most widely used is {ASCII}, generally in its {Latin-1} dialect, with {Unicode} becoming slowly more common; while {EBCDIC} and {Baudot} are extinct except in {legacy systems}. A coded character set may include letters, digits, punctuation, {control codes}, various mathematical and typographic symbols, and other characters. Each character in the set is represented by a unique character code (or "{code position}"). (1998-10-18) Code Division Multiple Access (CDMA) (Or "spread spectrum") A form of {multiplexing} where the transmitter encodes the signal using a {pseudo-random} sequence which the receiver also knows and can use to decode the received signal. Each different random sequence corresponds to a different communication channel. {Motorola} uses CDMA for digital cellular phones. Qualcomm pioneered the introduction of CDMA into wireless telephone services. (2001-03-28) code division multiplexing {Code Division Multiple Access} code grinder A {suit}-wearing minion of the sort hired in legion strength by banks and insurance companies to implement payroll packages in {RPG} and other such unspeakable horrors. In its native habitat, the code grinder often removes the suit jacket to reveal an underplumage consisting of button-down shirt (starch optional) and a tie. In times of dire stress, the sleeves (if long) may be rolled up and the tie loosened about half an inch. It seldom helps. The {code grinder}'s milieu is about as far from hackerdom as one can get and still touch a computer; the term connotes pity. Used of or to a {hacker}, this term is a really serious slur on the person's creative ability; it connotes a design style characterised by primitive technique, rule-boundedness, {brute force} and utter lack of imagination. See {Real World}. Compare {card walloper}. Contrast {real programmer}. [{Jargon File}] (1994-11-11) code management A source code management system helps program developers keep track of version history, releases, parallel versions etc. There are several in popular use. (1994-12-23) code police (By analogy with George Orwell's "Thought Police" in "1984") A mythical team of Gestapo-like storm troopers that might burst into one's office and arrest one for violating programming style rules. May be used either seriously, to underline a claim that a particular style violation is dangerous, or ironically, to suggest that the practice under discussion is condemned mainly by anal-retentive {weenie}s. "Dike out that {goto} or the code police will get you!" The ironic usage is perhaps more common. [{Jargon File}] (1994-12-08) code position An {integer} which a {character encoding} maps to a {character}. (1998-10-18) coder/decoder (CODEC) An {integrated circuit} or other electronic device combining the circuits needed to convert digital signals to and from analog ({Pulse Code Modulation}) form. (1997-07-22) codes 1. Programs. This usage is common among scientific computing people who use {supercumputer}s for heavy-duty {number crunching}. 2. Something to do with {cryptography}. [{Jargon File}] (1994-10-28) C-odeScript A {Liana} interpreter, embeddable in {C} and {C++} programs. (1995-03-09) code segment ({Intel 8086} CS) The area of memory containing the {machine code} instructions of an executing {program}. {Unix}, confusingly, calls this the {text segment}. The code segment of a program may be shared between multiple processes running that code so long as none of them tries to modify it. Other segments are the {data segment} and, in Unix, the {bss segment}. (1996-12-21) code walk Stepping through {source code} as part of a review. (1997-04-02) codewalker A program component that traverses other programs for a living. {Compilers} have codewalkers in their front ends; so do {cross-reference generators} and some database front ends. Other utility programs that try to do too much with source code may turn into codewalkers. As in "This new 'vgrind' feature would require a codewalker to implement." [{Jargon File}] (1994-12-23) CODIL COntext Dependent Information Language. An early language for non-numerical business problems. ["CODIL, Part1. The Importance of Flexibility", C.F. Reynolds et al, Computer J 14(3):217-220 (May 1971)]. (1994-12-23) codomain The set of values or type containing all possible results of a function. The codomain of a function f of type D -> C is C. A function's {image} is a subset of its codomain. (1994-12-23) coefficient of X Hackish speech makes heavy use of pseudo-mathematical metaphors. Four particularly important ones involve the terms "coefficient", "factor", "index", and "quotient". They are often loosely applied to things you cannot really be quantitative, but there are subtle distinctions among them that convey information about the way the speaker mentally models whatever he or she is describing. "Foo factor" and "foo quotient" tend to describe something for which the issue is one of presence or absence. The canonical example is {fudge factor}. It's not important how much you're fudging; the term simply acknowledges that some fudging is needed. You might talk of liking a movie for its silliness factor. Quotient tends to imply that the property is a ratio of two opposing factors: "I would have won except for my luck quotient." This could also be "I would have won except for the luck factor", but using *quotient* emphasises that it was bad luck overpowering good luck (or someone else's good luck overpowering your own). "Foo index" and "coefficient of foo" both tend to imply that foo is, if not strictly measurable, at least something that can be larger or smaller. Thus, you might refer to a paper or person as having a "high bogosity index", whereas you would be less likely to speak of a "high bogosity factor". "Foo index" suggests that foo is a condensation of many quantities, as in the mundane cost-of-living index; "coefficient of foo" suggests that foo is a fundamental quantity, as in a coefficient of friction. The choice between these terms is often one of personal preference; e.g. some people might feel that bogosity is a fundamental attribute and thus say "coefficient of bogosity", whereas others might feel it is a combination of factors and thus say "bogosity index". [{Jargon File}] (1994-11-29) coercion {implicit type conversion} COFF {Common Object File Format} COGENT COmpiler and GENeralized Translator. A {compiler} writing language with pattern-directed string and list processing features, for {CDC 3600} and {CDC} 3800. A program consists of {production}s defining a {context-free} language, plus analysis and synthesis function generators. ["COGENT Programming Manual", J.C. Reynolds, ANL-7022, Argonne, Mar 1965]. [Sammet 1969, p.638]. ["An Introduction to the COGENT System", J.C. Reynolds, Proc ACM 20th Natl Conf, 1965]. (1994-12-23) Cogent Prolog A full {Edinburgh standard Prolog} with {debugger}, {listener}, {DCG}, many {built-ins}, text windows, support for {modules}, and support for both 16-bit and 32-bit {protected mode}. Contact: Dennis C. Merritt. (1999-11-24) Cognitech A French software house specialising in {artificial intelligence}. (1995-01-04) cognitive architecture A computer architecure involving {non-deterministic}, multiple {inference} processes, as found in {neural networks}. Cognitive architectures model the human brain and contrast with single processor computers. The term might also refer to software architectures, e.g. {fuzzy logic}. [Origin? Better definition? Reference?] (1995-11-29) COGO A subsystem of {ICES} aimed at coordinate geometry problems in Civil Engineering. ["Engineer's Guide to ICES COGO I", R67-46, CE Dept MIT (Aug 1967)]. (1995-01-04) Coherent Parallel C A {data parallel} language. ["Coherent Parallel C", E. Felten et al in Third Conf on Hypercube Concurrent Computers and Appls, ACM, 1988, pp.440-450]. (1995-01-04) COHESION {DEC}'s {CASE} environment. [Details?]. (1995-01-04) COIF {Fortran} with interactive graphic extensions for circuit design, on {UNIVAC 1108}. ["An Interactive Software System for Computer-Aided Design: An Application to Circuit Projects", CACM 9(13) (Sep 1970)]. (1995-01-04) cokebottle /kohk'bot-l/ Any very unusual character, particularly one you can't type because it it isn't on your keyboard. {MIT} people used to complain about the "control-meta-cokebottle" commands at {SAIL}, and {SAIL} people complained about the "{altmode}-altmode-cokebottle" commands at {MIT}. After the demise of the {space-cadet keyboard}, "cokebottle" faded away as serious usage, but was often invoked humorously to describe an (unspecified) weird or non-intuitive keystroke command. It may be due for a second inning, however. The {OSF}/{Motif} {window manager}, "{mwm}", has a reserved keystroke for switching to the default set of keybindings and behaviour. This keystroke is (believe it or not) "control-meta-bang" (see {bang}). Since the exclamation point looks a lot like an upside down Coke bottle, {Motif} hackers have begun referring to this keystroke as "cokebottle". See also {quadruple bucky}. [{Jargon File}] (1995-01-04) COLASL An early system for numerical problems on the {IBM 7030}. It used a special character set for input of natural mathematical expressions. [Sammet 1969, pp. 265-271]. (1995-01-04) COLD 1. A {sugar}ed version of {COLD-K}. 2. {Computer Output to Laser Disc}. (1995-01-04) cold boot A {boot} from {power off}. Contrast {warm boot}. [{Jargon File}] (1995-11-27) ColdFusion {Allaire Corporation}'s commercial {database} application development tool that allows {databases} to have a {World-Wide Web} {interface}, so a database can be queried and updated using a {web browser}. The ColdFusion Server application runs on the {web server} and has access to a {database}. ColdFusion files on the web server are {HTML} pages with additional ColdFusion commands to {query} or {update} the database, written in {CFML}. When the page is requested by the user, the {web server} passes the page to the Cold Fusion application, which executes the {CFML} commands, places the results of the {CFML} commands in the {HTML} file, and returns the page to the {web server}. The page returned to the {web server} is now an ordinary {HTML} file, and it is sent to the user. Examples of ColdFusion applications include order entry, event registration, catalogue search, directories, calendars, and interactive training. ColdFusion applications are robust because all database interactions are encapsulated in a single industrial-strength {CGI} script. The formatting and presentation can be modified and revised at any time (as opposed to having to edit and recompile {source code}). ColdFusion Server can connect with any database that supports {ODBC} or {OLE DB} or one that has a native database driver. Native database drivers are available for {Oracle} and {Sybase} databases. The current version is version 4, available for {Windows}, {Solaris} and {HP-UX}. A {development environment} for creating ColdFusion files, called ColdFusion Studio, is also available for {Windows}. The {filename extension} for ColdFusion files is .cfm {Home (http://www.coldfusion.com/)}. (1999-08-01) ColdFusion Markup Language (CFML) A {tag} based {markup} language used to create {ColdFusion} applications by embedding ColdFusion commands in {HTML} files. (1999-08-01) COLD-K Formal design {kernel language} for describing (sequential) software systems in intermediate stages of their design. ["An Introduction to COLD-K", H.B.M. Jonkers in Algebraic Methods: Theory, Tools and Applications, M. Wirsing et al eds, LNCS 394, Springer 1989, pp. 139-205]. (1995-01-04) COLINGO Compile On-LINe and GO. An english-like query system from {MITRE Corporation}. for the {IBM 1401}. ["The COLINGO System Design Philosophy", Information System Sciences, Proc Second Congress, 1965]. [Sammet 1969, p. 664]. (1995-01-04) collision 1. When two {hosts} transmit on a {network} at once causing their {packets} to collide and corrupt each other. See {collision detection}. 2. {hash collision}. (1995-01-06) collision detection A class of methods for sharing a data transmission medium in which hosts transmit as soon as they have data to send and then check to see whether their transmission has suffered a {collision} with another host's. If a collision is detected then the data must be resent. The resending algorithm should try to minimise the chance that two hosts's data will repeatedly collide. For example, the {CSMA/CD} protocol used on {Ethernet} specifies that they should then wait for a random time before re-transmitting. See also {backoff}. This contrasts with {slotted protocols} and {token passing}. (1997-03-18) collocation {co-location} co-location /koh'loh-kay`sh*n/ or /koh`loh-kay'sh*n/ (Or "colocation") Providing network connections such as {Internet} {leased lines} to several {servers} housed together in a {server room}. This is typically provided as a commercial service. The hyphenated form is correct and the most common on the web, followed by "colocation". "collocation" (/ko`loh-kay'sh*n/, not /koh'-/), is an old word with a similar meaning. It is common in dictionaries and follows the pattern of other Latin-derived words like collect, college, and collate, but is least common on the web. The verbal form is "to colocate" or "co-locate" (commonly /koh'loh`kayt/, also (US) /koh`loh'kayt/). (2000-10-03) colon ":". {ASCII} character 58. Common names: {ITU-T}: colon. Rare: dots; {INTERCAL}: two-spot. (1995-09-25) color American spelling of {colour}. (1996-12-13) Color Graphics Adapter (CGA) One of {IBM}'s earliest hardware video {display standards} for use in {IBM PC}s. CGA can display 80*25 or 40*25 text in 16 colors, 640*200 {pixels} graphics in 2 colors or 320*200 in 4 colors (IBM PC video modes 0-6). It is now obsolete. (1995-11-11) color model {colour model} Colossus (A huge and ancient statue on the Greek island of Rhodes). 1. The Colossus and Colussus Mark II computers used by {Alan Turing} at {Bletchley Park}, UK during the Second World War to crack the "Tunny" cipher produced by the Lorenz SZ 40 and SZ 42 machines. Colossus was a semi-fixed-program {vacuum tube} calculator. ["Breaking the enemy's code", Glenn Zorpette, IEEE Spectrum, September 1987, pp. 47-51.] 2. The computer in the film "Colossus: The Forbin Project". Forbin is the designer of an incredibly sophisticated computer that will run all of America's nuclear defences. Shortly after being turned on, it detects the existence of Goliath, the Soviet counterpart, previously unknown to US Planners. Both computers insist that they be linked, and after taking safeguards to preserve confidential material, each side agrees to allow it. As soon as the link is established the two become a new super computer and threaten the world with the immediate launch of nuclear weapons if they are detached. Colossus begins to give its plans for the management of the world under its guidance. Forbin and the other scientists form a technological resistance to Colossus which must operate underground. {The Internet Movie Database (http://www.msstate.edu/M/title-exact?Colossus:%20The%20Forbin%20Project)}. [Date?] (1996-03-24) colour (US "color") Colours are usually represented as {RGB} triples in a {digital} {image} because this corresponds most closely to the electronic signals needed to drive a {CRT}. Several equivalent systems ("{colour models}") exist, e.g. {HSB}. A colour {image} may be stored as three separate images, one for each of red, green, and blue, or each {pixel} may encode the colour using separate {bit-fields} for each colour component, or each pixel may store a logical colour number which is looked up in a hardware {colour palette} to find the colour to display. Printers may use the {CMYK} or {Pantone} representations of colours as well as RGB. (1999-08-02) colour depth {bits per pixel} colour look-up table {colour palette} colour model Any system for representing {colours} as {ordered sets} of numbers. The most common colour models are {RGB}, {CMYK}, and {HSB}. There are several others, e.g. {CMY}, and the "Lab" system(?). See also: {Pantone}. (1999-10-21) colour palette (colour look-up table, CLUT) A device which converts the {logical} colour numbers stored in each {pixel} of {video} memory into {physical} colours, normally represented as {RGB} triplets, that can be displayed on the {monitor}. The palette is simply a block of fast {RAM} which is addressed by the logical colour and whose output is split into the red, green and blue levels which drive the actual display (e.g. {CRT}). The number of entries (logical colours) in the palette is the total number of colours which can appear on screen simultaneously. The width of each entry determines the number of colours which the palette can be set to produce. A common example would be a palette of 256 colours (i.e. addressed by eight-bit pixel values) where each colour can be chosen from a total of 16.7 million colours (i.e. eight bits output for each of red, green and blue). Changes to the palette affect the whole screen at once and can be used to produce special effects which would be much slower to produce by updating pixels. (1997-06-03) Columbia AppleTalk Package (CAP) An implementation of {Apple Computer}'s {AppleTalk} {protocol}s for {Unix} {4.2BSD} and its derivatives, from {Columbia University}. There are two different {LAP} delivery mechanisms for: {IPTalk} and {Ethertalk} (possibly using {UAB}). CAP supports the following {AppleTalk} {protocol}s: {AppleTalk Transaction Protocol} (ATP), {Name Binding Protocol} (NBP), {Printer Access Protocol} (PAP), {AppleTalk Session Protocol} (ASP), {AppleTalk Filing Protocol} (AFP) client side. In addition, the {Datagram Delivery Protocol} (DDP) and {Zone Information Protocol} (ZIP) are partially available. The structure of the {Internet Appletalk Bridge} software makes it impossible to provide full DDP service. Only the Get Zone List ATP ZIP command is implemented for ZIP. (1995-01-10) Column Address Strobe (CAS) A signal sent from a processor (or {memory controller}) to a {dynamic random access memory} (DRAM) (qv) circuit to indicate that the column {address lines} are valid. (1996-10-17) COM 1. {Component Object Model}. 2. {Computer Output on Microfilm}. (1999-06-12) com ("commercial") The {top-level domain} typically for American companies, although it sees heavy use for international companies and {vanity domains} of all types, whether in the US or not. (1999-01-26) COMAL {COMmon Algorithmic Language} combination 1. A {set} containing a certain number of objects selected from another set. The number of combinations of r objects chosen from a set of n is n C r = n! / ((n-r)! r!) where "n C r" is normally with n and r as subscripts or as n above r in parentheses. See also {permutation}. 2. In the theory of {combinator}s, a combination denotes an expression in which {function application} is the only operation. (1995-04-10) combinator A function with no {free variable}s. A term is either a constant, a variable or of the form A B denoting the {application} of term A (a function of one argument) to term B. {Juxtaposition} associates to the left in the absence of parentheses. All combinators can be defined from two basic combinators - S and K. These two and a third, I, are defined thus: S f g x = f x (g x) K x y = x I x = x = S K K x {Combinatory logic} is equivalent to the {lambda-calculus} but a lambda expression of size O(n) is equivalent to a combinatorial expression of size O(n^2). Other combinators were added by {David Turner} in 1979 when he used combinators to implement {SASL}: B f g x = f (g x) C f g x = f x g S' c f g x = c (f x) (g x) B* c f g x = c (f (g x)) C' c f g x = c (f x) g See {fixed point combinator}, {curried function}, {supercombinator}s. (1994-12-06) combinatory logic A system for reducing the operational notation of {logic}, mathematics or a {functional language} to a sequence of modifications to the input data structure. First introduced in the 1920's by {Schoenfinkel}. Re-introduced independently by {Haskell Curry} in the late 1920's (who quickly learned of Schoenfinkel's work after he had the idea). Curry is really responsible for most of the development, at least up until work with Feys in 1958. See {combinator}. (1995-01-05) Comdex A computer show that is held twice yearly, once in the spring (in Atlanta) and once in autumn (in Las Vegas). Comdex is a major show during which new releases of software and hardware are made. {Microsoft}, for example, often annouces its products at Comdex. (1995-01-11) COME FROM A semi-mythical language construct dual to the "go to"; "COME FROM"

"), which are an unordered set of key-value bindings for that element. Both the start tag and end tag for an element typically contain the "tag name" (also called the "{GI}" or generic identifier) for that element. In {XML}, an element is always represented either by an explicit start tag and end tag, or by an empty element tag ("a dodad"). Other kinds of SGML node are: a section of character data ("foo"), a comment (""), a markup declaration (""), or a processing instruction (""). (2001-01-30) elephant Large, grey, four-legged mammal. elephantine Used of programs or systems that are both conspicuous {hog}s (owing perhaps to poor design founded on {brute force and ignorance}) and exceedingly {hairy} in source form. An elephantine program may be functional and even friendly, but (as in the old joke about being in bed with an elephant) it's tough to have around all the same (and, like a pachyderm, difficult to maintain). In extreme cases, hackers have been known to make trumpeting sounds or perform expressive proboscatory mime at the mention of the offending program. Usage: semi-humorous. Compare "has the elephant nature" and the somewhat more pejorative monstrosity. See also {second-system effect} and {baroque}. [{Jargon File}] elevator controller An archetypal dumb embedded-systems application, like {toaster} (which superseded it). During one period (1983--84) in the deliberations of ANSI X3J11 (the C standardisation committee) this was the canonical example of a really stupid, memory-limited computation environment. "You can't require "printf(3)" to be part of the default run-time library - what if you're targeting an elevator controller?" Elevator controllers became important rhetorical weapons on both sides of several {holy wars}. ELF Binary format used by System V Release 4 Unix. ELI 1. An early system on the {IBM 705} and {IBM 650}. [Listed in CACM 2(5):16 (May 1959)]. 2. {Embedded Lisp Interpreter}. Eli Compiler Construction System A compiler generation package which integrates off-the-shelf tools and libraries with specialised language processors to generate complete compilers quickly and reliably. It simplifies the development of new special-purpose languages, implementation of existing languages on new hardware and extension of the constructs and features of existing languages. It runs on {Sun-4} {SunOS} 4, 5, {Ultrix}/{MIPS}, {RS/6000}, {HP-UX}, {SGI}, {Linux}. Latest version 4.3.1, as of 2000-08-07 {Colorado U (ftp://ftp.cs.colorado.edu/pub/cs/distribs/eli/)}. {Europe (ftp://ftp.upb.de/unix/eli)}. Mailing list: . E-mail: , Developers , Users . (2000-08-12) ELISP 1. A {Lisp} variant originally implemented for {DEC-20}s by Chuck Hedrick of Rutgers. 2. A common abbreviation for {Emacs Lisp}. Use of this abbreviation is discouraged because "Elisp" is or was a trademark. [Still a trademark? Whose?] (1995-04-04) elite 1. A term used to describe skilled {crackers} or {hackers}, or their deeds. In the last sense, compare to {elegant}. The term is also used to describe exclusive forums ({ftp} sites, {BBS}s) used for trading pirated software, {crack}ing tools, or {phreaking} codes. (1997-01-31) ELIZA A famous program by {Joseph Weizenbaum}, which simulated a Rogerian psychoanalyst by rephrasing many of the patient's statements as questions and posing them to the patient. It worked by simple {pattern recognition} and substitution of key words into canned phrases. It was so convincing, however, that there are many anecdotes about people becoming very emotionally caught up in dealing with ELIZA. All this was due to people's tendency to attach to words meanings which the computer never put there. See also {ELIZA effect}. (1997-09-13) ELIZA effect /e-li:'z* *-fekt'/ (From {ELIZA}) The tendency of humans to attach associations to terms from prior experience. For example, there is nothing magic about the symbol "+" that makes it well-suited to indicate addition; it's just that people associate it with addition. Using "+" or "plus" to mean addition in a computer language is taking advantage of the ELIZA effect. The ELIZA effect is a {Good Thing} when writing a programming language, but it can blind you to serious shortcomings when analysing an {Artificial Intelligence} system. Compare {ad-hockery}; see also {AI-complete}. [{Jargon File}] (1997-09-13) Elk {Extension Language Kit} ELLA A hardware design language from DRA Malvern. Implemented in {ALGOL68-RS}. E-mail: . {SPARC version (ftp://src.doc.ic.ac.uk/packages/ELLA)}. ["ELLA 2000: A Language for Electronic System Design", J.D. Morison and A.S. Clarke, McGraw-Hill 1993]. Ellemtel A {C++} style-guide originated by {Ellemtel Telecom Systems}, Stockholm. Ellie An {object-oriented} language with fine-grained {parallelism} for {distributed computing}. Ellie is based on {BETA}, {Smalltalk}, and others. Parallelism is supported by {unbounded RPC} and "{future}" {objects}. Synchronisation is by {dynamic interfaces}. {Classes}, {methods}, {blocks}, and {objects} are all modelled by {first-class} "Ellie objects". It supports {genericity}, {polymorphism}, and {delegation}/{inheritance}. {Home (http://www.diku.dk/ellie/papers/)}? ["Ellie Language Definition Report", Birger Andersen , SIGPLAN Notices 25(11):45-65, Nov 1990]. (2000-04-02) ELLIS EuLisp LInda System. An object-oriented Linda system written for EuLisp. "Using Object-Oriented Mechanisms to Describe Linda", P. Broadbery et al, in Linda-Like Systems and Their Implementation, G. Wilson ed, U Edinburgh TR 91-13, 1991. elm A {full-screen} {MUA} for {Unix}, {MS-DOS}, {MS Windows}, and {OS/2}. {Usenet} newsgroup: {news:comp.mail.elm}. {FAQ (http://www.cis.ohio-state.edu/hypertext/faq/usenet/elm/FAQ/faq.html)}. (1996-03-20) ELMAGUIDE The {metalanguage} used for interpretation of user actions in the {ELMA} compiler writer developed at Tallinn Poly Institute in 1978. (1996-03-20) ELMAMETA A Fortran extension, written at the {Tallinn Poly Inst} in 1978, used for lexical, syntactic and semantic sepecification in the {ELMA} {compiler} writer. This system was widely used in the Soviet Union, and produced an {Ada} to {Diana} {compiler}. (1994-12-08) ELP 1. English Language Programs. Language for testing avionics equipment, on Varian 620/i. "Multiband Automatic test Equipment - A Computer Controlled Checkout System", T. Kuroda et al, Proc SJCC, 38 (1971). 2. Equational Logic Programming. A semantically pure, fully {lazy} language by M.J. O'Donnell . Current version: 4.2. {Sun and DEC versions (ftp://gargoyle.uchicago.edu/pub/equations/eq4.2.tar.Z)}. ["Equational Logic as a Programming Language", M.J. O'Donnell, MIT Press 1985]. ELSIE A distributed version of {ELLIS}. ["Using Object-Oriented Mechanisms to Describe Linda", P. Broadbery et al, in "Linda-Like Systems and Their Implementati"on, G. Wilson ed, U Edinburgh TR 91-13, 1991]. (1995-11-16) Elvis A {vi} lookalike which supports nearly all of the vi/ex commands, in both visual mode and colon mode. Like vi/ex, elvis stores most of the text in a temporary file instead of RAM. This allows it to edit files that are too large to fit in a single process' data space. Elvis runs under {BSD} UNIX, AT&T {SysV} UNIX, {MINIX}, {MS-DOS}, {Atari TOS}, {Coherent}, {OS9}/68000, {VMS}, {Windows 95} and {Windows NT}. Elvis is just as awful to use as vi, so someone will like it. Version 1.8pl14 (1995-09-04). {FTP Delft (ftp://dutepp0.et.tudelft.nl/pub/Unix/Editors/)}, {FTP PDX (ftp://ftp.cs.pdx.edu/pub/elvis/)}. E-mail: Steve Kirkendall . (1995-11-16) elvish 1. The Tengwar of Feanor, a table of letterforms resembling the beautiful Celtic half-uncial hand of the "Book of Kells". Invented and described by J.R.R. Tolkien in "The Lord of The Rings" as an orthography for his fictional "elvish" languages, this system (which is both visually and phonetically {elegant}) has long fascinated hackers (who tend to be intrigued by artificial languages in general). It is traditional for graphics printers, plotters, window systems, and the like to support a Feanorian typeface as one of their demo items. By extension, the term might be used for any odd or unreadable typeface produced by a graphics device. 2. The typeface mundanely called "B"ocklin", an art-decoish {display font}. [Why?] [{Jargon File}] (1998-04-28) EM {End of Medium} EM-1 A {stack}-oriented intermediate language from {Vrije University Amsterdam}, used by the {Amsterdam Compiler Kit}. E-mail: Andrew Tanenbaum . (1996-04-07) EMA Extended Mercury Autocode. See {Autocode}. (1995-01-24) Emacs /ee'maks/ (Editing MACroS, or Extensible MACro System, GNU Emacs) A popular {screen editor} for {Unix} and most other {operating systems}. Emacs is distributed by the {Free Software Foundation} and was {Richard Stallman}'s first step in the {GNU} project. Emacs is extensible - it is easy to add new functions; customisable - you can rebind keys, and modify the behaviour of existing functions; self-documenting - there is extensive on-line, context-sensitive help; and has a real-time "what you see is what you get" display. Emacs is writen in {C} and the higher levels are programmed in {Emacs Lisp}. Emacs has an entire {Lisp} system inside it. It was originally written in {TECO} under {ITS} at the {MIT} {AI lab}. AI Memo 554 described it as "an advanced, self-documenting, customisable, extensible real-time display editor". It includes facilities to view directories, run compilation subprocesses and send and receive {electronic mail} and {Usenet} {news} ({GNUS}). {W3} is a {web browser}, the ange-ftp package provides transparent access to files on remote {FTP} {servers}. {Calc} is a calculator and {symbolic mathematics} package. There are "modes" provided to assist in editing most well-known programming languages. Most of these extra functions are configured to load automatically on first use, reducing start-up time and memory consumption. Many hackers (including {Denis Howe}) spend more than 80% of their {tube time} inside Emacs. GNU Emacs is available for {Unix}, {VMS}, {GNU}/{Linux}, {FreeBSD}, {NetBSD}, {OpenBSD}, {MS Windows}, {MS-DOS}, and other systems. Emacs has been re-implemented more than 30 times. Other variants include {GOSMACS}, CCA Emacs, UniPress Emacs, Montgomery Emacs, and {XEmacs}. {Jove}, {epsilon}, and {MicroEmacs} are limited look-alikes. Some Emacs versions running under {window managers} iconify as an overflowing kitchen sink, perhaps to suggest the one feature the editor does not (yet) include. Indeed, some hackers find Emacs too {heavyweight} and {baroque} for their taste, and expand the name as "Escape Meta Alt Control Shift" to spoof its heavy reliance on keystrokes decorated with {bucky bits}. Other spoof expansions include "Eight Megabytes And Constantly Swapping", "Eventually "malloc()'s All Computer Storage", and "Emacs Makes A Computer Slow" (see {recursive acronym}). See also {vi}. Latest version: 20.6, as of 2000-05-11. 21.1 ({RSN}) adds a new redisplay engine with support for {proportional text}, images, {tool bars}, {tool tips}, toolkit scroll bars, and a mouse-sensitive mode line. {FTP} from your nearest {GNU archive site}. E-mail: (bug reports only) . {Usenet} newsgroups: {news:gnu.emacs.help}, {news:gnu.emacs.bug}, {news:alt.religion.emacs}, {news:gnu.emacs.sources}, {news:gnu.emacs.announce}. [{Jargon File}] (1997-02-04) Emacs Lisp A dialect of {Lisp} used to implement the higher layers of the {Free Software Foundation}'s editor, {GNU} {Emacs}. Sometimes abbreviated to "{elisp}". An enormous number of Emacs Lisp packages have been written including modes for editing many programming languages and interfaces to many {Unix} programs. e-mail {electronic mail} e-mail address {electronic mail address} EMAS {Edinburgh Multi Access System} Embedded Lisp Interpreter (ELI) A small {Common Lisp}-like {interpreter} embedded in the {Andrew mail system}, written by Bob Glickstein at {CMU}. (2000-04-05) Embedded Mode A term used by {COCOMO} to describe a project development that is characterised by tight, inflexible constraints and interface requirements. The product must operate within (is embedded in) a strongly coupled complex of hardware, software, regulations and operational procedures. An embedded mode project will require a great deal of innovation. An example would be a {real-time system} with timing constraints and customised hardware. (1996-05-29) embedded system Hardware and software which forms a component of some larger system and which is expected to function without human intervention. A typical embedded system consists of a single-board {microcomputer} with software in {ROM}, which starts running some special purpose {application program} as soon as it is turned on and will not stop until it is turned off (if ever). An embedded system may include some kind of {operating system} but often it will be simple enough to be written as a single program. It will not usually have any of the normal {peripheral}s such as a keyboard, monitor, serial connections, mass storage, etc. or any kind of user interface software unless these are required by the overall system of which it is a part. Often it must provide {real-time} response. {Usenet} newsgroup: {news:comp.arch.embedded}. (1995-04-12) embedding 1. One instance of some mathematical object contained with in another instance, e.g. a {group} which is a subgroup. 2. ({domain theory}) A {complete partial order} F in [X -> Y] is an embedding if (1) For all x1, x2 in X, x1 <= x2 <=> F x1 <= F x2 and (2) For all y in Y, {x | F x <= y} is {directed}. ("<=" is written in {LaTeX} as {\sqsubseteq}). (1995-03-27) EMBLA Pro An {IMAP}-compliant {electronic mail} {client} from {WinSoft Products Ltd}. EMBLA Pro allows you to use an IMAP mail server in a true client/server network manner, once you've connected to the IMAP server, you can organise messages into folders on the server and you can view messages and any attached files at the server before deciding whether or not to download them to your local system. IMAP allows the user to select individual message attachments to be viewed and/or downloaded. You can delete files and messages from the server, move or copy them to the local computer or leave them for future retrieval. EMBLA Pro also supports the standard {POP3} protocol. Both POP3 and IMAP2 run over {E-SMTP}. The IMAP {Unix} {daemons} can support specific environments, for example, Sun MailTool attachments. All flavours of Unix are catered for with a suite of binary mail daemons, eg: {SunSoft} {Solaris}, {HP}, {IBM} and {SCO}. EMBLA conforms to the SMTP, E-SMTP, {MIME} and IMAP {Internet} standards - RFC1590 (RFC1521), RFC1522, RFC1426, RFC1425, RFC1176, RFC0822, RFC0821 and the draft update of RFC1176. {Home (http://www.ftech.co.uk/~winsoft/embla.htm)} (1996-03-11) embosser {Braille printer} EMC {Electromagnetic Compatibility} EMD Enterprises, Inc. A software development and consulting firm specialising in {database} and {client-server} applications. {(http://www.emdent.com/)} (1994-12-12) EMDIR The CERN {Electronic Mail DIRectory} utility. [Details?] (1995-02-23) Emerald An {object-oriented} distributed programming language and environment developed at the {University of Washington} in the early 1980s. Emeral was the successor to {EPL}. It is {strongly typed} and uses {signature}s and {prototype}s rather than {inheritance}. ["Distribution and Abstract Types in Emerald", A. Black et al, IEEE Trans Soft Eng SE-13(1):65-76 (Jan 1987)]. (1994-11-09) Emitter Coupled Logic (ECL) (Or "Current Mode Logic") A technology for building logic gates where the emitter of a {transistor} is used as the output rather than its collector. ECL has a propagation time of 0.5 - 2 ns (faster than {TTL}) and a power dissipation 3 - 10 times higher than {TTL}. (1994-11-09) EML Extended ML. A language for formally specifying {SML} programs. ["Formal Program Development in Extended ML for the Working Programmer", D. Sannella, Proc 3rd BCS/FACS Workshop on Refinement", Springer 1990]. EMM {Expanded Memory Manager}. (1996-01-12) EMM386 An {expanded memory manager} for {IBM PCs} with an {Intel 80386} or higher processor, part of {MS-DOS} version 5.00 or higher. EMM386 uses {extended memory} to simulate {expanded memory} and also provides {upper memory blocks}. It must be loaded by a DEVICE= command in your {CONFIG.SYS} file. (1996-01-13) emote (emotion) A command used on {talk} systems and {MUD}s to indicate the performance of an action, usually a facial expression of emotional state. (1996-11-28) emoticon /ee-moh'ti-kon/ An {ASCII} {glyph} used to indicate an emotional state in {electronic mail} or {news}. Although originally intended mostly as jokes, emoticons (or some other explicit humour indication) are virtually required under certain circumstances in high-volume text-only communication forums such as {Usenet}; the lack of verbal and visual cues can otherwise cause what were intended to be humorous, sarcastic, ironic, or otherwise non-100%-serious comments to be badly misinterpreted (not always even by {newbie}s), resulting in arguments and {flame war}s. Hundreds of emoticons have been proposed, but only a few are in common use. These include: :-) "smiley face" (for humour, laughter, friendliness, occasionally sarcasm) :-( "frowney face" (for sadness, anger, or upset) ;-) "half-smiley" (ha ha only serious); also known as "semi-smiley" or "winkey face". :-/ "wry face" These may become more comprehensible if you tilt your head sideways, to the left. The first two are by far the most frequently encountered. Hyphenless forms of them are common on {CompuServe}, {GEnie}, and {BIX}; see also {bixie}. On {Usenet}, "smiley" is often used as a generic term synonymous with emoticon, as well as specifically for the happy-face emoticon. It appears that the emoticon was invented by one Scott Fahlman on the {CMU} {bboard} systems around 1980. He later wrote: "I wish I had saved the original post, or at least recorded the date for posterity, but I had no idea that I was starting something that would soon pollute all the world's communication channels." [{GLS} confirms that he remembers this original posting]. As with exclamation marks, overuse of the smiley is a mark of loserhood! More than one per paragraph is a fairly sure sign that you've gone over the line. [{Jargon File}] (1994-12-02) empeg An in-car audio product that plays {MP3} files from a {hard disk}. It is based around a {DEC}/{Intel} {StrongARM} {S-1100} processor and runs a version of {Linux}. The {user interface} is written in {Python}. {Home (http://www.empeg.com/)}. See also {MPEG}. (1999-09-14) empire Any of a family of military simulations derived from a game written by Peter Langston many years ago. Five or six multi-player variants of varying degrees of sophistication exist, and one single-player version implemented for both {Unix} and {VMS}; the latter is even available as {MS-DOS} {freeware}. All are notoriously addictive. [{Jargon File}] (1995-08-06) empty element tag {tag} EMS {Expanded Memory Specification} EMU8000 The "{Advanced WavEffect}" music synthesizer {integrated circuit} used on the {SB AWE32} card. The EMU8000 is a sub-system offering high quality music synthesis and an "effect {engine}" which provides musical effects like reverb and chorus to {MIDI} playback. The EMU8000 supports up to 32 voices, and the effect amount for each voice can be controlled via MIDI. (1996-12-15) emulation One system is said to emulate another when it performs in exactly the same way, though perhaps not at the same speed. A typical example would be emulation of one computer by (a program running on) another. You might use an emulation as a replacement for a system whereas you would use a simulation if you just wanted to analyse it and make predictions about it. (1995-05-12) emulator {Hardware} or {software} that performs {emulation}. (1995-05-12) Emulator program (EP) {IBM} software that emulates a 2701/2/3 hard-wired {IBM 360} communications controller and resides in a 370x/372x/374x comms controller. See also {Partitioned Emulation Program} (PEP). (1999-01-29) EMX A programming environment for {OS/2} by Eberhard Mattes . EMX supports programming in {C}, {C++} and {Objective C}. It works with {gcc}, {g++}, {gdb}, {libg++}, .obj linkage, {DLL} and {header}s. Version 0.8g. {Europe (ftp://ftp.uni-stuttgart.de/soft/os2/emx-0.8g)}. {US (ftp://ftp-os2.cdrom.com/os2/2_x/Unix/gnu/emx0.8g)}. Mailing list: ("subscribe to emx-list"). (1992-09-21) enabling {software enabling} Encapsulated PostScript (EPS) An extension of the {PostScript} graphics file format developed by {Adobe Systems}. EPS is used for {PostScript} graphics files that are to be incorporated into other documents. An EPS file includes {pragma}s (special PostScript comments) giving information such as the bounding box, page number and fonts used. On some computers, EPS files include a low resolution version of the PostScript image. On the {Macintosh} this is in {PICT} format, while on the {IBM PC} it is in {TIFF} or {Microsoft Windows} {metafile} format. [Spec?] (1995-01-04) encapsulation 1. The technique used by layered protocols in which a layer adds header information to the protocol data unit (PDU) from the layer above. As an example, in Internet terminology, a packet would contain a header from the physical layer, followed by a header from the network layer (IP), followed by a header from the transport layer (TCP), followed by the application protocol data. 2. The ability to provide users with a well-defined interface to a set of functions in a way which hides their internal workings. In {object-oriented programming}, the technique of keeping together data structures and the methods (procedures) which act on them. (1998-09-07) encode 1. To convert {data} or some physical quantity into a given format. E.g. {uuencode}. See also {encoder}. 2. To encrypt, to perform {encryption}. (1999-07-06) encoder 1. Any program, circuit or {algorithm} which {encode}s. Example usages: "{MPEG} encoder", "{NTSC} encoder", "{RealAudio} encoder". 2. A sensor or transducer for converting rotary motion or position to a series of electronic pulses. (1997-03-04) encryption Any procedure used in {cryptography} to convert {plaintext} into {ciphertext} in order to prevent any but the intended recipient from reading that data. There are many types of data encryption, and they are the basis of network security. Common types include {Data Encryption Standard} and {public-key encryption}. The {Unix} command {crypt} performs encryption. {(http://eff.org/)} (1995-05-02) -endian The ordering of {bytes} in a multi-byte number. The term comes from Swift's "Gulliver's Travels" via the famous paper "On Holy Wars and a Plea for Peace" by Danny Cohen, USC/ISI IEN 137, 1980-04-01. The Lilliputians, being very small, had correspondingly small political problems. The Big-Endian and Little-Endian parties debated over whether soft-boiled eggs should be opened at the big end or the little end. See {big-endian}, {little-endian}, {middle-endian}, {holy wars}, {NUXI problem}, {swab}. (1998-08-09) endless loop {infinite loop} End Of Line (EOL) Synonym for {newline}, derived perhaps from the original {CDC6600} {Pascal}. Now rare, but widely recognised and occasionally used for brevity. Used in the example entry under {BNF}. Out of context this would probably be (deliberately) ambiguous because different systems used different (combinations of) characters to mark the end of a line. {Unix} uses a {line feed}; DOS uses {carriage return}, line feed ({CRLF}) and the {Macintosh} uses carriage return. See also {EOF}. (1997-07-14) End of Medium (EM) {ASCII} character 25. (1996-06-28) End Of Text {control-C} End Of Transmission (EOT) The {mnemonic} for {ASCII} character 4. end tag {tag} End Transmission Block (ETB) The {mnemonic} for {ASCII} character 23. (1996-06-28) end-user The person who uses a computer application, as opposed to those who developed or support it. The end-user may or may not know anything about computers, how they work, or what to do if something goes wrong. End-users do not usually have administrative responsibilities or privileges. End users are certain to have a different set of assumptions than the developers who created the application. (1997-03-29) Engelbart, Douglas {Douglas Engelbart} engine 1. A piece of {hardware} that encapsulates some function but can't be used without some kind of {front end}. Today we have, especially, "{print engine}": the guts of a {laser printer}. 2. An analogous piece of software; notionally, one that does a lot of noisy {crunching}, such as a "database engine", or "{search engine}". The hackish senses of "engine" are actually close to its original, pre-Industrial-Revolution sense of a skill, clever device, or instrument (the word is cognate to "ingenuity"). This sense had not been completely eclipsed by the modern connotation of power-transducing machinery in {Charles Babbage}'s time, which explains why he named the stored-program computer that he designed in 1844 the "{Analytical Engine}". [{Jargon File}] (1996-05-31) English 1. (Obsolete) The source code for a program, which may be in any language, as opposed to the linkable or executable binary produced from it by a compiler. The idea behind the term is that to a real hacker, a program written in his favourite programming language is at least as readable as English. Usage: mostly by old-time hackers, though recognisable in context. 2. The official name of the {database} language used by the {Pick} {operating system}, actually a sort of crufty, brain-damaged {SQL} with delusions of grandeur. The name permits {marketroid}s to say "Yes, and you can program our computers in English!" to ignorant {suit}s without quite running afoul of the truth-in-advertising laws. ["Exploring the Pick Operating System", J.E. Sisk et al, Hayden 1986]. [{Jargon File}] Enhanced Capabilities Port (ECP) The most common {parallel printer interface} on current (1997) {IBM PC} compatibles. Enhanced Capabilities Port is defined in standard IEEE 1284. It is bi-directional and faster than earlier parallel ports. Not to be confused with {Extended Capabilities Port}. (1997-12-01) Enhanced Dynamic Random Access Memory (EDRAM) {(http://www.ruralnet.net/~prairie)}. [Summary?] (1995-11-23) Enhanced Graphics Adapter (EGA) An {IBM PC} {display standard} with a {resolution} of 640 x 350 {pixel}s of 16 colours. (1995-06-28) Enhanced IDE {Advanced Technology Attachment Interface with Extensions} Enhanced Integrated Drive Electronics {Advanced Technology Attachment Interface with Extensions} enhanced parallel port (EPP) A {parallel port} that confirms to the {IEEE}'s EPP {standard}. An EPP is actually an expansion bus that can handle 64 {disk drives} and other {peripherals}. ["PC Magazine", 1996-01-09, p. 262]. [Details? Manufacturers?] (1996-04-07) Enhanced Small Disk Interface (ESDI) {Compaq}'s {hard disk} {controller} {standard} which was supposed to be faster than {SCSI} and {IDE} but unfortunately never caught on. It is found in some Compaq {personal computers} and most {MicroChannel} {IBM} {PS/2}s. (1995-11-23) enhancement 1. A change to a product which is intended to make it better in some way, e.g. new functions, faster, or occasionally more compatible with other systems. Enhancements to {hardware} components, especially {integrated circuits} often mean they are smaller and less demanding of resources. Sadly, this is almost never true of {software} enhancements. 2. {Marketroid}-speak for a {bug fix}. This abuse of language is a popular and time-tested way to turn incompetence into increased revenue. A hacker being ironic would instead call the fix a {feature}, or perhaps save some effort by declaring "{That's not a bug, that's a feature!}". [{Jargon File}] (1998-04-04) ENIAC {Electronic Numerical Integrator and Computer} Enigma The electro-mechanical {cipher} engine used by the Germans in World War II. Many of their messages were deciphered at {Bletchley Park}, by {Alan Turing} and others. (2000-09-30) ENOB {effective number of bits} ENQ 1. /enkw/ or /enk/ ENQuire. The {mnemonic} for {ASCII} character 5. 2. An on-line convention for querying someone's availability. After opening a {chat} connection to someone apparently in heavy hack mode, one might type "SYN SYN ENQ?" (the SYNs representing notional synchronisation bytes), and expect a return of {ACK} or {NAK} depending on whether or not the person felt interruptible. Compare {ping}, {finger}. [{Jargon File}] (1998-01-18) Ente Nazionale Italiano di Unificazione (UNI) The Italian national standards body, a member of {ISO}. enterprise A business, generally a large one. (1994-11-22) Enterprise Application Integration (EAI) The use of {middleware} to integrate the {application programs}, {databases}, and {legacy systems} involved in an organisation's critical business processes. [Example?] (1999-09-28) Enterprise JavaBeans (EJB) A {server}-side {component architecture} for writing reusable {business logic} and {portable} {enterprise} applications. EJB is the basis of {Sun}'s {Java 2 Platform, Enterprise Edition} (J2EE). Enterprise JavaBean components are written entirely in {Java} and run on any EJB compliant server. They are {operating system}, {platform}, and {middleware} independent, preventing vendor {lock-in}. EJB servers provide system-level services (the "plumbing") such as {transactions}, security, {threading}, and {persistence}. The EJB architecture is inherently transactional, {distributed}, {multi-tier}, {scalable}, secure, and {wire protocol} neutral - any {protocol} can be used: {IIOP}, {JRMP}, {HTTP}, {DCOM} etc. EJB 1.1 requires {RMI} for communication with components. EJB 2.0 is expected to require support for RMI/IIOP. EJB applications can serve assorted clients: {browsers}, Java, {ActiveX}, {CORBA} etc. EJB can be used to wrap {legacy systems}. EJB 1.1 was released in December 1999. EJB 2.0 is in development. Sun claims broad industry adoption. 30 vendors are shipping server products implementing EJB. Supporting vendors include {IBM}, {Fujitsu}, {Sybase}, {Inprise}, {Oracle}, and {Symantec}. An alternative is Microsoft's MTS ({Microsoft Transaction Server}). {Home (http://java.sun.com/products/ejb/)}. {FAQ (http://java.sun.com/products/ejb/faq.html)}. (2000-04-20) Enterprise Resource Planning (ERP) Any {software} system designed to support and automate the business processes of medium and large businesses. This may include manufacturing, distribution, personnel, project management, payroll, and financials. ERP systems are accounting-oriented information systems for identifying and planning the {enterprise}-wide resources needed to take, make, distribute, and account for customer orders. ERP systems were originally extensions of {MRP II} systems, but have since widened their scope. An ERP system also differs from the typical MRP II system in technical requirements such as {relational database}, use of {object oriented programming} language, {computer aided software engineering} tools in development, {client/server} {architecture}, and {open system} {portability}. {JBOPS} are the major producers of ERP software. {"ERP Systems - Using IT to gain a competitive advantage", Shankarnarayanan S. (http://www.expressindia.com/newads/bsl/advant.htm)}. (1999-07-27) Enterprise Systems CONnectivity (ESCON) {Optical fibre} connections between a {mainframe} and its {peripherals}. Also an {IBM} registered trademark. (1997-03-31) EntireX The German company {Software AG}'s implementation of {DCOM} under {Unix} and on {IBM} {mainframes}, released at the end of 1997. EntireX enables users to exchange their {DCOM} components between {Windows 95}, {Windows NT}, {Unix} and {OS/390} and to build {application programs} with components running on any of those {platforms}. {Home (http://www.softwareag.com/corporat/solutions/entirex/entirex.htm)}. (1999-02-05) entity-relationship diagram {entity-relationship model} entity-relationship model An approach to {data modelling} proposed by P. Chen in 1976. The model says that you divide your database in two logical parts, entities (e.g. "customer", "product") and relations ("buys", "pays for"). Entity-relationship diagrams can be used to represent a model. ["The entity-relationship model: toward a unified view of data", P.P. Chen, ACM Transactions on Database Systems 1:1 pp 9-36, 1976]. (1998-03-20) entropy A measure of the disorder of a system. Systems tend to go from a state of order (low entropy) to a state of maximum disorder (high entropy). The entropy of a system is related to the amount of {information} it contains. A highly ordered system can be described using fewer {bit}s of information than a disordered one. For example, a string containing one million "0"s can be described using {run-length encoding} as [("0", 1000000)] whereas a string of random symbols (e.g. bits, or characters) will be much harder, if not impossible, to compress in this way. {Shannon}'s formula gives the entropy H(M) of a message M in bits: H(M) = -log2 p(M) Where p(M) is the probability of message M. (1998-11-23) Entry Sequenced Data Set (ESDS) An {IBM} straight sequential flat file (like {QSAM}) but externally managed via {IDCAMS}. ESDS is used in {VSAM}. (1999-01-11) enumerated type (Or "enumeration") A {type} which includes in its definition an exhaustive list of possible values for variables of that type. Common examples include {Boolean}, which takes values from the list [true, false], and day-of-week which takes values [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]. Enumerated types are a feature of {strongly typed languages}, including {C} and {Ada}. Characters, (fixed-size) integers and even {floating-point} types could be (but are not usually) considered to be (large) enumerated types. (1996-11-28) enumeration 1. A {bijection} with the {natural numbers}; a {counted set}. Compare {well-ordered}. 2. {enumerated type}. (1996-11-28) environment {environment variable} environment variable A {variable} that is bound in the current environment. When evaluating an expression in some environment, the evaluation of a variable consists of looking up its name in the environment and substituting its value. Most programming languages have some concept of an environment but in {Unix} {shell scripts} it has a specific meaning slightly different from other contexts. In shell scripts, environment variables are one kind of {shell variable}. They differ from {local variables} and {command line arguments} in that they are inheritted by a {child process}. Examples are the PATH variable that tells the shell the {file system} {paths} to search to find command {executables} and the TZ variable which contains the local time zone. The variable called "SHELL" specifies the type of shell being used. These variables are used by commands or {shell scripts} to discover things about the environment they are operating in. Environment variables can be changed or created by the {user} or a program. To see a list of environment variables type "setenv" at the {csh} or {tcsh} {prompt} or "set" at the {sh}, {bash}, {jsh} or {ksh} prompt. In other programming languages, e.g. {functional programming} languages, the environment is extended with new bindings when a {function}'s {parameters} are bound to its {actual arguments} or when new variables are declared. In a {block-structured} {procedural} language, the environment usually consists of a {linked list} of {activation records}. (1999-01-26) Envoy {Motorola}'s integrated personal wireless communicator. Envoy is a {personal digital assistant} which incorporates two-way wireless and wireline communication. It was announced on 7 March 1994 and released in the third quarter of 1994. It runs {Genral Magic}'s {Magic Cap} {operating system} and Telescript(TM) communications language on Motorola's {Dragon} chip set. This includes the highly integrated {Motorola 68349} processor and a special purpose {application specific integrated circuit} (ASIC) referred to as Astro. This chip set was designed specifically for {Magic Cap} and {Telescript}. A user can write on the Envoy communicator with the accompanying stylus or a finger, to type and select or move objects on its screen. An on-screen keyboard can be used to input information, draw or write personal notations, or send handwritten messages and faxes. Envoy can send a wireless message to another Envoy, {PC} or fax; broadcast a message to a group, with each member of that group receiving the message in their preferred format; gather information based on your requirements; schedule a meeting and automatically invite attendees; screen, route and organise messages; send a business card to another Envoy across a conference room table; access real-time scheduling and pricing information for US airline flights, then order tickets via fax or {electronic mail}; keep track of contacts through an address book; receive daily news summaries and stock information; capture, organize and review business and personal expenses on-the-go; gather, edit and analyze information in spreadsheets and graphs compatible with {Lotus 1-2-3} and {Excel}; shop in an electronic mall. {(http://www.motorola.com/MIMS/WDG/Technology/Envoy/)} [Was it released in Q3 '94?] (1995-01-18) EOF End Of File 1. The {out-of-band} value returned by {C}'s sequential character-input functions (and their equivalents in other environments) when end of file has been reached. This value is -1 under {C} libraries postdating V6 Unix, but was originally 0. 2. The keyboard character (usually control-D, the ASCII EOT (End Of Transmission) character) that is mapped by the {Unix} terminal driver into an end-of-file condition. [{Jargon File}] (1995-01-18) EOL 1. {End Of Line}. 2. Expression Oriented Language. A low-level language for strings. Versions: EOL-1, EOL-2, EOL-3. ["EOL - A Symbol Manipulation Language", L. Lukaszewicz, Computer J 10(1):53 (May 1967)]. [{Jargon File}] EOT 1. {End Of Transmission} 2. End Of Tape. A marker used on {magnetic tapes}. (1996-06-24) EOU The mnemonic of a mythical {ASCII} control character (End Of User) that would make an {ASR-33} {Teletype} explode on receipt. This construction parodies the numerous obscure {delimiter} and control characters left in ASCII from the days when it was associated more with wire-service teletypes than computers (e.g. {FS}, {GS}, {RS}, {US}, {EM}, {SUB}, {ETX}, and especially {EOT}). It is worth remembering that ASR-33s were big, noisy mechanical beasts with a lot of clattering parts; the notion that one might explode was nowhere near as ridiculous as it might seem to someone sitting in front of a {tube} or flatscreen today. [{Jargon File}] (1996-06-29) EOUG European {ORACLE} Users Group. EP {Emulator program} EPCS {Experimental Physics Control Systems} EPILOG 1. Extended Programming In LOGic. {PROLOG} with several AND's having different time constraints. ["Epilog: A Language for Extended Programming in Logic", A. Porto in Implementations of Prolog, J.A. Campbell ed, Ellis Horwood 1984]. 2. A {data-driven} {PROLOG}, with both {AND parallelism} and {OR parallelism}. ["EPILOG = PROLOG + Data Flow", M.J. Wise, SIGPLAN Noices 17:80-86 (1982)]. EPIM {Enterprise Product Information Management} EPL 1. {Early PL/I}. 2. {Experimental Programming Language}. 3. Eden Programming Language. U Washington. Based on Concurrent Euclid and used with the Eden distributed OS. Influenced Emerald and Distributed Smalltalk. "EPL Programmer's Guide", A. Black et al, U Washington June 1984. 4. Equational Programming Language. Szymanski, RPI. Equational language for parallel scientific applications. "EPL - Parallel Programming with Recurrent Equations", B. Szymanski in Parallel Functional Languages and Compilers, B. Szymanski et al, A-W 1991. epoch 1. [Unix: probably from astronomical timekeeping] The time and date corresponding to 0 in an operating system's clock and timestamp values. Under most Unix versions the epoch is 00:00:00 GMT, January 1, 1970; under VMS, it's 00:00:00 of November 17, 1858 (base date of the US Naval Observatory's ephemerides); on a Macintosh, it's the midnight beginning January 1 1904. System time is measured in seconds or {tick}s past the epoch. Weird problems may ensue when the clock wraps around (see {wrap around}), which is not necessarily a rare event; on systems counting 10 ticks per second, a signed 32-bit count of ticks is good only for 6.8 years. The 1-tick-per-second clock of Unix is good only until January 18, 2038, assuming at least some software continues to consider it signed and that word lengths don't increase by then. See also {wall time}. 2. (Epoch) A version of {GNU Emacs} for the {X Window System} from {NCSA}. [{Jargon File}] EPP {Enhanced Parallel Port} EPROM {Erasable Programmable Read-Only Memory} EPROM OTP {Erasable Programmable Read-Only Memory One Time Programmable} EPROS A specification/prototyping language. Implemented in {Franz Lisp}. {(ftp://utsun.s.u-tokyo.jp/lang/epros)} ["Software Prototyping, Formal Methods and VDM", Sharam Hekmatpour et al, A-W 1988]. EPS {Encapsulated PostScript} EPSILON A {macro} language with high level features including strings and lists, developed by A.P. Ershov at Novosibirsk in 1967. EPSILON was used to implement {ALGOL 68} on the {M-220}. ["Application of the Machine-Oriented Language Epsilon to Software Development", I.V. Pottosin et al, in Machine Oriented Higher Level Languages, W. van der Poel, N-H 1974, pp. 417-434]. [{Jargon File}] (1995-05-10) epsilon 1. A small quantity of anything. "The cost is epsilon." 2. Very small, negligible; less than {marginal}. "We can get this feature for epsilon cost." 3. "within epsilon of": close enough to be indistinguishable for all practical purposes, even closer than being "within delta of". "That's not what I asked for, but it's within epsilon of what I wanted." Alternatively, it may mean not close enough, but very little is required to get it there: "My program is within epsilon of working." [{Jargon File}] epsilon squared A quantity even smaller than {epsilon}, as small in comparison to epsilon as epsilon is to something normal; completely negligible. If you buy a supercomputer for a million dollars, the cost of the thousand-dollar terminal to go with it is {epsilon}, and the cost of the ten-dollar cable to connect them is epsilon squared. Compare {lost in the underflow}, {lost in the noise}. (1997-09-05) EPSIMONE Concurrent simulation language derived from Simone. "EPSIMONE Manual", J. Beziin et al, Pub Int No 90, IRISA, Sept 1978. EPSS {Electronic Performance Support System} EqL An equational language. Bharat Jayaraman . "EqL: The Language and its Implementation", B. Jayaraman et al, IEEE Trans Soft Eng SE-15(6):771-780 (June 1989). EQLOG Equality, types and generic modules for logic programming. A language using Horn clauses. J.A. Goguen, J. Meseguer. EQLog OBJ2 plus logic programming based on Horn logic with equality. "EQLog: Equality, Types and Generic Modules for Logic Programming", J. Goguen et al in Functional and Logic Programming, D. DeGroot et al eds, pp.295-363, P-H 1986. Eqn Language for typesetting mathematics. "A System for Typesetting Mathematics", B.W. Kernighan and L.L. Cherry, CACM 18(3):151-157 (Mar 1975). equals "=", {ASCII} character 61. Common names: {ITU-T}: equals; gets; takes. Rare: quadrathorpe; {INTERCAL}: half-mesh. Equals is used in many languages as the {assignment} operator though earlier languages used ":=" ("becomes equal to") to avoid upsetting mathematicians with statements such as "x = x+1". It is also used in compounds such as "<=", ">=", "==", "/=", "!=" for various comparison operators and in {C}'s "+=", "*=" etc. which mimic the {primitive} operations of {two-address code}. (1995-03-29) equational logic First-order equational logic consists of {quantifier}-free terms of ordinary {first-order logic}, with equality as the only {predicate} symbol. The {model theory} of this logic was developed into {Universal algebra} by Birkhoff et al. [Birkhoff, Gratzer, Cohn]. It was later made into a branch of {category theory} by Lawvere ("algebraic theories"). (1995-02-21) Equel Embedded Quel. {INGRES, Inc.} Combines QUEL theories with C code. equivalence class An equivalence class is a subset whose elements are related to each other by an {equivalence relation}. The equivalence classes of a set under some relation form a {partition} of that set (i.e. any two are either equal or {disjoint} and every element of the set is in some class). (1996-05-13) equivalence class partitioning A software testing technique that involves identifying a small set of representative input values that invoke as many different input conditions as possible. (1996-05-13) equivalence relation A relation R on a set including elements a, b, c, which is reflexive (a R a), symmetric (a R b => b R a) and transitive (a R b R c => a R c). An equivalence relation defines an {equivalence} class. See also {partial equivalence relation}. (1996-05-13) ER {Entity-Relationship} er The {country code} for Eritrea. (1999-01-27) ERA {Entity-Relationship-Attribute} era Synonym {epoch}. Webster's Unabridged makes these words almost synonymous, but "era" usually connotes a span of time rather than a point in time. Erasable Programmable Read-Only Memory (EPROM) A type of storage device in which the data is determined by electrical charge stored in an isolated ("floating") {MOS} {transistor} {gate}. The isolation is good enough to retain the charge almost indefinitely (more than ten years) without an external power supply. The EPROM is programmed by "injecting" charge into the floating gate, using a technique based on the tunnel effect. This requires higher voltage than in normal operation (usually 12V - 25V). The floating gate can be discharged by applying ultraviolet light to the chip's surface through a quartz window in the package, erasing the memory contents and allowing the chip to be reprogrammed. (1995-04-22) erase {delete} ERC An extended {entity-relationship model}. [Details? What does it stand for?] (1997-12-23) ERCIM European Research Consortium on Informatics and Mathematics. An association of European research organisations promoting cooperative research on key issues in {Information Technology}. (2000-12-30) ERD {entity-relationship diagram} EREW PRAM exclusive read, exclusive write {PRAM}. ERFPI An early system on the {LGP-30} computer. [Listed in CACM 2(5):16 (May 1959)]. (1994-12-08) ergonomic Concerning {ergonomics} or exhibitting good ergonimics. (1995-04-14) ergonomics The study of the design and arrangement of equipment so that people will interact with the equipment in healthy, comfortable, and efficient manner. As related to computer equipment, ergonomics is concerned with such factors as the physical design of the keyboard, screens, and related hardware, and the manner in which people interact with these hardware devices. (1995-04-14) ERGO-Shell An ergonomic {X Window System} {Unix} {shell} for software engineers by Regine Freitag . ERGO-Shell is now obsolete. Version: 2.1. {(ftp://ftp.gmd.de/gmd/ergo/)} E-mail: Dr. Wolfgang Dzida, GMD or the author. (2000-12-19) Eric Conspiracy A shadowy group of moustachioed hackers named Eric first pinpointed as a sinister conspiracy by an infamous talk.bizarre posting ca. 1986. This was doubtless influenced by the numerous "Eric" jokes in the Monty Python oeuvre. There do indeed seem to be considerably more moustachioed Erics in hackerdom than the frequency of these three traits can account for unless they are correlated in some arcane way. Well-known examples include {Eric Allman} (of the "Allman style" described under {indent style}), {Erik Fair} (co-author of NNTP), {Eric S. Raymond} and about fifteen others. The organisation line "Eric Conspiracy Secret Laboratories" now emanates regularly from more than one site. [{Jargon File}] (1998-10-20) Eric S. Raymond One of the authors of the Hacker's {Jargon File}. Eric was involved in the {JOLT} project and {GNU Emacs} as well as maintaining several {FAQ} lists. He is a keen advocate of {open source}. {Home (http://www.ccil.org/~esr)}. E-mail: (1998-10-20) Eris /e'ris/ The Greek goddess of Chaos, Discord, Confusion, and Things You Know Not Of; her name was latinised to Discordia and she was worshiped by that name in Rome. Not a very friendly deity in the Classical original, she was reinvented as a more benign personification of creative anarchy starting in 1959 by the adherents of {Discordianism} and has since been a semi-serious subject of veneration in several "fringe" cultures, including hackerdom. See {Church of the SubGenius}. [{Jargon File}] (1994-12-08) Erlang 1. {A. K. Erlang}. (The other senses were named after him). 2. A concurrent {functional language} for large industrial {real-time} systems by Armstrong, Williams and Virding of Ellemtel, Sweden. Erlang is untyped. It has {pattern matching} syntax, {recursion equations}, explicit {concurrency}, {asynchronous message passing} and is relatively free from {side-effects}. It supports transparent cross-{platform} distribution. It has primitives for detecting run-time errors, real-time {garbage collection}, {modules}, {dynamic code replacement} (change code in a continuously running real-time system) and a {foreign language interface}. An unsupported free version is available (subject to a non-commercial licence). Commercial versions with support are available from {Erlang Systems AB}. An {interpreter} in {SICStus Prolog} and compilers in {C} and Erlang are available for several {Unix} {platforms}. {OTP} is an associated control system platform. {Commercial version (http://www.erlang.se/)} - sales, support, training, consultants. {Open-source version (http://www.erlang.org/)} - downloads, user-contributed software, mailing lists. E-mail: . [Erlang - "Concurrent Programming in Erlang", J. Armstrong, M. & Williams R. Virding, Prentice Hall, 1993. ISBN 13-285792-8.] 3. 36 {CCS} per hour, or 1 call-second per second. Erlang is a unit without dimension, accepted internationally for measuring the traffic intensity. This unit is defined as the aggregate of continuous occupation of a channel for one hour (3600 seconds). An intensity of one Erlang means the channel is continuously occupied. (2000-03-16) erotica {pornography} ERP {Enterprise Resource Planning} error 1. A discrepancy between a computed, observed, or measured value or condition and the true, specified, or theoretically correct value or condition. 2. A mental mistake made by a programmer that may result in a program {fault}. 3. (verb) What a program does when it stops as result of a programming error. (2000-03-28) error-based testing Testing where information about programming style, error-prone language constructs, and other programming knowledge is applied to select test data capable of detecting faults, either a specified class of faults or all possible faults. (1996-05-13) error correcting memory (ECM) {RAM} using some kind of {error detection and correction} (EDAC) scheme. The two types of memory errors in RAM (especially {DRAM}) are "soft" errors due to radiation-induced bit switching, and "hard" errors due to the unexpected deterioration of a memory chip. Soft errors do not indicate lasting damage to the memory board, but they do corrupt programs or data. Hard errors demand physical repairs. Single bit memory failures are the most common. A hard single bit failure, such as that caused by a completely dead chip can be corrected by EDAC if each chip supplies only one bit of each word. EDAC memory is the most common level of protection for {minicomputer}s and {mainframe}s whereas the cheaper parity protection is more common in {microcomputer}s. [Clearpoint, "The Designer's Guide to Add-In Memory", Third Addition]. (1995-10-10) error detection and correction (EDAC, or "error checking and correction", ECC) A collection of methods to detect errors in transmitted or stored data and to correct them. This is done in many ways, all of them involving some form of coding. The simplest form of error detection is a single added {parity bit} or a {cyclic redundancy check}. Multiple parity bits can not only detect that an error has occurred, but also which bits have been inverted, and should therefore be re-inverted to restore the original data. The more extra bits are added, the greater the chance that multiple errors will be detectable and correctable. Several codes can perform Single Error Correction, Double Error Detection (SECDEC). One of the most commonly used is the {Hamming code}. At the other technological extreme, cuniform texts from about 1500 B.C. which recorded the dates when Venus was visible, were examined on the basis of contained redundancies (the dates of appearance and disappearance were suplemented by the length of time of visibility) and "the worst data set ever seen" by [Huber, Zurich] was corrected. {RAM} which includes EDAC circuits is known as {error correcting memory} (ECM). [Wakerly, "Error Detecting Codes", North Holland 1978]. [Hamming, "Coding and Information Theory", 2nd Ed, Prentice Hall 1986]. (1995-03-14) es 1. The {country code} for Spain. 2. {Extensible Shell}. 3. (Expert System) An {expert system} for the {IBM PC} featuring {forward chaining}, {backward chaining} and {fuzzy set} relations. {(ftp://ftp.uu.net/pub/ai/expert-sys/summers.tar.Z)} [BYTE Oct 1990]. (1999-02-01) ES-1 An early text editing {interpreter}. [Sammet 1969, p. 684]. (1999-02-01) ESA 1. {Enterprise Systems Architecture}. 2. European Space Agency. (1999-10-31) ESC {escape} ESCAPE An early system on the {IBM 650}. [Listed in CACM 2(5):16 (May 1959)]. (1995-01-05) escape (ESC) {ASCII} character 27. When sent by the user, escape is often used to abort execution or data entry. When sent by the computer it often starts an {escape sequence}. (1997-11-27) escape sequence (Or "escape code") A series of characters starting with the {escape} character (ASCII 27). Escape sequences are often used to control display devices such as {VDU}s. An escape sequence might change the colour of subsequent text, reassign keys on the keyboard, change printer settings or reposition the cursor. The escape sequences of the {DEC} {vt100} {video terminal} have become a {de facto standard} for this purpose. The term is also used for any sequence of characters that temporarily suspends normal processing of a stream of characters to perform some special function. For example, the {Hayes} {modem} uses the sequence "+++" to escape to command mode in which characters are interpreted as commands to the modem itself rather than as data to pass through. [Was the character named after this use or vice versa?] (1997-11-27) ESCD {Extended System Configuration Data} ESCON {Enterprise Systems CONnectivity} escrow An arrangement where something (generally money or documents) is held in trust ("in escrow") by a trusted third party until certain agreed conditions are met. In computing the term is used for {key escrow} and also for {source code escrow}. (1999-12-14) ESD {Electrostatic Discharge} ESDI {Enhanced Small Disk Interface} ESF Eureka Software Factory. ESI 1. {European Software Institute}. 2. A dialect of {JOSS}. [Sammet 1969, p. 217]. esim A language for {simulation} of {VLSI} at the {switch level}. The {primitive}s are nodes and {transistor}s. [C.M. Baker et al, "Tools for Verifying Integrated CIrcuit Design", Lambda 1(3):22-30 (1980)]. (1994-10-20) ESL {Expert Systems} Ltd. ESLPDPRO {ESL} public domain version of Edinburgh {Prolog} for {MS-DOS}. The code is totally compatible with C-Prolog. {(ftp://aisun1.ai.uga.edu/ai.prolog/eslpdpro.zip)} ESML Extended Systems Modelling Language: a real-time software engineering methodology based on RTSA. ESMTP Extended {SMTP}. Initially defined in {RFC 1869} and extended thereafter. See also {ETRN}. (1997-11-21) ESP 1. Extra Simple Pascal. Subset of Pascal. 2. Econometric Software Package. Statistical analysis of time series. "Econometric Software Package, User's Manual", J.P. Cooper, Graduate School of Business, U Chicago. Sammet 1978. 3. {Extended Self-containing Prolog}. 4. An early {symbolic mathematics} system. [A. Rom, Celest Mech 3:331-345 (1971)]. (1994-12-08) ESPOL {Executive Systems Programming Oriented Language} ESPRIT {European Strategic Programme for Research in Information Technology} ESR {Eric S. Raymond} essential complexity A measure of the "structuredness" of a program. (1996-05-13) Estelle A {Pascal} extension for formal specification of computer {network} {protocol}s. Protocols are described by {modules} which are communicating {NFA}s. Modules are arranged in a dynamic hierarchy and communicate at named interaction points. {EstPC (ftp:osi.ncsl.nist.gov/pub/osikit/estpc)} Compiles Estelle into C. {petdingo} Translates Estelle into C++ Adopted by {ITU-T}. ISO 9074 (1989). ["The Formal Description Technique Estelle", M. Diaz et al eds, N-H 1989]. Esterel A distributed language for synchronous interaction of {real-time} systems with their environment. Uses explicit timing requests. Esterel programs are compiled into finite {automata}. ["The ESTEREL Programming Language and its Mathematical Semantics", G. Berry & L. Cosserat, TR 327, INRIA, 1984]. EstPC A {compiler} from {Estelle} to {C}. {(ftp:osi.ncsl.nist.gov/pub/osikit/estpc)} (1994-09-19) ET Bernd Gersdorf, U Bremen. An integration of functional and logic programming. et The {country code} for Ethiopia. (1999-01-27) ET++ A {Smalltalk}-like system for {Sun}s, built on {C++} by Weinand of UBILAB Zurich. Version 3.0-alpha includes {class} libraries and documentation. {(ftp://iamsun.unibe.ch/C++/ET++/et2.2.tar.Z)} E-mail: Erich Gamma . (1992-10-26) eta abstraction {eta conversion} eta conversion In {lambda-calculus}, the eta conversion rule states \ x . f x <--> f provided x does not occur as a {free variable} in f and f is a function. Left to right is eta reduction, right to left is eta abstraction (or eta expansion). This conversion is only valid if {bottom} and \ x . bottom are equivalent in all contexts. They are certainly equivalent when applied to some argument - they both fail to terminate. If we are allowed to force the evaluation of an expression in any other way, e.g. using {seq} in {Miranda} or returning a function as the overall result of a program, then bottom and \ x . bottom will not be equivalent. See also {observational equivalence}, {reduction}. eta expansion See {eta conversion}. eta reduction See {eta conversion}. ETB {End Transmission Block} ETC ExTendible Compiler. Fortran-like, macro extendible. "ETC - An Extendible Macro-Based Compiler", B.N. Dickman, Proc SJCC 38 (1971). e-text {electronic text} ETHER A {concurrent} {object-oriented} language? (1997-03-18) EtherGate Multi-protocol Ethernet gateway made by LRT. See Computer Systems, October 1985. Ethernet A {local area network} first described by Metcalfe & Boggs of {Xerox PARC} in 1976. Specified by {DEC}, {Intel} and {XEROX} (DIX) as {IEEE 802.3} and now recognised as the industry standard. Data is broken into {packets} which are transmitted using the {CSMA/CD} {algorithm} until they arrive at the destination without colliding with any other. The first {contention slot} after a transmission is reserved for an {acknowledge} packet. A {node} is either transmitting or receiving at any instant. The {bandwidth} is about 10 Mbit/s. Disk-Ethernet-Disk transfer rate with {TCP/IP} is typically 30 kilobyte per second. Version 2 specifies that {collision} detect of the transceiver must be activated during the {inter-packet gap} and that when transmission finishes the differential transmit lines are driven to 0V (half step). It also specifies some {network management} functions such as reporting {collisions}, retries and {deferrals}. Ethernet cables are classified as "XbaseY", e.g. 10base5, where X is the data rate in {Mbps}, "base" means "{baseband}" (as opposed to {radio frequency}) and Y is the category of cabling. The original cable was {10base5} ("full spec"), others are {10base2} ("thinnet") and {10baseT} ("twisted pair") which is now (1998) very common. {100baseT} ("{Fast Ethernet}") is also increasingly common. {Usenet} newsgroup: {news:comp.dcom.lans.ethernet}. {(http://wwwhost.ots.utexas.edu/ethernet/ethernet-home.html)} (1997-04-16) Ethernet address (Or "{MAC} address") The physical address identifying an individual {Ethernet controller} board. An Ethernet addess is a 48-bit number aabbccddeeff where a-f are {hexadecimal} digits. The first 24 bits, aabbcc, identify the manufacturer of the controller. The Ethernet address is hard-wired on some controllers, stored in a {ROM} on some, and others allow it to be changed from software. It is usually written as six hexadecimal numbers, e.g. 08:00:20:03:72:DC. See also {ARP}, {Internet address}. (1996-02-21) Ethernet meltdown A {network meltdown} on {Ethernet}. (1994-11-29) EtherTalk An {Apple Computer} {network} {standard} used to extend an {AppleTalk} network across an {Ethernet} network. Compare {LocalTalk}. (1994-11-29) ethics {computer ethics} ETM An {active DBMS} from the {University of Karlsruhe}. [Expansion? Features?] (1997-06-23) ETRN ("Extended {TURN}") An {ESMTP} command (first defined in {RFC 1985}) with which a {client} asks the {server} to deliver queued mail to the client via a new ESMTP connection. ETRN supercedes the {SMTP} "TURN" command in the same way that ESMTP's "{EHLO}" supercedes SMTP's "{HELO}". (1997-11-21) ETSI {European Telecommunications Standards Institute} ETX {End Of Text} Euclid (Named after the Greek geometer, fl ca 300 BC.) A {Pascal} descendant for development of verifiable system software. No {goto}, no {side effects}, no global assignments, no functional arguments, no nested procedures, no floats, no {enumeration types}. Pointers are treated as indices of special arrays called collections. To prevent {aliasing}, Euclid forbids any overlap in the list of actual parameters of a procedure. Each procedure gives an imports list, and the compiler determines the identifiers that are implicitly imported. Iterators. Ottawa Euclid is a variant. ["Report on the Programming Language Euclid", B.W. Lampson et al, SIGPLAN Notices 12(2):1-79, Feb 1977]. (1998-11-23) Euclidean Algorithm {Euclid's Algorithm} Euclid's Algorithm (Or "Euclidean Algorithm") An {algorithm} for finding the {greatest common divisor} (GCD) of two numbers. It relies on the identity gcd(a, b) = gcd(a-b, b) To find the GCD of two numbers by this algorithm, repeatedly replace the larger by subtracting the smaller from it until the two numbers are equal. E.g. 132, 168 -> 132, 36 -> 96, 36 -> 60, 36 -> 24, 36 -> 24, 12 -> 12, 12 so the GCD of 132 and 168 is 12. This algorithm requires only subtraction and comparison operations but can take a number of steps proportional to the difference between the initial numbers (e.g. gcd(1, 1001) will take 1000 steps). (1997-06-30) Eudora {Electronic mail} software for communicating over {TCP/IP} from {Macintosh}, {Microsoft Windows}, {Windows NT}, and {IBM} {OS/2} computers. Both commercial and free versions are produced by {QUALCOMM, Inc.} EULA {end-user license agreement} EULER [Named after the Swiss mathematician Leonhard Euler (1707-1783)] A revision of {ALGOL} by {Niklaus Wirth}. A small predecessor of {Pascal}. ["EULER: A Generalisation of ALGOL and Its Formal Definition", N. Wirth, CACM 9(1) (Jan 1966) and 9(2) (Feb 1966)]. EuLisp 1985-present. A {Lisp} dialect intended to be a common European {standard}, with influences from {Common LISP}, {Le LISP}, {Scheme} and {T}. {First-class function}s, {class}es and {continuation}s, both {static scope} and {dynamic scope}, {modules}, support for {parallelism}. The class system ({TELOS}) incorporates ideas from {CLOS}, {ObjVLisp} and {Oaklisp}. See also {Feel}. E-mail: . EUnet Ltd. EUnet Ltd. is jointly owned by the EUnet national service providers and {EurOpen}, the European Forum for Open Systems. EUnet services include {electronic mail} ({Internet}-style {RFC 822} as well as {X.400}), {InterEUnet} ({Internet Protocol}) connectivity and services such as {remote login} and {file transfer} over {leased line}s, {dial-up line}s, {X.25} and {Integrated Services Digital Network}. EUnet is the primary European region provider of {network news} and the top-level European distributor of {Internet Talk Radio}. EUnet operates its own infrastructure across Europe and is the largest European component of the {Internet}. EUnet is a member of {Commercial Internet Exchange} and {Ebone93}, a research network consortium. E-mail: . {(http://www.eu.net/)}. Euphoria End User Programming with Hierarchical Objects for Robust Interpreted Applications. Interpreted language with dynamic storage and dynamic typing. Rapid Deployment Software. E-mail: . Eureka A European technological development programme. Eureka step In {program transformation}, a transformation which is not obvious or easy to define as an {algorithm}. (1994-12-08) Eurisko A language for "{opportunistic programming}" written by {Doug Lenat} in 1978. Eurisko constructs its own methods and modifies its strategies as it tries to solve a problem. {(http://homepages.enterprise.net/hibou/aicourse/lenat.txt)}. [Mentioned by Alan Kay, SIGPLAN Notices 28(3), March 1993, p. 88]. (1994-12-08) Eurocard A range of standard circuit board sizes. Normal double Eurocard = 233.4 x 160 mm Extended double Eurocard = 233.4 x 220 mm Super extended double Eurocard = 233.4 x 250 mm Hyper extended double Eurocard = 233.4 x 280 mm Euro-ISDN European Integrated Services Digital Network. An {ETSI} standard for {Integrated Services Digital Network} being phased in in March 1994. Euro-ISDN will allow full transparent interworking between all European countries (members of the {CEPT}). It is available on a commercial basis in most European countries. (1994-12-08) EuroNet An {IAP} from Amsterdam, The Netherlands operating since 1994-08-01 and owned by {France Telecom} since 1998-11-06. {Home (http://www.euronet.nl/)}. E-mail: . Telephone: +31 (020) 535 5555. Fax: +31 (020) 535 5400. Address: Herengracht 208-214, 1016 BS Amsterdam, The Netherlands. (1999-01-17) EuropaNET A combination of pan-European backbone services run by DANTE. European Academic and Research Network (EARN) A self-managing network in the research community originally sponsored by {IBM}. It uses {BITNET} {protocols} and connects to BITNET in the USA. (1995-11-15) European Computer-Industry Research Centre GmbH (ECRC) A joint research organisation founded in 1984 on the initiative of three major European manufacturers: {Bull} (France), {ICL} (UK) and {Siemens} (Germany). Its activities were intended to enhance the future competitive ability of the European {Information Technology} industry and thus complement the work of national and international bodies. The Centre is intended to be the breeding ground for those ideas, techniques and products which are essential for the future use of electronic information processing. The work of the Centre will focus on advanced information processing technology for the next generation of computers. ECRC is an independent company, owned equally by its shareholders. The formal interface between ECRC and its shareholders consists of two bodies: The Shareholders' Council, which approves the Centre's programmes and budgets and supervises their execution and the Scientific Advisory Board, which advises the Shareholders' Council in determining future research directions. There are many collaborations between ECRC and its shareholders' companies on specific projects (Technology Transfer, prospective studies etc). The Centre is staffed by highly qualified scientists drawn from different countries. Research staff are hired directly by ECRC, as well as some who come on assignment from the member companies, and others seconded from public research agencies and universities. Seminars are held which bring together specialists from the Centre and the member companies. ECRC's mission is to pursue research in fundamental areas of computer science. The aim is to develop the theory, methodologies and tools needed to build innovative computer applications. ECRC contributes actively to the international effort that is expanding the frontiers of knowledge in computer science. It plays an important role in bridging the gap between research and industry by striving to work at the highest academic level with a strong industrial focus. ECRC constitutes an opportunity in Europe for the best scientists and offers young researchers the possibility to mature in an environment which exposes them to both fundamental research and the process of delivering the results to industry. ECRC plays an important role in Europe and is involved in several European Community initiatives. It is regularly consulted by the Commission of the European Communities on strategic issues, such as the definition of future research plans, international co-operation and relationships between academia and industry. Address: ECRC GmbH, Arabellastrasse 17, D-81925 Munich, Germany. {(http://www.ecrc.de/)} Telephone: +49 (89) 926 99 0. Fax: +49 (89) 926 99 170. (1994-12-01) European Strategic Programme for Research in Information Technology (ESPRIT) A funding programme to develop Information Technology in the European Economic Communities. Superseded by {Framework 4}. (1996-05-13) European Telecommunications Standards Institute (ETSI) A European version of the {ITU-T}(?). (1996-05-13) EUUG {European Unix User Group} EV6 (Alpha EV6) {Compaq}'s {bus protocol} for {Slot A} {motherboards}. The Alpha EV6 bus protocol is capable of bus speeds from 40 to 400 MHz and uses a {point-to-point} {topology} with {clock forwarding}. (1999-08-05) Eva 1. A toy ALGOL-like language used in "Formal Specification of Programming Languages: A Panoramic Primer", F.G. Pagan, P-H 1981. 2. Explicit Vector Language. EVALUATE The {COBOL85} {keyword} for a {switch statement}. (1997-06-10) evaluation 1. Converting an expression into a value using some {reduction strategy}. 2. The process of examining a system or system component to determine the extent to which specified properties are present. (1996-05-13) evaluation strategy {reduction strategy} evaluator Geoff Burn defines evaluators E0, E1, E2 and E3 which when applied to an expression, reduce it to varying degrees. E0 does no evaluation, E1 it evaluates to {weak head normal form} (WHNF), E2 evaluates the structure of a list, i.e. it evaluates it either to NIL or evaluates it to a CONS and then applies E2 to the second argument of the CONS. E3 evaluates the structure of a list and evaluates each element of the list to {WHNF}. This concept can be extended to data structures other than lists and forms the basis of the {evaluation transformer} style of {strictness analysis}. (1994-12-12) EVE {Extensible VAX Editor} event 1. An occurrence or happening of significance to a task or program, such as the completion of an asynchronous input/output operation. A task may wait for an event or any of a set of events or it may (request to) receive asynchronous notification (a {signal} or {interrupt}) that the event has occurred. See also {event-driven}. 2. A transaction or other activity that affects the records in a file. (2000-02-09) event-driven A kind of program, such as a {graphical user interface}, with a main loop which just waits for {events} to occur. Each event has an associated handler which is passed the details of the event, e.g. mouse button 3 pressed at position (355, 990). For example, {X window system} and most {Visual Basic} {application programs} are event-driven. See also {callback}. (2000-02-09) EVGA {Extended Video Graphics Array} evil As used by a {hacker}, implies that some system, program, person, or institution is sufficiently maldesigned as to be not worth the bother of dealing with. Unlike the adjectives in the cretinous, {losing}, {brain-damaged} series, "evil" does not imply incompetence or bad design, but rather a set of goals or design criteria fatally incompatible with the speaker's. This usage is more an aesthetic and engineering judgment than a moral one in the mainstream sense. "We thought about adding a {Blue Glue} interface but decided it was too evil to deal with." "{TECO} is neat, but it can be pretty evil if you're prone to typos." Often pronounced with the first syllable lengthened, as /eeee'vil/. Compare {evil and rude}. [{Jargon File}] (1994-12-12) evil and rude Both {evil} and {rude}, but with the additional connotation that the rudeness was due to malice rather than incompetence. Thus, for example: {Microsoft}'s {Windows NT} is evil because it's a competent implementation of a bad design; it's rude because it's gratuitously incompatible with {Unix} in places where compatibility would have been as easy and effective to do; but it's evil and rude because the incompatibilities are apparently there not to fix design bugs in {Unix} but rather to lock hapless customers and developers into the {Microsoft} way. Hackish evil and rude is close to the mainstream sense of "evil". [{Jargon File}] (1994-12-12) evolutionary algorithm (EA) An {algorithm} which incorporates aspects of natural selection or survival of the fittest. An evolutionary algorithm maintains a population of structures (usually randomly generated initially), that evolves according to rules of selection, recombination, mutation and survival, referred to as genetic operators. A shared "environment" determines the fitness or performance of each individual in the population. The fittest individuals are more likely to be selected for reproduction (retention or duplication), while recombination and mutation modify those individuals, yielding potentially superior ones. EAs are one kind of {evolutionary computation} and differ from {genetic algorithm}s. A GA generates each individual from some encoded form known as a "chromosome" and it is these which are combined or mutated to breed new individuals. EAs are useful for optimisation when other techniques such as {gradient descent} or direct, analytical discovery are not possible. Combinatoric and real-valued function optimisation in which the optimisation surface or fitness landscape is "rugged", possessing many {locally optimal} solutions, are well suited for evolutionary algorithms. (1995-02-03) evolutionary computation Computer-based problem solving systems that use computational models of evolutionary processes as the key elements in design and implementation. A number of evolutionary computational models have been proposed, including {evolutionary algorithm}s, {genetic algorithm}s, the {evolution strategy}, {evolutionary programming}, and {artificial life}. {The Hitchhiker's Guide to Evolutionary Computation (http://www.cis.ohio-state.edu/hypertext/faq/bngusenet/comp/ai/genetic/top.html)}. {Bibliography (http://liinwww.ira.uka.de/bibliography/Ai/EC-ref.html)}. {Usenet} newsgroup: {news:comp.ai.genetic}. (1995-03-02) evolutionary programming (EP) A {stochastic} optimisation strategy originally conceived by Lawrence J. Fogel in 1960. An initially random population of individuals (trial solutions) is created. Mutations are then applied to each individual to create new individuals. Mutations vary in the severity of their effect on the behaviour of the individual. The new individuals are then compared in a "tournament" to select which should survive to form the new population. EP is similar to a {genetic algorithm}, but models only the behavioural linkage between parents and their offspring, rather than seeking to emulate specific genetic operators from nature such as the encoding of behaviour in a genome and recombination by genetic crossover. EP is also similar to an {evolution strategy} (ES) although the two approaches developed independently. In EP, selection is by comparison with a randomly chosen set of other individuals whereas ES typically uses {deterministic} selection in which the worst individuals are purged from the population. (1995-02-03) evolution strategy (ES) A kind of {evolutionary algorithm} where individuals (potential solutions) are encoded by a set of real-valued "object variables" (the individual's "genome"). For each object variable an individual also has a "strategy variable" which determines the degree of mutation to be applied to the corresponding object variable. The strategy variables also mutate, allowing the rate of mutation of the object variables to vary. An ES is characterised by the population size, the number of offspring produced in each generation and whether the new population is selected from parents and offspring or only from the offspring. ES were invented in 1963 by Ingo Rechenberg, Hans-Paul Schwefel at the {Technical University of Berlin} (TUB) while searching for the optimal shapes of bodies in a flow. (1995-02-03) EWOS {European Workshop for Open Systems} exa- {prefix} Exabyte A company and, by extension, a tape format for computer data backup and transfer. The tape is a data quality 8mm video cassette recorder tape. Exabyte units can store between five and fourteen {gigabyte}s of data per tape. Exabytes are usually attached to {Unix} {workstation}s. [What different tape capacities exist? Compare with DAT?] (1995-07-06) exabyte 2^60 = 1,152,921,504,606,846,976 {bytes} = 1024 {petabytes} or roughly 10^18 bytes. See {prefix}. (1996-08-12) examining the entrails The process of {grovel}ling through a {core dump} or {hex} image in an attempt to discover the bug that brought a program or system down. The reference is to divination from the entrails of a sacrified animal. Compare {runes}, {incantation}, {black art}, {desk check}. [{Jargon File}] (1994-12-12) EXAPT EXtended {APT}. Exceed A tool to display remote {X Window System} applications on {Microsoft Windows}. Exceed is not an X server. (2001-04-29) Excel {Microsoft Excel} Excelan Manufacturers of intelligent {Ethernet} cards. Software and addresses are down-loadable. The cards have their own {RAM} for buffers. Excelerator A set of {CASE} tools from {Index Technology Corporation}. exception An error condition that changes the normal {flow of control} in a program. An exception may be generated ("raised") by {hardware} or {software}. Hardware exceptions include {reset}, {interrupt} or a signal from a {memory management unit}. Exceptions may be generated by the {arithmetic logic unit} or {floating-point unit} for numerical errors such as divide by zero, {overflow} or {underflow} or {instruction decoding} errors such as privileged, reserved, {trap} or undefined instructions. Software exceptions are even more varied and the term could be applied to any kind of error checking which alters the normal behaviour of the program. (1994-10-31) exception handler Special code which is called when an {exception} occurs during the execution of a program. If the programmer does not provide a handler for a given exception, a built-in system exception handler will usually be called resulting in abortion of the program run and some kind of error indication being returned to the user. Examples of exception handler mechanisms are {Unix}'s signal calls and {Lisp}'s {catch} and {throw}. (1994-10-31) EXCH /eks'ch*/ or /eksch/ To exchange two things, each for the other; to swap places. If you point to two people sitting down and say "Exch!", you are asking them to trade places. EXCH, meaning EXCHange, was originally the name of a {PDP-10} instruction that exchanged the contents of a {register} and a memory location. Many newer hackers are probably thinking instead of the {PostScript} exchange operator (which is usually written in lowercase). [{Jargon File}] (1999-09-17) Exchange Server {Microsoft Exchange} excl {exclamation mark} exclamation mark The character "!" with {ASCII} code 33. Common names: {bang}; pling; excl (/eks'kl/); shriek; {ITU-T}: exclamation mark. Rare: {factorial}; exclam; smash; cuss; boing; yell; wow; hey; wham; eureka; soldier; {INTERCAL}: spark-spot. The {Commonwealth Hackish}, "pling", is common among {Acorn Archimedes} owners. {Bang} is more common in the USA. The occasional {CMU} usage, "shriek", is also used by {APL} fans and mathematicians, especially {category} theorists. Exclamation mark is used in {C} and elsewhere as the logical negation {operation} ({NOT}). (1998-09-17) EXE /eks'ee/ or /eek'see/ or /E-X-E/ An executable binary file. Some operating systems (notably {MS-DOS}, VMS, and TWENEX) use the extension .EXE to mark such files. This usage is also occasionally found among Unix programmers even though Unix executables don't have any required suffix. [{Jargon File}] EXEC An early {batch} language for the {IBM} {VM/CMS} systems. [SC19-6209 Virtual Machine/ System Product CMS Command and Macro Reference, Appendix F. CMS EXEC Control Statements]. [Was {EXEC 2} was a later version?] (2000-08-06) exec /eg-zek'/ 1. execute. A synonym for {chain} derived from the {Unix} "exec" {system call}. {Unix manual page}: execve(2). 2. (Obsolete) {executive}. The mainstream "exec" as an abbreviation for (human) executive is *not* used. To a hacker, an "exec" is a always a program, never a person. 3. At {IBM} and {VM}/{CMS} shops, the equivalent of a {shell} command file. 4. The innermost {kernel} of the {Amiga} {operating system} which provides shared-library support, device interface, {memory management}, {CPU} management, basic {IPC}, and the basic structures for OS extension. The rest of the Amiga OS (windowing, file system, third-party extensions, etc.) is built using these structures. [{Jargon File}] (1997-08-01) EXEC 2 1. A {scripting language} produced by {IBM} in the late 1970s. Superseded by {REXX}. [SC24-5219, "Virtual Machine/System Product EXEC 2 Reference"]. [Successor to {EXEC 1}? With or without a space?] 2. An archaic {operating system} from {UNIVAC}. By about 1980 it had been replaced by {EXEC 8}. [Dates? Did EXEC 3 to EXEC 7 exist?] (2000-08-06) EXEC 8 {Unisys}'s {operating system} from about 1980 to 2000, by which time it was a dying breed with Unisys moving to {Windows NT} and {Unix}. [Was 8 the successor to {EXEC 2}?] (2000-08-06) executable A {binary} file containing a program in {machine language} which is ready to be {execute}d (run). The term might also be, but generally isn't, applied to {scripts} which are interpreted by a {command line interpreter}. Executables are distinguished in {Unix} by having the execute permission bits set, at least for the owner. {MS-DOS} uses the {filename extension} ".exe". (1997-06-21) executable content Executable programs sent by one computer to another via a network. For example a {Java} {applet} is executable content. Usage: rare. (1998-03-23) execute {execution} execution The process of carrying out the {instructions} in a computer program by a computer. See also {dry run}. (1996-05-13) executive The {command interpreter} or {shell} for an {operating system}. The term is used especially around {mainframes} and probably derived from {UNIVAC}'s archaic {EXEC 2} and current (in 2000) {EXEC 8} {operating systems}. (2000-08-06) Executive Systems Programming Oriented Language An {ALGOL} superset with high level instructions for low level actions, e.g. interrupting another processor on a multiprocessor system. Its single pass compiler was very fast: over 250 lines/s on a 10MHz processor. ESPOL was used to write the MCP (Master Control Program) on the {Burroughs 6700}. It was superseded by {NEWP}. ["The B6700 ESPOL Reference Manual", Burroughs, 1970]. (2001-06-14) exercise, left as an Used to complete a proof in technical books when one doesn't mind a {handwave}, or to avoid one entirely. The complete phrase is: "The proof [or "the rest"] is left as an exercise for the reader." This comment *has* occasionally been attached to unsolved research problems by authors possessed of either an evil sense of humour or a vast faith in the capabilities of their audiences. [{Jargon File}] (1995-02-20) exhaustive testing Executing a program with all possible combinations of inputs or values for program variables. (1996-05-13) existential quantifier {quantifier} EXODUS An extensible {database} project developed at the University of Wisconsin. (1996-05-13) eXodus A package from White Pines allowing the Macintosh to be used as an X server. EXOS A brand of {Ethernet controller} card and Ethernet software for {Unix}. (1995-01-12) expanded memory Memory used through {EMS}. In systems based on {Intel 80386} or later processor expanded memory is part of the {extended memory} that is mapped into the {expanded memory page frame} by the processor. The mapping is controlled by the {EMM}. In earlier systems, a dedicated {EMS} hardware adaptor is needed to map memory into the page frame. In both cases, an appropriate {device driver} is needed for the proper communication between hardware and {EMM}. (1996-01-10) expanded memory manager (EMM) {IBM PC} memory manager software implementing {Expanded Memory Specification}, such as {EMM386} or {QEMM386}. EMMs can usually provide {UMB} as well. (1996-01-10) expanded memory page frame The part of the {IBM PC} {reserved memory} address space used by {EMS}. (1996-01-10) Expanded Memory Specification (EMS) An {IBM PC} memory {paging} scheme enabling access to memory other than {conventional memory} in {real mode}. {Expanded memory} is provided through a {page frame} of at least 64 {kilobytes} in the {reserved memory} address region. Access to this memory is provided by an {expanded memory manager} (EMM) software. The EMM functions are accessible through {interrupt} 67H. In {8086} or {8088} based systems this is the only way to use memory beyond conventional memory. In systems based on {80286} or later, {XMS} and {HMA} provide alternative methods. EMS was developed jointly by {Lotus}, {Intel}, and {Microsoft} prior to 1988. Accordingly, this specification is sometimes referred to as LIM EMS. A complete discussion of EMS and programming examples can be found in ["PC System Programming for developers", 1989, ISBN 1-55755-035-2 (Book only) and ISBN 1-55755-036-0 (Book and diskette)]. {LIM EMS 4.0 spec (ftp://ftp.intel.com/pub/PCandNetworkSupport/FAQs-Self-Help_Docs/SPEC.EMS)}. {EEMS}, a competing expanded memory management standard, was developed by {AST Research}, {Quadram} and {Ashton-Tate}. See also {upper memory block}. (1996-01-10) expansion card A circuit board which can be plugged into one of a computer's {expansion slots} to provide some optional extra facility such as additional {RAM}, {disk controller}, {coprocessor}, {graphics accelerator}, communication device or some special-purpose interface. Different computers have different standards for the cards they accept, e.g. {PCI}. (1998-06-26) expansion slot A connector in a computer into which an {expansion card} can be plugged. The connector supplies power to the card and connects it to the {data bus}, {address bus} and control signals of the {motherboard}. (1998-06-26) expect A {Unix} tool written in {Tcl} and a {script language} for automating the operation of {interactive} applications such as {telnet}, {FTP}, {passwd}, {fsck}, {rlogin}, {tip}, etc.. Expect can feed input to other programs and perform {pattern matching} on their output. It is also useful for testing these applications. By adding {Tk}, you can also wrap interactive applications in {X11} {GUI}s. {Home (http://expect.nist.gov/)}. ["expect: Scripts for Controlling Interactive Tasks", Don Libes, Comp Sys 4(2), U Cal Press Journals, Nov 1991]. (1997-06-09) eXperimental LISP (xlisp) An experimental programming language combining a subset of {Common Lisp} with an {object-oriented} extension capability (Class and Object types). It was implemented by David Micheal Betz at Apple to allow experimentation with {object-oriented programming} on small computers. The {C} {source code} has been ported to {Unix}, {Microsoft Windows}, {Macintosh}, {Amiga}, {Atari}, and {MS-DOS}. Version 2.1 of the {interpreter}, by Tom Almy is closer to Common Lisp. Latest version: 2.1, as of 1992-05-26. {(ftp://wasp.eng.ufl.edu/)}, {(ftp://cs.orst.edu/)}, {(ftp://glia.biostr.washington.edu/)}. E-mail: Tom Almy . {Microsoft Windows version (ftp://ftp.cica.indiana.edu/util/wxlslib.zip)}. {Macintosh version (ftp://netcom.com/pub/bskendig/)}. {Usenet} newsgroup: {news:comp.lang.lisp.x}. (2000-08-14) Experimental Physics Control Systems (EPCS) A group of the European Physical Society, focussing on all aspects of controls, especially {informatics}, in experimental physics, including accelerators and experiments. (1994-12-12) Experimental Programming Language (EPL) A language by David May which influenced {occam}. ["EPL: An Experimental Language for Distributed Computing", D.C. May, in Trends and Applications 1978: Distributed Processing, NBS, pp.69-71]. (1994-11-18) Expert Judgement Models A method of software estimation that is based on consultation with one or more experts that have experience with similar projects. An expert-consensus mechanism such as the {Delphi Technique} may be used to produce the estimate. (1996-05-29) expert system A computer program that contains a {knowledge base} and a set of {algorithms} or rules that infer new facts from knowledge and from incoming data. An expert system is an {artificial intelligence} application that uses a knowledge base of human expertise to aid in solving problems. The degree of problem solving is based on the quality of the data and rules obtained from the human expert. Expert systems are designed to perform at a human expert level. In practice, they will perform both well below and well above that of an individual expert. The expert system derives its answers by running the knowledge base through an {inference engine}, a software program that interacts with the user and processes the results from the rules and data in the knowledge base. Expert systems are used in applications such as medical diagnosis, equipment repair, investment analysis, financial, estate and insurance planning, route scheduling for delivery vehicles, contract bidding, counseling for self-service customers, production control and training. [Difference from "{knowledge-based system}"?] (1996-05-29) Expert Systems Ltd. (ESL) Distributors of {ESLPDPRO}. Adderss: Magdalen Centre, Oxford Science Park, Oxford, OX4 4GA. Telephone +44 (865) 784474. (1996-05-29) explicit parallelism A feature of a programming language for a {parallel processing} system which allows or forces the programmer to annotate his program to indicate which parts should be executed as independent parallel tasks. This is obviously more work for the programmer than a system with {implicit parallelism} (where the system decides automatically which parts to run in parallel) but may allow higher performance. explicit type conversion (Or "cast" in {C} and elsewhere). A programming construct ({syntax}) to specify that an expression's value should be converted to a different type. For example, in {C}, to convert an {integer} (usually 32 bits) to a {char} (usually 8 bits) we might write: int i = 42; char *p = &buf; *p = (char) i; The expression "(char)" (called a "cast") converts i's value to char type. Casts (including this one) are often not strictly necessary, due to automatic {coercions} performed by the compiler, but can be used to make the conversion obvious and to avoid warning messages. (1999-09-19) exploit A security hole or an instance of taking advantage of a security hole. "[...] {hackers} say exploit. {sysadmin}s say hole" -- {Mike Emke (http://emke.com/)} Emke reports that the stress is on the second syllable. If this is true, this may be a case of of hackerly zero-deriving verbs (especially instatials) from nouns, akin to "write" as a noun to describe an instance of a disk drive writing to a disk. (1997-01-31) Exploratory Data Analysis (EDA) [J.W.Tukey, "Exploratory Data Analysis", 1977, Addisson Wesley]. exponent (Or "characteristic") The part of a {floating-point} number specifying the power of ten by which the {mantissa} should be multiplied. In the common notation, e.g. 3.1E8, the exponent is 8. (1995-02-27) exponential 1. A function which raises some given constant (the "base") to the power of its argument. I.e. f x = b^x If no base is specified, {e}, the base of {natural logarthim}s, is assumed. 2. {exponential-time algorithm}. (1995-04-27) exponential-time The set or property of problems which can be solved by an {exponential-time algorithm} but for which no {polynomial-time algorithm} is known. (1995-04-27) exponential-time algorithm An {algorithm} (or {Turing Machine}) that is guaranteed to terminate within a number of steps which is a {exponential} function of the size of the problem. For example, if you have to check every number of n digits to find a solution, the {complexity} is O(10^n), and if you add an extra digit, you must check ten times as many numbers. Even if such an algorithm is practical for some given value of n, it is likely to become impractical for larger values. This is in contrast to a {polynomial-time algorithm} which grows more slowly. See also {computational complexity}, {polynomial-time}, {NP-complete}. (1995-04-27) Express 1. A language supporting {concurrency} through {message passing} to named message queues from {ParaSoft} Corporation {(ftp://ftp.parasoft.com/express/docs)} 2. Data definition language, meant to become an ISO standard for product data representation and exchange. TC 184/SC4 N83, ISO, 1991-05-31. E-mail: . 3. A data modelling language adopted by the {ISO} working group on {STEP}. expression Any piece of program code in a {high-level language} which, when (if) its execution terminates, returns a value. In most programming languages, expressions consist of constants, variables, operators, functions, and {parentheses}. The operators and functions may be built-in or user defined. Languages differ on how expressions of different {types} may be combined - with some combination of explicit {casts} and implicit {coercions}. The {syntax} of expressions generally follows conventional mathematical notation, though some languages such as {Lisp} or {Forth} have their own idiosyncratic syntax. (2001-05-14) expression tree The {syntax tree} of an {expression}. (1998-11-14) extend To add {features} to a program, especially through the use of {hooks}. "Extend" is very often used in the phrase "extend the {functionality} of a program." {Plug-ins} are one form of extension. (1997-06-21) Extended Affix Grammar (EAG) A formalism developed by Marc Seutter for describing both the {context free syntax} and the {context sensitive syntax} of languages. EAG is a member of the family of two-level grammars. They are very closely related to two-level {van Wijngaarden grammars}. The EAG compiler will generate either a {recogniser}, a {transducer}, a {translator}, or a {syntax directed editor} for a language described in the EAG formalism. {FTP KUN (ftp://hades.cs.kun.nl/pub/eag/)} (1996-05-29) Extended ALGOL An extension of {ALGOL 60}, used to write the {ESPOL} compiler on the {Burroughs B5500}, {Burroughs B6500}, and {Burroughs B6700}. ["Burroughs B6700 Extended ALGOL Language Information Manual", No. 5000128 (Jul 1971)]. [Sammet 1969, p. 196]. (1995-05-09) Extended Architecture (XA) A {CD-ROM} drive specification required by {Green Book CD-ROM} and {White Book CD-ROM} formats. Drives labelled "XA ready" may require a {firmware} upgrade. (1994-11-02) Extended Backus-Naur Form Any variation on the basic {Backus-Naur Form} (BNF) {meta-syntax} notation with (some of) the following additional constructs: {square bracket}s "[..]" surrounding optional items, suffix "*" for {Kleene closure} (a sequence of zero or more of an item), suffix "+" for one or more of an item, {curly bracket}s enclosing a list of alternatives, and super/subscripts indicating between n and m occurrences. All these constructs can be expressed in plain BNF using extra {production}s and have been added for readability and succinctness. (1995-04-28) Extended Binary Coded Decimal Interchange Code /eb's*-dik/, /eb'see`dik/, /eb'k*-dik/, /ee`bik'dik`/, /*-bik'dik`/ (EBCDIC) A {character set} used on {IBM} {dinosaurs} and the {AS/400} and {e-Server}. It exists in at least six mutually incompatible versions, all featuring such delights as non-contiguous letter sequences and the absence of serveral punctuation characters fairly important for modern computer languages. IBM adapted EBCDIC from {punched card} code early in the 1960s and promulgated it as a customer control tactic (see {connector conspiracy}). In one variant each character is represented by 5 bits and one code (11111?) switches between character sets. US EBCDIC used more or less the same characters as {ASCII}, but used different {code points}. Some ASCII characters did not exist in EBCDIC (e.g. {square brackets}) and EBCDIC had some ({cent sign}, {not sign}) that were not in ASCII. As a consequence, the translation between ASCII and EBCDIC was strictly speaking undefined, and IBM never officially defined a complete one. Users defined one translation which resulted in a so-called de-facto EBCDIC containing all the characters of ASCII, that all ASCII-related programs use. Some printers, telex machines, and even electronic cash registers can speak EBCDIC, but only so they can converse with IBM mainframes. For an in-depth discussion of character code sets, and full translation tables, see {Guidelines on 8-bit character codes (ftp://ftp.ulg.ac.be/pub/docs/iso8859/iso8859.networking)}. Here is a simple translation table: Least significant nibble -> 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 ... controls ... 1 2 3 ... controls ... 4 â ä à á ã å ç ñ ¢ . < ( + | 5 & é ê ë è í î ï ì ß ! $ * ) ; ^ 6 - / Â Ä À Á Ã Å Ç Ñ ¦ , % _ > ? 7 ø É Ê Ë È Í Î Ï Ì ` : # @ ' = " 8 Ø a b c d e f g h i « » ð ý þ ± 9 ° j k l m n o p q r ª º æ ¸ Æ ¤ A µ ~ s t u v w x y z ¡ ¿ Ð [ Þ ® B ¬ £ ¥ · © § ¶ ¼ ½ ¾ Ý ¨ ¯ ] ´ × C { A B C D E F G H I ­ ô ö ò ó õ D } J K L M N O P Q R ¹ û ü ù ú ÿ E \ ÷ S T U V W X Y Z ² Ô Ö Ò Ó Õ F 0 1 2 3 4 5 6 7 8 9 ³ Û Ü Ù Ú E.g. the EBCDIC code for "A" is {hexadecimal} "C1". (1999-07-06) Extended BNF {Extended Backus-Naur Form}. Extended C++ {EC++} extended by G. Masotti with preconditions, postconditions and {class invariants}, {parameterised classes}, {exception handling} and {garbage collection}. {EC++} translates Extended C++ into C++. (1989-10-10) Extended Capabilities Port (ECP) A {parallel printer interface} for {IBM PC} compatibles, supported by several, mainly US, manufacturers. Not to be confused with the more common {Enhanced Capabilities Port}. (1997-12-01) Extended Concurrent Prolog (ECP) {Concurrent Prolog} with {OR parallelism}, {set abstraction} and {meta-inference} features. ["AND-OR Queuing in Extended Concurrent Prolog", J. Tanaka et al, Proc Logic Prog Conf '85, LNCS 193, Springer 1985]. (1994-12-01) Extended Data Out Dynamic Random Access Memory (EDO DRAM, EDO RAM) A type of {DRAM} designed to access nearby memory locations faster than {FPM DRAM}. Extended Data Out DRAM (EDO-DRAM) allows the data outputs to be kept active after the CAS\ signal goes inactive, using an additional signal OE\ to control the data outputs. This can be used in {pipelined} systems for overlapping accesses where the next cycle is started before the data from the last cycle is removed from the bus. EDO DRAM is primarily used with {Intel}'s {Pentium} processors since with slower processors there is no significant performance gain. To make use of the advanced features of EDO an appropriate {chipset}, such as {Triton}, must be used. In early 1995, EDO DRAM was available for computers from {Micron}, {Gateway 2000}, and {Intel Corporation}; since then other manufactures followed suit. Note that in comparison to {Burst EDO} EDO is sometimes referred to as "Standard EDO". (1996-06-25) Extended Data Out Random Access Memory {Extended Data Out Dynamic Random Access Memory} Extended Fortran Language (EFL) A {Fortran} {preprocessor} to provide {structured programming} constructs much like {C}. EFL is a descendant of {RATFOR}. It is written in C. ["An Informal Description of EFL", S.I. Feldman]. eXtended Graphics Array (XGA) An {IBM} {display standard} introduced in 1990. XGA supports a {resolution} of 1024 x 768 {pixels} with a {palette} of 256 colours, or 640 x 480 with {high colour} (16 {bits per pixel}). XGA-2 added 1024 x 768 support for high colour and higher refresh rates, improved performance, and supports 1360 x 1024 in 16 colours. XGA is probably not the same as {8514-A}. See also {VESA}'s {EVGA} released at a similar time. (1999-08-01) Extended Industry-Standard Architecture (EISA) /eesa/ A {bus} standard for {IBM compatibles} that extends the {ISA} bus architecture to 32 bits and allows more than one {CPU} to share the bus. The {bus mastering} support is also enhanced to provide access to 4 GB of memory. Unlike {MCA}, EISA can accept older {XT bus architecture} and {ISA} boards. EISA was announced in late 1988 by compatible vendors as a counter to {IBM}'s MCA in its {PS/2} series. Although somewhat inferior to the MCA it became much more popular due to the proprietary nature of MCA. [Main sponsors? Open standard?] (1996-06-25) extended memory Memory above the first {megabyte} of {address space} in an {IBM PC} with an {80286} or later processor. Extended memory is not directly available in {real mode}, only through {EMS}, {UMB}, {XMS}, or {HMA}; only applications executing in {protected mode} can use extended memory directly. In this case, the extended memory is provided by a supervising {protected-mode} {operating system} such as {Microsoft Windows}. The processor makes this memory available through a system of {global descriptor tables} and {local descriptor tables}. The memory is "protected" in the sense that memory assigned a local descriptor cannot be accessed by another program without causing a hardware {trap}. This prevents programs running in protected mode from interfering with each other's memory. A {protected-mode} {operating system} such as Windows can also run {real-mode} programs and provide {expanded memory} to them. {DOS Protected Mode Interface} is {Microsoft}'s prescribed method for an {MS-DOS} program to access extended memory under a {multitasking} environment. Having extended memory does not necessarily mean that you have more than one megabyte of memory since the reserved memory area may be partially empty. In fact, if your 386 or higher uses extended memory as expanded memory then that part is not in excess of 1Mb. See also {conventional memory}. (1996-01-10) extended memory manager (XMM) The memory manager software implementing {Extended Memory Specification}, such as {HIMEM} or {QEMM386}. XMM's can usually also act as {A20 handlers}. (1996-01-10) Extended Memory Specification (XMS) The specification describing the use of {IBM PC} {extended memory} in {real mode} for storing data (but not executable code). Memory is made available by {extended memory manager} (XMM) software. The XMM functions are accessible through {interrupt} 2FH. (1996-01-10) Extended ML A language by Don Sannella of the {University of Edinburgh} combining {algebraic specification} and {functional programming}. ["Program Specification and Development in Standard ML", D. Sannella et al, 12th POPL, ACM 1985]. (1994-12-12) Extended Pascal A superset of {ANSI} and {ISO Pascal} with many enhancements, including {modules}, {separate compilation}, {type schema}ta, variable-length strings, direct-access files, complex numbers, initial values, constant expressions. ANSI/IEEE770X3.160-1989 and ISO 10206. (1994-12-12) Extended Self-containing Prolog (ESP) An {object-oriented} extension of {KL0} by Chikayama. ESP has {backtracking}-based control, {unification}-based parameter passing and {object-oriented} calling. An {object} in ESP is an {axiom} set. A {class} definition consists of nature definitions ({inheritance}), slot definitions ({class variables}) and {clause} definitions. ESP has {multiple inheritance} similar to {Flavors}. It has been implemented for {ICOT}'s {PSI} Sequential Inference machine. See also {CESP}. E-mail: . ["Unique Features of ESP", T. Chikayama, Proc Intl Conf 5th Gen Comp Sys, ICOT 1984]. (1994-12-08) Extended System Configuration Data (ESCD) An area of memory, not exceeding 32 kilobytes in size, used by {MS-DOS}(?) as {NVRAM} for {PNP BIOS} and {PNP OS}. It must be writeable at {run-time}. Intel's {ICU} also uses ESCD to store information for PNP {ISA} cards and {legacy} ISA cards. (1999-11-22) Extended Tiny A research/educational tool for experimenting with {array} data dependence tests and reordering transformations. It works with a language {tiny}, which does not have procedures, {goto}'s, pointers, or other features that complicate dependence testing. Michael Wolfe's original {tiny} has been extended substantially by William Pugh et al. at the {University of Maryland}. Version 3.0 (Dec 12th, 1992) includes a programming environment, dependence tester, tests translator ({Fortran}->tiny), documentation, and technical reports. It should run on any {Unix} system. {(ftp://cs.umd.edu/pub/omega)} E-mail: Omega test research group . (1992-12-12) Extended Video Graphics Array (EVGA) A {display standard} introduced by {VESA} in 1991. It offers a maximum {resolution} of 1024 x 768 {pixels} ({non-interlaced}) and a 70 Hz {refresh rate}. EVGA should not be confused with the older {EGA} (Enhanced Graphics Array) or {XGA} (eXtended Graphics Array). [Same as "{eXtended Video Graphics Array}" (XVGA)?] (1999-08-01) eXtended Video Graphics Array (XVGA) A {display standard} with a {resolution} of 1024 by 768 {pixels} of 256 colours. {IBM} call this mode "{8514}". [Same as "{Extended Video Graphics Array}" (EVGA)?] (1997-12-11) extensible Said of a system (e.g., {program}, {file format}, {programming language}, {protocol}, etc.) designed to easily allow the addition of new {features} at a later date, e.g. through the use of {hooks}, an {API} or {plug-ins}. See also {extend}, {forward compatible}. (1998-01-15) extensible database A {DBMS} that allows access to data from remote sources as if the remote data were part of the {database}. [Example?] (1997-11-20) Extensible Markup Language (XML) An initiative from the {W3C} defining an "extremely simple" dialect of {SGML} suitable for use on the {World-Wide Web}. {(http://www.w3.org/XML/)}. [Relationship to the {XSL} forthcoming subset of {DSSSL}?] (1997-11-20) Extensible Shell (es) A {Unix} {shell} written by Byron Rakitzis and Paul Haahr , derived from {rc}. Es has real {functions}, {closures}, {exceptions} and lets you redefine most internal shell operations. Version: 0.84. {(ftp://ftp.sys.utoronto.ca/pub/es/)}. ["Es - A Shell with Higher Order Functions", P. Haahr et al, Proc Winter 1993 Usenix Technical Conference]. (1993-04-30) Extensible Stylesheet Language (XSL) A {W3C} {standard} defining {stylesheets} for (and in) {XML}. {Home (http://www.w3.org/Style/XSL/)}. See also {XSLT}. [Summary?] (2001-04-01) Extensible VAX Editor (EVE) A {DEC} product implemented using DEC's {Text Processing Utility} (TPU). [Details?] (2000-05-08) extension 1. {filename extension}. 2. A {feature} or piece of {code} which {extends} a program's {functionality}, e.g. a {plug-in}. (1997-06-21) extensional Extensional properties, e.g. extensional equality, relate to the "black-box" behaviour of an object, i.e. how its output depends on its input. The opposite is intensional which concerns how the object is implemented. extensional equality (Or extensionality). Functions, f and g are extensionally equal if and only if f x = g x for all x. where "=" means both expressions fail to terminate (under some given {reduction strategy}) or they both terminate with the same basic value. Two functions may be extensionally equal but not inter-convertible (neither is reducible to the other). E.g. \ x . x+x and \ x . 2*x. See also {observational equivalence}, {referential transparency}. extensionality {extensional equality} Extension Language Kit (Elk) A {Scheme} {interpreter} by Oliver Laumann and Carsten Bormann of the {Technical University of Berlin}. Elk was designed to be used as a general extension language. New {types} and {primitive} procedures can easily be added. It has {first-class environments}, {dynamic-wind}, {fluid-let}, {macros}, {autoload}ing and a {dump}. It provides interfaces to {Xlib}, {Xt} and various {widget} sets; {dynamic loading} of extensions and {object files}; almost all artificial limitations removed; {generational}/{incremental garbage collector}; {Unix} {system call} extensions; {Records} (structures) and {bit strings}. Version: 2.2 is mostly {R3RS} compatible and runs on {Unix}, {Ultrix}, {VAX}, {Sun-3}, {Sun-4}, {68000}, {i386}, {MIPS}, {IBM PC RT}, {RS/6000}, {HP700}, {SGI}, {Sony}, {MS-DOS} ({gcc}+{DJGPP} or {go32}). {Germany (ftp://ftp.fu-berlin.de/pub/Unix/languages/scheme/elk-2.2.tar.gz)}. {US (ftp://ftp.x.org/contrib/elk-2.2.tar.gz)}. {US (ftp://gatekeeper.dec.com/pub/comp.sources.misc/volume8/elk)}. (1994-12-15) Exterior Gateway Protocol (EGP) A protocol which distributes routing information to the {router}s which connect {autonomous system}s. The term "{gateway}" is historical, and "router" is currently the preferred term. There is also a routing protocol called {EGP} defined in STD 18, RFC 904. See also {Border Gateway Protocol}, {Interior Gateway Protocol}. eXternal Data Representation (XDR) A {standard} for machine independent data structures developed by {Sun Microsystems} for use in {remote procedure call} systems. It is defined in {RFC 1014} and is similar to {ASN.1}. (1994-12-13) external memory A vague term for slower, {non-volatile storage}, usually {magnetic disk}, in contrast to {main memory} which is usually volatile {semiconductor} {RAM}. [{Jargon File}] (1997-02-17) EXTRA Object-oriented, Pascal style, handles sets. "A Data Model and Query Language for EXODUS", M.J. Carey et al, SIGMOD 88 Conf Proc, pp.413- 423, ACM SIGMOD Record 17:3 (Sept 1988). extranet The extension of a company's {intranet} out onto the {Internet}, e.g. to allow selected customers, suppliers and mobile workers to access the company's private data and applications via the {World-Wide Web}. This is in contrast to, and usually in addition to, the company's public {web site} which is accessible to everyone. The difference can be somewhat blurred but generally an extranet implies real-time access through a {firewall} of some kind. Such facilities require very careful attention to security but are becoming an increasingly important means of delivering services and communicating efficiently. [Did {Marc Andreessen} invent the term in September 1996?] (1997-12-17) EXUG {European X User Group} eyeball search (Or vgrep) To look for something in a mass of code or data with one's own native optical sensors, as opposed to using some sort of pattern matching software like {grep} or any other automated search tool. Compare {vdiff}, {desk check}. [{Jargon File}] (1997-12-17) EZ High-level string-processing language derived from SNOBOL4, SL5 and Icon. ["The EZ Reference Manual", C.W. Fraser et al, CS TR 84-1, U Arizona, 1984]. ezd (Easy drawing) A graphics {server} that sits between an {application program} and an {X} server and allows both existing and new programs easy access to structured graphics. Ezd users have been able to have their programs produce interactive drawings within hours of reading the manual page. Ezd supports structured graphics - application defined graphical objects are ordered into drawings by the application. Unlike most X tools, ezd does not require any event handling by the application. The ezd server maintains the window contents. When an event occurs an application supplied {Scheme} expression is evaluated. Current version: 15mar93 (as of 1993-03-10). {(ftp://gatekeeper.dec.com/pub/DEC/ezd/)}. Contact: Joel Bartlett. (2000-03-25) e-zine {electronic magazine} f2c A {Fortran 77} to {C} translator by S. I. Feldman, D. M. Gay, M. W. Maimone and N. L. Schryer. Produces {ANSI C} or {C++}. {(ftp://netlib.bell-labs.com/netlib/f2c)}. E-mail: . Current version: 1997.07.24. (1997-08-01) F2F {face-to-face} F68K A portable {Forth} system for {Motorola} {680x0} computers by Joerg Plewe . Ported to {Atari ST}, {Atari TT}, {Amiga}, {Sinclair QL} and {OS9}. Easily ported to {Motorola} {68000} based systems. {(ftp://archive.umich.edu/atari/Languages/)} (1992-12-14) FAC Functional Array Calculator. An {APL}-like language, but {purely functional} and {lazy}. It allows infinite {array}s. ["FAC: A Functional APL Language", H.-C. Tu and A.J. Perlis, IEEE Trans Soft Eng 3(1):36-45 (Jan 1986)]. face time Time spent interacting with somebody face-to-face (as opposed to via electronic links). "Oh, yeah, I spent some face time with him at the last Usenix." [{Jargon File}] face-to-face (F2F, {IRL}) Used to describe personal interaction in real life as opposed to via some digital or electronic communications medium. (1997-01-31) Facile A {concurrent} extension of {ML} from {ECRC}. {(http://www.ecrc.de/facile/facile_home.html)} ["Facile: A Symmetric Integration of Concurrent and Functional Programming", A. Giacalone et al, Intl J Parallel Prog 18(2):121-160, Apr 1989]. (1994-12-01) facsimile ("fax") A process by which fixed graphic material including pictures, text, or images is scanned and the information converted into electrical signals which are transmitted via telephone to produce a paper copy of the graphics on the receiving fax machine. Some {modems} can be used to send and receive fax data. [Details? Standards?] (1995-11-15) FACT {Fully Automated Compiling Technique} fact The kind of {clause} used in {logic programming} which has no {subgoals} and so is always true (always succeeds). E.g. wet(water). male(denis). This is in contrast to a {rule} which only succeeds if all its subgoals do. Rules usually contain {logic variables}, facts rarely do, except for oddities like "equal(X,X).". (1996-10-20) factor A quantity which is multiplied by another quantity. See {coefficient of X}. See also {divisor}. [{Jargon File}] FAD ["FAD, A Simple and Powerful Database Language", F. Bancilon et al, Proc 13th Intl Conf on VLDB, Brighton, England, Sep 1987]. failover Automatically switching to a redundant or standby server, system, or network upon the failure or abnormal termination of the currently-active server, system, or network (a "{hot standby}" or "{warm standby}"). Failover happens without human intervention. This feature is usually built-in to expensive systems which must be available continuously. (2001-03-19) failure The inability of a system or system component to perform a required function within specified limits. A failure may be produced when a {fault} is encountered. (1996-05-13) failure-directed testing (Or "heuristics testing") Software testing based on the knowledge of the types of {errors} made in the past that are likely for the system under test. (1996-05-16) FAIR An early system on the {IBM 705}. [Listed in CACM 2(5):1959-05-16]. (1996-05-13) Fairchild F8 An 8-bit {microprocessor}. The processor itself had no {address bus} - program and data memory access were contained in separate units, which reduced the number of pins and the associated cost. It also featured 64 {register}s, accessed by the ISAR register in cells ({register window}s) of eight, which meant external {RAM} wasn't always needed for small applications. In addition, the 2-chip processor didn't need support chips, unlike others which needed seven or more. The F8 inspired other similar {CPU}s, such as the {Intel 8048}. The use of the ISAR register allowed a subroutine to be entered without saving a bunch of registers, speeding execution - the ISAR would just be changed. Special purpose registers were stored in the second cell (regs 9-15), and the first eight registers were accessed directly. The windowing concept was useful, but only the register pointed to by the ISAR could be accessed - to access other registers the ISAR was incremented or decremented through the window. (1994-11-16) fall back A feature of a {modem} {protocol} where two modems which experience data corruption, e.g. due to line noise, can renegotiate to use a lower speed connection. See also {fall forward}. fall forward A feature of a {modem} {protocol} where two modems which {fall back} to a lower speed because of data corruption can later return to the higher speed if the connection improves. fall over [IBM] Yet another synonym for {crash} or {lose}. "Fall over hard" equates to {crash and burn}. [{Jargon File}] fall through (The American misspelling "fall thru" is also common) 1. To exit a loop by exhaustion, i.e. by having fulfilled its exit condition rather than via a break or exception condition that exits from the middle of it. This usage appears to be *really* old, dating from the 1940s and 1950s. 2. To fail a test that would have passed control to a subroutine or some other distant portion of code. 3. In C, "fall-through" occurs when the flow of execution in a {switch statement} reaches a "case" label other than by jumping there from the switch header, passing a point where one would normally expect to find a "break". A trivial example: switch (colour) { case GREEN: do_green(); break; case PINK: do_pink(); /* FALL THROUGH */ case RED: do_red(); break; default: do_blue(); break; } The effect of the above code is to "do_green()" when colour is "GREEN", "do_red()" when colour is "RED", "do_blue()" on any other colour other than "PINK", and (and this is the important part) "do_pink()" *and then* "do_red()" when colour is "PINK". Fall-through is {considered harmful} by some, though there are contexts (such as the coding of state machines) in which it is natural; it is generally considered good practice to include a comment highlighting the fall-through where one would normally expect a break. See also {Duff's Device}. fall thru It's spelled "{fall through}". (1996-12-13) FALSE A small, compiled extensible language with {lambda abstraction}s by W. van Oortmerssen. {For Amiga (ftp://ftp.cso.uiuc.edu/pub/amiga/fish/ff885)} fandango on core (Unix/C, from the Mexican dance) In {C}, a wild pointer that runs out of bounds, causing a {core dump}, or corrupts the {malloc} {arena} in such a way as to cause mysterious failures later on, is sometimes said to have "done a fandango on core". On low-end personal machines without an {MMU}, this can corrupt the {operating system} itself, causing massive lossage. Other frenetic dances such as the rhumba, cha-cha, or watusi, may be substituted. See {aliasing bug}, {precedence lossage}, {smash the stack}, {memory leak}, {memory smash}, {overrun screw}, {core}. [{Jargon File}] (1994-12-16) FAP The {assembly language} for {Sperry-Rand 1103} and 1103A. [Listed in CACM 2(5):16 (May 1959)]. (1994-12-16) FAQ {frequently asked question} FAQL {frequently asked question} FAQ list {frequently asked question} faradise /far'*-di:z/ [US Geological Survey] To start any hyper-addictive process or trend, or to continue adding current to such a trend. Telling one user about a new octo-tetris game you compiled would be a faradising act - in two weeks you might find your entire department playing the faradic game. farkled /far'kld/ (From DeVry Institute of Technology, Atlanta) A synonym for {hosed}. Possibly related to Yiddish "farblondjet" and/or the "Farkle Family" skits on Rowan & Martin's Laugh-In. [{Jargon File}] (1998-09-07) farm {processor farm} farming (From Adelaide University, Australia) What the {heads} of a {disk drive} are said to do when they plow little furrows in the magnetic media during a {head crash}. Typically used as follows: "Oh no, the machine has just crashed; I hope the hard drive hasn't gone {farming} again." [{Jargon File}] (2001-03-26) FARNET A non-profit corporation, established in 1987, whose mission is to advance the use of computer networks to improve research and education. fas 1. Frankenstein Cross Assemblers. A reconfigurable assembler package, especially suited for 8-bit processors, consisting of a base assembler module and a {yacc} parser, for each {microprocessor}, to handle {mnemonics} and addressing. Second party parser modules available from many sites. Base assembler and yacc parser modules by Mark Zenier. FTP: ftp.njit.edu/pub/msdos/frankasm/frankasm.zoo. 2. FAS. A general purpose language sponsored by the Finnish government in the 70's and 80's. FASBOL ["FASBOL. A SNOBOL4 Compiler", P.J. Santos, Memo ERL-M134, UC Berkeley 1971]. fascist 1. Said of a computer system with excessive or annoying security barriers, usage limits, or access policies. The implication is that said policies are preventing hackers from getting interesting work done. The variant "fascistic" seems to have been preferred at {MIT}, possibly by analogy with "touristic" (see {tourist}). 2. In the design of languages and other software tools, "the fascist alternative" is the most restrictive and structured way of capturing a particular function; the implication is that this may be desirable in order to simplify the implementation or provide tighter error checking. Compare {bondage-and-discipline language}, although that term is global rather than local. [{Jargon File}] FASE Fundamentally Analyzable Simplified English. L.E. McMahon, Bell Labs. [Sammet 1969, p.720]. (1994-11-09) FAST 1. {Federation Against Software Theft}. 2. {Fortran Automatic Symbol Translator}. (1996-05-19) Fast ATA {Advanced Technology Attachment Interface with Extensions} Fast ATA-2 {Advanced Technology Attachment Interface with Extensions} Fast Ethernet A version of {Ethernet} developed in the 1990s(?) which can carry 100 {Mbps} compared with standard Ethernet's 10 Mbps. It requires upgraded {network cards} and {hubs}. The relevant standards are {100BaseT}, {100BaseFX} and {100BaseVG}. (1998-03-23) Fast Fourier Transform (FFT) An {algorithm} for computing the {Fourier transform} of a set of discrete data values. Given a finite set of data points, for example a periodic sampling taken from a real-world signal, the FFT expresses the data in terms of its component frequencies. It also solves the essentially identical inverse problem of reconstructing a signal from the frequency data. The FFT is a mainstay of {numerical analysis}. Gilbert Strang described it as "the most important algorithm of our generation". The FFT also provides the asymptotically fastest known algorithm for multiplying two {polynomial}s. Versions of the algorithm (in {C} and {Fortran}) can be found on-line from the {GAMS} server {here (http://gams.nist.gov/cgi-bin/gams-serve/class/J1.html)}. ["Numerical Methods and Analysis", Buchanan and Turner]. (1994-11-09) Fast Packet {Asynchronous Transfer Mode} Fast Page Mode Dynamic Random Access Memory Is this the same as {Page Mode Dynamic Random Access Memory}? (1996-10-06) Fast SCSI A variant on the {SCSI-2} bus. It uses the same 8-bit bus as the original {SCSI}-1 but runs at up to 10MB/s - double the speed of SCSI-1. (1994-11-24) FAT {File Allocation Table} FAT32 {File Allocation Table} fatal Resulting in termination of the program. (1997-08-03) fatal error Any {error} which causes abrupt {termination} of the program. The program may be terminated either by itself or by the {operating system} (a "{fatal exception}"). In the former instance, the program contains code which catches the error and, as a result, returns to the operating system or calls an operating system service to terminate the program. (1997-08-03) fatal exception A program execution error which is trapped by the {operating system} and which results in abrupt termination of the program. It may be possible for the program to catch some such errors, e.g. a {floating point} {underflow}; others, such as an invalid memory access (an attempt to write to read-only memory or an attempt to read memory outside of the program's {address space}), may always cause control to pass to the operating system without allowing the program an opportunity to handle the error. The details depend on the language's {run-time system} and the operating system. See also: {fatal error}. (1997-08-03) fat binary An executable file containing code for more than one {CPU}. The correct code is selected automatically at run-time. This is convenient for distributing {software} and sharing it between multiple {platforms}. {NEXTSTEP} supports fat binaries, e.g. for {Motorola 68000}, {Intel 80486} and {SPARC} ("triple fat"). {Mac OS} supports fat binaries for both {680x0} and {PowerPC} native code. [Other OSes?] (1995-09-23) fat client Opposite of "{thin client}". (1996-12-08) fat electrons Old-time hacker David Cargill's theory on the cause of computer glitches. Your typical electricity company draws its line current out of the big generators with a pair of coil taps located near the top of the dynamo. When the normal tap brushes get dirty, they take them off line to clean them up, and use special auxiliary taps on the *bottom* of the coil. Now, this is a problem, because when they do that they get not ordinary or "thin" electrons, but the fat sloppy electrons that are heavier and so settle to the bottom of the generator. These flow down ordinary wires just fine, but when they have to turn a sharp corner (as in an integrated-circuit via), they're apt to get stuck. This is what causes computer glitches. [Obviously, fat electrons must gain mass by {bogon} absorption - ESR] Compare {bogon}, {magic smoke}. [{Jargon File}] (1996-12-08) fault 1. A manifestation of an {error} in {software}. A fault, if encountered, may cause a {failure}. 2. {page fault}. (1996-05-14) fault-based testing Software testing using test data designed to demonstrate the absence of a set of pre-specified {faults}; typically, frequently occurring faults. For example, to demonstrate that the software handles or avoids {divide by zero} correctly, the test data would include zero. (1996-05-15) fault tolerance 1. The ability of a system or component to continue normal operation despite the presence of hardware or software faults. This often involves some degree of {redundancy}. 2. The number of faults a system or component can withstand before normal operation is impaired. (1995-04-06) fault tolerant {fault tolerance} fault tree analysis A form of safety analysis that assesses hardware safety to provide failure statistics and sensitivity analyses that indicate the possible effect of critical failures. (1996-05-15) fax {facsimile} Fax over IP (FoIP) Transmission of a {facsimile} over an {IP} networking instead of {PSTN}, analogous to {Voice over IP}. (1999-04-26) FC A {functional language}. ["FC Manual", L. Augustsson, Memo 13, Programming Methodology Group, Chalmers U, Sweden 1982]. (1995-03-22) FC-AL {Fibre Channel-Arbitrated Loop}. FCB {file control block}. F-code The code for the {FP/M} {abstract machine}. ["FP/M Abstract Syntax Description", Roger Bailey, Dept Computing, Imperial College, U London, 1985]1w. (1994-12-01) FCP Flat Concurrent Prolog. ["Design and Implementation of Flat Concurrent Prolog", C. Mierowsky, TR CS84-21 Weizmann Inst, Dec 1984]. (1994-10-20) FC-PGA {Flip Chip Pin Grid Array} FCS {Frame Check Sequence} FDC {Floppy Disk Controller} FDDI {Fiber Distributed Data Interface} FDISK (Fixed disk utility) An {MS-DOS} utility program which prepares a {hard disk} so that it can be used as a {boot disk} and {file systems} can be created on it. {OS/2}, {NT}, {Windows 95}, {Linux}, and other {Unix} versions all have this command or something similar. (1996-12-23) fd leak {file descriptor leak} fdlibm A new version of the {C} maths library, libm, by Dr. K-C Ng. It is the basis for the bundled /usr/lib/libm.so in Solaris 2.3 for SPARC and for future Solaris 2 releases for x86 and PowerPC. It provides the standard functions necessary to pass the usual test suites. This new libm can be configured to handle exceptions in accordance with various language standards or in the spirit of {IEEE 754}. The C source code should be portable to any IEEE 754 system. E-mail: ("send all from fdlibm"), (comments and bug reports). {(ftp://netlib.att.com/netlib)}. (1993-12-18). FDMA {frequency division multiple access} FDSE {full-duplex Switched Ethernet} FDSP {full-duplex speaker phone} FDT {Formal Description Technique} fdx {full-duplex} FEA {finite element analysis} fear and loathing (Hunter S. Thompson) A state inspired by the prospect of dealing with certain real-world systems and standards that are totally {brain-damaged} but ubiquitous - {Intel 8086}s, {COBOL}, {EBCDIC}, or any {IBM} machine except the {Rios} (also known as the {RS/6000}). [{Jargon File}] (1994-12-06) feasible A description of an {algorithm} that takes {polynomial} time (that is, for a problem set of size N, the resources required to solve the problem can be expressed as some polynomial involving N). Problems that are "feasible" are said to be "in P" where P is polynomial time. Problems that are "possible" but not "feasible" are said to be "in NP". (2001-04-12) feature 1. A good property or behaviour (as of a program). Whether it was intended or not is immaterial. 2. An intended property or behaviour (as of a program). Whether it is good or not is immaterial (but if bad, it is also a {misfeature}). 3. A surprising property or behaviour; in particular, one that is purposely inconsistent because it works better that way - such an inconsistency is therefore a {feature} and not a {bug}. This kind of feature is sometimes called a {miswart}. 4. A property or behaviour that is gratuitous or unnecessary, though perhaps also impressive or cute. For example, one feature of {Common LISP}'s "format" function is the ability to print numbers in two different Roman-numeral formats (see {bells, whistles, and gongs}). 5. A property or behaviour that was put in to help someone else but that happens to be in your way. 6. A bug that has been documented. To call something a feature sometimes means the author of the program did not consider the particular case, and that the program responded in a way that was unexpected but not strictly incorrect. A standard joke is that a bug can be turned into a {feature} simply by documenting it (then theoretically no one can complain about it because it's in the manual), or even by simply declaring it to be good. "That's not a bug, that's a feature!" is a common catch-phrase. Apparently there is a Volkswagen Beetle in San Francisco whose license plate reads "FEATURE". See also {feetch feetch}, {creeping featurism}, {wart}, {green lightning}. The relationship among bugs, features, misfeatures, warts and miswarts might be clarified by the following hypothetical exchange between two hackers on an airliner: A: "This seat doesn't recline." B: "That's not a bug, that's a feature. There is an emergency exit door built around the window behind you, and the route has to be kept clear." A: "Oh. Then it's a misfeature; they should have increased the spacing between rows here." B: "Yes. But if they'd increased spacing in only one section it would have been a wart - they would've had to make nonstandard-length ceiling panels to fit over the displaced seats." A: "A miswart, actually. If they increased spacing throughout they'd lose several rows and a chunk out of the profit margin. So unequal spacing would actually be the Right Thing." B: "Indeed." "Undocumented feature" is a common euphemism for a {bug}. 7. An attribute or function of a {class} in {Eiffel}. [{Jargon File}] (1995-10-22) feature creature [Possibly from slang "creature feature" for a horror movie] 1. One who loves to add features to designs or programs, perhaps at the expense of coherence, concision or {taste}. 2. Alternately, a mythical being that induces otherwise rational programmers to perpetrate such crocks. See also {feeping creaturism}, {creeping featurism}. [{Jargon File}] feature creep {creeping featurism} featurectomy /fee"ch*r-ek"t*-mee/ The act of removing a {feature} from a program. Featurectomies come in two flavours, the "righteous" and the "reluctant". Righteous featurectomies are performed because the remover believes the program would be more elegant without the feature, or there is already an equivalent and better way to achieve the same end. (Doing so is not quite the same thing as removing a {misfeature}.) Reluctant featurectomies are performed to satisfy some external constraint such as code size or execution speed. [{Jargon File}] (1994-10-20) feature key (Or "flower", "pretzel", "clover", "propeller", "beanie" (from propeller beanie), {splat}, "command key") The {Macintosh} key with the cloverleaf graphic on its keytop. The feature key is the Mac's equivalent of an {alt} key (and so labelled on on some Mac II keyboards). The proliferation of terms for this creature may illustrate one subtle peril of iconic interfaces. Many people have been mystified by the cloverleaf-like symbol that appears on the feature key. Its oldest name is "cross of St. Hannes", but it occurs in pre-Christian Viking art as a decorative motif. Throughout Scandinavia today the road agencies use it to mark sites of historical interest. {Apple Computer} picked up the symbol from an early {Macintosh} developer who happened to be Swedish. Apple documentation gives the translation "interesting feature"! There is some dispute as to the proper (Swedish) name of this symbol. It technically stands for the word "sev"ardhet" (interesting feature) many of these are old churches. Some Swedes report as an idiom for it the word "kyrka", cognate to English "church" and Scots-dialect "kirk" but pronounced /shir'k*/ in modern Swedish. Others say this is nonsense. [{Jargon File}] (1997-11-20) feature shock [Alvin Toffler's book title "Future Shock"] A user's (or programmer's!) confusion when confronted with a package that has too many features and poor introductory material. [{Jargon File}] FEC {Forward Error Correction} Federal Geographic Data Committee (FGDC) {(ftp://fgdc.er.usgs.gov/gdc/html/fgdc.html)} [Summary?] (1995-03-06) Federal Information Exchange (FIX) One of the connection points between the American governmental {internets} and the {Internet}. (2001-05-14) Federal Information Processing Standards (FIPS) United States Government technical {standard}s published by the {National Technical Information Service} (NTIS). Computer-related products bought by the US Government must conform to these standards. (1995-03-01) Federal Networking Council (FNC) The coordinating group of representatives from federal agencies involved in the development and use of federal networking, especially those networks using {TCP/IP} and the {Internet}. Current members include representatives from DOD, DOE, {DARPA}, {NSF}, NASA, and HHS. (1994-11-17) Federation Against Software Theft (FAST) A non-profitmaking organisation, formed in 1984 by the software industry with the aim of eradicating {software theft} within the UK. Prosecuting on average one organisation every ten days, FAST gives a member organisation, which has signed a Code of Ethics and is committed to the carrying out of a regular {software audit}, a period of grace before bringing action if there is evidence of irregularities by the member organisation. In addition to prosecuting organisations and individuals for software theft, FAST set up a campaign of public education and awareness to ensure that users of commercial software understand the effects of software theft - primarily the legal penalties for copyright breach and the increased risk of virus infection through the uncontrolled spread of software. It is estimated that European software houses alone lose $6 billion per year through the unlawful copying and distribution of software, with much of this loss being through business users rather than "basement hackers". One Italian pirating operation employed over 100 staff and had a turnover of $10m. However, FAST is limited to the UK and in 1995 proposed to merge with the {Business Software Alliance} created by {Microsoft} and which has a world-wide influence. However, the talks fell through and in 1996, {Novell} and {Adobe Systems, Inc.} defected to BSA. {Home (http://www.serverworld/com/fast.html)}. Telephone: +44 (1753) 527 999. (1996-09-27) feedback Part of a system output presented at its input. Feedback may be unintended. When used as a design feature, the output is usually transformed by passive components which attenuate it in some manner; the result is then presented at the system input. Feedback is positive or negative, depending on the sign with which a positive change in the original input reappears after transformation. Negative feedback was invented by Black to stabilise {vacuum tube} amplifiers. The behaviour becomes largely a function of the feedback transformation and only minimally a function of factors such as transistor gain which are imperfectly known. Positive feedback can lead to instability; it finds wide application in the construction of oscillators. Feedback can be used to control a system, as in {feedback control}. (1996-01-02) feedback control A control system which monitors its effect on the system it is controlling and modifies its output accordingly. For example, a thermostat has two inputs: the desired temperature and the current temperature (the latter is the feedback). The output of the thermostat changes so as to try to equalise the two inputs. Computer {disk drives} use feedback control to position the read/write heads accurately on a recording track. Complex systems such as the human body contain many feedback systems that interact with each other; the homeostasis mechanisms that control body temperature and acidity are good examples. (1996-01-02) feed-forward A {multi-layer perceptron} network in which the outputs from all neurons (see {McCulloch-Pitts}) go to following but not preceding layers, so there are no feedback loops. Feel (Free and Eventually Eulisp) An initial implementation of an {EuLisp} {interpreter} by Pete Broadbery . Version 0.75 features an integrated {object} system, {modules}, {parallelism}, interfaces to {PVM} library, {TCP/IP} {socket}s, {future}s, {Linda} and {CSP}. Portable to most {Unix} systems. Can use {shared memory} and {thread}s if available. {(ftp://ftp.bath.ac.uk/pub/eulisp/)} (1992-09-14) feep /feep/ 1. The soft electronic "bell" sound of a display terminal (except for a VT-52); a beep (in fact, the microcomputer world seems to prefer {beep}). 2. To cause the display to make a feep sound. ASR-33s (the original TTYs) do not feep; they have mechanical bells that ring. Alternate forms: {beep}, "bleep", or just about anything suitably onomatopoeic. (Jeff MacNelly, in his comic strip "Shoe", uses the word "eep" for sounds made by computer terminals and video games; this is perhaps the closest written approximation yet.) The term "breedle" was sometimes heard at SAIL, where the terminal bleepers are not particularly soft (they sound more like the musical equivalent of a raspberry or Bronx cheer; for a close approximation, imagine the sound of a Star Trek communicator's beep lasting for five seconds). The "feeper" on a VT-52 has been compared to the sound of a '52 Chevy stripping its gears. See also {ding}. [{Jargon File}] feeper /fee'pr/ The device in a terminal or workstation (usually a loudspeaker of some kind) that makes the {feep} sound. feeping creature [{feeping creaturism}] An unnecessary feature; a bit of {chrome} that, in the speaker's judgment, is the camel's nose for a whole horde of new features. [{Jargon File}] feeping creaturism /fee'ping kree"ch*r-izm/ A deliberate spoonerism for {creeping featurism}, meant to imply that the system or program in question has become a misshapen creature of hacks. This term isn"t really well defined, but it sounds so neat that most hackers have said or heard it. It is probably reinforced by an image of terminals prowling about in the dark making their customary noises. FEL Function Equation Language. Programs are sets of definitions. Sequences are lists stored in consecutive memory. "FEL Programmer's Guide", R. M. Keller, AMPS TR 7, U Utah, March 1982. femto- {prefix} fence 1. A sequence of one or more distinguished ({out-of-band}) characters (or other data items), used to delimit a piece of data intended to be treated as a unit (the computer-science literature calls this a "sentinel"). The NUL (ASCII 0000000) character that terminates strings in C is a fence. {Hex} FF is also (though slightly less frequently) used this way. See {zigamorph}. 2. An extra data value inserted in an array or other data structure in order to allow some normal test on the array's contents also to function as a termination test. For example, a highly optimised routine for finding a value in an array might artificially place a copy of the value to be searched for after the last slot of the array, thus allowing the main search loop to search for the value without having to check at each pass whether the end of the array had been reached. 3. [among users of optimising compilers] Any technique, usually exploiting knowledge about the compiler, that blocks certain optimisations. Used when explicit mechanisms are not available or are overkill. Typically a hack: "I call a dummy procedure there to force a flush of the optimiser's register-colouring info" can be expressed by the shorter "That's a fence procedure". [{Jargon File}] (1999-01-08) fencepost error 1. (Rarely "lamp-post error") A problem with the discrete equivalent of a {boundary condition}, often exhibited in programs by iterative loops. From the following problem: "If you build a fence 100 feet long with posts 10 feet apart, how many posts do you need?" (Either 9 or 11 is a better answer than the obvious 10). For example, suppose you have a long list or array of items, and want to process items m through n; how many items are there? The obvious answer is n - m, but that is off by one; the right answer is n - m + 1. The "obvious" formula exhibits a fencepost error. See also {zeroth} and note that not all {off-by-one errors} are fencepost errors. The game of Musical Chairs involves a catastrophic off-by-one error where N people try to sit in N - 1 chairs, but it's not a fencepost error. Fencepost errors come from counting things rather than the spaces between them, or vice versa, or by neglecting to consider whether one should count one or both ends of a row. 2. (Rare) An error induced by unexpected regularities in input values, which can (for instance) completely thwart a theoretically efficient {binary tree} or {hash coding} implementation. The error here involves the difference between expected and worst case behaviours of an {algorithm}. [{Jargon File}] (1994-12-01) fepped out /fept owt/ The {Symbolics 3600} {LISP Machine} has a {Front-End Processor} (FEP). When the main processor gets {wedged}, the FEP takes control of the keyboard and screen. Such a machine is said to have "fepped out" or "dropped into the fep". [{Jargon File}] (1994-12-01) FEPROM {Flash Erasable Programmable Read-Only Memory} Fermat prime A {prime number} of the form 2^2^n + 1. Any prime number of the form 2^n+1 must be a Fermat prime. {Fermat} conjectured in a letter to someone or other that all numbers 2^2^n+1 are prime, having noticed that this is true for n=0,1,2,3,4. {Euler} proved that 641 is a factor of 2^2^5+1. Of course nowadays we would just ask a computer, but at the time it was an impressive achievement (and his proof is very elegant). No further Fermat primes are known; several have been factorised, and several more have been proved composite without finding explicit factorisations. {Gauss} proved that a regular N-sided {polygon} can be constructed with ruler and compasses if and only if N is a power of 2 times a product of distinct Fermat primes. (1995-04-10) Ferranti F100-L An 8-bit processor, with 16-bit addressing, but which could only access 32K of memory (1-bit for indirection). The Ferranti F100-L was designed by a British company for the British Military. The unique feature of the F100-L was that it had a complete control bus available for a {coprocessor}. Any instruction the F100-L couldn't decode was sent directly to the coprocessor for processing. Applications for coprocessors at the time were limited, but the design is still used in modern processors, such as the {National Semiconductor} {320xx} series. (1994-11-17) ferrite core memory (Or "core") An early form of {non-volatile storage} built (by hand) from tiny rings of magnetisable material threaded onto very fine wire to form large (e.g. 13"x13" or more) rectangluar arrays. Each core stored one {bit} of data. These were sandwiched between {printed circuit boards}(?). Sets of wires ran horizontally and vertically and where a vertical and horizontal wire crossed, a core had both wires threaded through it. A single core could be selected and magnetised by passing sufficient current through its horizontal and vertical wires. A core would retain its magnetisation until it was re-magnetised. The two possible polarities of magnetisation were used to represent the binary values zero and one. A third "sense" wire, passed through the core and, if the magnetisation of the core was changed, a small pulse would be induced in the sense wire which could be detected and used to deduce the core's original state. Some core memory was immersed in a bath of heated oil to improve its performance. Core memory was rendered obsolete by {semiconductor} memory. For example, the 1970s-era {NCR 499} had two boards, each with 16 {kilobytes} of core memory. (1996-03-04) Ferroelectric RAM {Ferroelectric Random Access Memory} Ferroelectric Random Access Memory (FRAM) A type of {non-volatile} read/write {random access} {semiconductor} memory. FRAM combines the advantages of {SRAM} - writing is roughly as fast as reading, and {EPROM} - non-volatility and in-circuit programmability. Current (Feb 1997) disadvantages are high cost and low density, but that may change in the future. Density is currently at most 32KB on a chip, compared with 512KB for SRAM, 1MB for EPROM and 8MB for DRAM. A ferroelectric memory cell consists of a ferroelectric {capacitor} and a {MOS} {transistor}. Its construction is similar to the storage cell of a {DRAM}. The difference is in the dielectric properties of the material between the capacitor's electrodes. This material has a high dielectric constant and can be polarized by an electric field. The polarisation remains until it gets reversed by an opposite electrical field. This makes the memory non-volatile. Note that ferroelectric material, despite its name, does not necessarily contain iron. The most well-known ferroelectric substance is BaTiO3, which does not contain iron. Data is read by applying an electric field to the capacitor. If this switches the cell into the opposite state (flipping over the electrical dipoles in the ferroelectric material) then more charge is moved than if the cell was not flipped. This can be detected and amplified by sense amplifiers. Reading destroys the contents of a cell which must therefore be written back after a read. This is similar to the {precharge} operation in DRAM, though it only needs to be done after a read rather than periodically as with DRAM {refresh}. In fact it is most like the operation of {ferrite core memory}. FRAM has similar applications to EEPROM, but can be written much faster. The simplicity of the memory cell promises high density devices which can compete with DRAM. {RAMTRON} is the company behind FRAM. (1997-02-17) Fetch A {Macintosh} program by Jim Matthews for transferring files using {File Transfer Protocol} (FTP). Fetch requires a Mac 512KE, System 4.1, and either {KSP} 1.03 or {MacTCP}. Current version: 2.1.2. Fetch is Copyright 1992, Trustees of Dartmouth College. {(ftp://ftp.Dartmouth.edu/pub/mac/Fetch_2.1.2.sit.hqx)}. {(ftp://src.doc.ic.ac.uk/computing/systems/mac/info-mac/comm/tcp)}. (1994-11-30) fetch-execute cycle The sequence of actions that a {central processing unit} performs to execute each {machine code} instruction in a program. At the beginning of each cycle the CPU presents the value of the {program counter} on the {address bus}. The CPU then fetches the instruction from {main memory} (possibly via a {cache} and/or a {pipeline}) via the {data bus} into the {instruction register}. From the instruction register, the data forming the instruction is decoded and passed to the {control unit} which sends a sequence of control signals to the relevant {function units} of the CPU to perform the actions required by the instruction such as reading values from {registers}, passing them to the {ALU} to add them together and writing the result back to a register. The program counter is then incremented to address the next instruction and the cycle is repeated. The fetch-execute cycle was first proposed by {John von Neumann}. (1998-06-25) FF {form feed} ffccc {Floppy} {Fortran} coding convention checker. FFP Formal FP. A language similar to FP, but with regular sugarless {syntax}, for machine execution. See also {FL}. ["Can Programming be Liberated From the von Neumann Style? A Functional Style and Its Algebra of Programs", John Backus, 1977 Turing Award Lecture, CACM 21(8):165-180 (Aug 1978)]. (1994-10-24) FFT {Fast Fourier Transform} FGDC {Federal Geographic Data Committee} FGHC Flat GHC. A {flat} variant of {GHC} in which {guard} calls can be only to {primitive}s. See also {KL1}. (1994-10-24) FGL 1. Flow Graph Lisp. A distributed dataflow language for AMPS (Applicative Multi-Processing System). "A Loosely-Coupled Applicative Multi-Processing System", R. Keller et al, NCC, AFIPS June 1979, pp.613- 622. 2. Function Graph Language. Related to FEL. FGL+LV ["Functional Programming and the Logical Variable", G. Lindstrom, POPL 1985, pp. 266-280]. (1994-11-30) FGRAAL Fortran extended GRAph Algorithmic Language. A Fortran extension for handling sets and graphs. "On a Programming Language for Graph Algorithms", W.C. Rheinboldt et al, BIT 12(2) 1972. fgrep A variant of the {Unix} {grep} command which searches for fixed (uninterpreted) strings rather than {regular expressions}. Surprisingly, this is not always faster. (1996-10-27) fi The {country code} for Finland. (1999-01-27) Fiber Distributed Data Interface (FDDI) A 100 Mbit/s {ANSI} {standard} {local area network} architecture, defined in X3T9.5. The underlying medium is {optical fibre} (though it can be copper cable, in which case it may be called {CDDI}) and the topology is a {dual-attached}, counter-rotating {token ring}. FDDI rings are normally constructed in the form of a "dual ring of trees". A small number of devices, typically infrastructure devices such as {router}s and {concentrator}s rather than {host} computers, are connected to both rings - these are referred to as "{dual-attached}". Host computers are then connected as {single-attached} devices to the {router}s or {concentrator}s. The dual ring in its most degenerate form is simply collapsed into a single device. In any case, the whole dual ring is typically contained within a computer room. This network topology is required because the dual ring actually passes through each connected device and requires each such device to remain continuously operational (the standard actually allows for optical bypasses but these are considered to be unreliable and error-prone). Devices such as {workstation}s and {minicomputer}s that may not be under the control of the {network manager}s are not suitable for connection to the dual ring. As an alternative to a dual-attached connection, the same degree of resilience is available to a {workstation} through a {dual-homed} connection which is made simultaneously to two separate devices in the same FDDI ring. One of the connections becomes active while the other one is automatically blocked. If the first connection fails, the backup link takes over with no perceptible delay. {Usenet} newsgroup: {news:comp.dcom.lans.fddi}. (1994-12-13) Fiber Optic InterRepeater Link (FOIRL) An older standard of {fiber optic} guides used for carrying 10 MBps {Ethernet}. The maximum length of a {segment} is 1 km. A FOIRL {multiport repeater} and transceivers are necessary to carry the signal to multiple devices. The more resent version of Ethernet over fiber optic cables is {10baseFL} with a maximum segment length of 2 km. (1998-06-28) fiber optics US spelling of "fibre optics". See {optical fibre}. (1997-03-31) Fibonacci series The {infinite} sequence of numbers beginning 1, 1, 2, 3, 5, 8, 13, ... in which each term is the sum of the two terms preceding it. The ratio of successive Fibonacci terms tends to the golden ratio, namely (1 + sqrt 5)/2. (1997-07-14) Fibre Channel An {ANSI} {standard}. {WebStart C&C (http://www.cmpcmm.com/cc/standards.html#FCS)}. {Amdahl Introduction (http://www.amdahl.com/ext/CARP/FCA/FCintro.html)}. [Summary?] (1996-10-30) Fibre Channel-Arbitrated Loop (FC-AL) A fast serial bus interface standard intended to replace {SCSI} on high-end {servers}. FC-AL has a number of advantages over SCSI. It offers higher speed: the base speed is 100 {megabytes} per second, with 200, 400, and 800 planned. Many devices are dual ported, i.e., can be accessed through two independent ports, which doubles speed and increases fault tolerance. Cables can be as long as 30 m (coaxial) or 10 km (optical). FC-AL enables {self-configuring} and {hot swapping} and the maximum number of devices on a single port is 126. Finally, it provides software compatibility with SCSI. Despite all these features FC-AL is unlikely to appear on desktops anytime soon, partly because its price, partly because typical {desktop computers} would not take advantage of many of the advanced features. On these systems {FireWire} has more potential. [Current status? Reference?] (1999-09-12) fibre optics {optical fibre} FIDIL Based on "maps", generalised arrays whose index sets ("domains") are arbitrary D-dimensional sets. Domains are first-class objects and may be constructed by union, intersection, etc. ["Fidil: A Language for Scientific Programming", P.N. Hilfinger et al, TR UCRL-98057, LLNL Jan 1988]. FIDO FInite DOmains. A constraint language implemented on top of Prolog. {(ftp://ftp.uni-kl.de/pub1/Unix/languages/fido/)} FidoNet A worldwide hobbyist network of personal computers which exchanges {e-mail}, discussion groups, and files. Founded in 1984 and originally consisting only of {IBM PC}s and compatibles, FidoNet now includes such diverse machines as {Apple II}s, {Atari}s, {Amiga}s, and {Unix} systems. Though it is much younger than {Usenet}, FidoNet is already (in early 1991) a significant fraction of {Usenet}'s size at some 8000 systems. [{Jargon File}] field An area of a {database} {record}, or {graphical user interface} {form}, into which a particular item of data is entered. Example usage: "The telephone number field is not really a numerical field", "Why do we need a four-digit field for the year?". A {database} {column} is the set of all instances of a given field from all records in a {table}. (1999-04-26) field circus A derogatory pun on "field service". The field service organisation of any hardware manufacturer, but especially {DEC}. There is an entire genre of jokes about DEC field circus engineers: Q: How can you recognise a DEC field circus engineer with a flat tire? A: He's changing one tire at a time to see which one is flat. Q: How can you recognise a DEC field circus engineer who is out of gas? A: He's changing one tire at a time to see which one is flat. See {Easter egging} for additional insight on these jokes. There is also the "Field Circus Cheer" (from the {plan file} for {DEC} on MIT-AI): Maynard! Maynard! Don't mess with us! We're mean and we're tough! If you get us confused We'll screw up your stuff. (DEC's service HQ is located in Maynard, Massachusetts). [{Jargon File}] (1994-12-01) field effect transistor (FET) A {transistor} with a region of {donor} material with two terminals called the "source" and the "drain", and an adjoining region of {acceptor} material between, called the "gate". The voltage between the gate and the {substrate} controls the current flow between source and drain by depleting the donor region of its charge carriers to greater or lesser extent. There are two kinds of FET's, {Junction FETs} and {MOSFETs}. Because no current (except a minute leakage current) flows through the gate, FETs can be used to make circuits with very low power consumption. Contrast {bipolar transistor}. (1995-10-05) field mouse {wireless mouse} field-programmable gate array (FPGA) A {gate array} where the logic network can be programmed into the device after its manufacture. An FPGA consists of an array of logic elements, either gates or lookup table {RAM}s, {flip-flops} and programmable interconnect wiring. Most FPGAs are reprogrammable, since their logic functions and interconnect are defined by RAM cells. The {Xilinx} LCA, {Altera} FLEX and {AT&T} ORCA devices are examples. Others can only be programmed once, by closing "antifuses". These retain their programming permanently. The {Actel} FPGAs are the leading example of such devices. Atmel FPGAs are currently (July 1997) the only ones in which part of the array can be reprogrammed while other parts are active. As of 1994, FPGAs have logic capacity up to 10K to 20K 2-input-NAND-equivalent gates, up to about 200 I/O pins and can run at {clock rate}s of 50 MHz or more. FPGA designs must be prepared using {CAD} software tools, usually provided by the chip vendor, to do technology mapping, partitioning and placement, routing, and binary output. The resulting binary can be programmed into a {ROM} connected to the FPGA or {downloaded} to the FPGA from a connected computer. In addition to ordinary logic applications, FPGAs have enabled the development of {logic emulators}. There is also research on using FPGAs as computing devices, taking direct advantage of their reconfigurability into problem-specific hardware processors. {Usenet} newsgroup: {news:comp.arch.fpga}. (1997-07-11) field servoid [Play on "android"] /fee'ld ser'voyd/ Representative of a field service organisation (see {field circus}). This has many of the implications of {droid}. [{Jargon File}] FIFO {first-in first-out} Fifth An enhanced version of FORTH. M.S. Dissertation, Cliff Click , Texas A&M, 1985. Available from the Software Construction Co, (409)696-5432. Fifth Dimension Technologies (5DT) Manufacturers of the {5th Glove}. (1995-04-04) fifth generation language A myth the Japanese spent a lot of money on. In about 1982, {MITI} decided it would spend ten years and a lot of money applying {artificial intelligence} to programming, thus solving the {software crisis}. The project spent its money and its ten years and in 1992 closed down with a wimper. (1996-11-06) fifth normal form {database normalisation} Fight-o-net A distortion of {FidoNet}, often applied after a flurry of {flamage} in a particular {echo}, especially the SYSOP echo or Fidonews (see {'Snooze}). [{Jargon File}] (1996-11-04) file An element of data storage in a {file system}. The history of computing is rich in varied kinds of files and {file systems}, whether ornate (e.g., {Macintosh file system} for a well-known case) or deficient (e.g., many simple pre-1980s file systems don't allow {directories}). However, the prototypical file has these characteristics: * It is a single sequence of bytes (but consider {Macintosh} {resource forks}). * It has a finite length, unlike, e.g. a {Unix} {device}. * It is stored in a {non-volatile storage} medium (but see {ramdrive}). * It exists (nominally) in a {directory}. * It has a name that it can be referred to by in file operations, possibly in combination with its {path}. Additionally, a file system may associate other information with a file, such as {permission} bits or other {file attributes}; timestamps for file creation, last revision, and last access; revision numbers (a` la VMS), and other kinds of {magic}. (1997-04-08) File Allocation Table (FAT) The component of an {MS-DOS} or {Windows 95} {file system} which describes the {files}, {directories} and free space on a {hard disk} or {floppy disk}. A disk is divided into partitions. Under the FAT file system each partition is divided into clusters, each of which can be one or more {sectors}, depending on the size of the partition. Each cluster is either allocated to a file or directory or it is free (unused). A directory lists the name, size, modification time and starting cluster of each file or subdirectory it contains. At the start of the partition is a table (the FAT) with one entry for each cluster. Each entry gives the number of the next cluster in the same file or a special value for "not allocated" or a special value for "this is the last cluster in the chain". The first few clusters after the FAT contain the {root directory}. The FAT file system was originally created for the {PC-M} {operating system} where files were catalogued using 8-bit addressing. {MS DOS}'s FAT allows only {8.3} filenames. With the introduction of MS-DOS 4 an incompatible 16-bit FAT (FAT16) with 32-kilobyte {clusters} was introduced that allowed {partitions} of up to 2 gigabytes. Microsoft later created {FAT32} to support partitions larger than two gigabytes and {pathnames} greater that 256 characters. It also allows more efficient use of disk space since {clusters} are four kilobytes rather than 32 kilobytes. FAT32 was first available in {OEM} Service Release 2 of {Windows 95} in 1996. It is not fully {backward compatible} with the 16-bit and 8-bit FATs. {IDG article (http://www.idg.net/idg_frames/english/content.cgi?vc=docid_9-62525.html)}. {(http://home.c2i.net/tkjoerne/os/fat.htm)}. {(http://www.teleport.com/~brainy/)}. {(http://209.67.75.168/hardware/fatgen.htm)}. {(http://support.microsoft.com/support/kb/articles/q154/9/97.asp)}. Compare: {NTFS}. [How big is a FAT? Is the term used outside MS DOS? How long is a FAT16 filename?] (2000-02-05) File Attach [FidoNet] 1. A file sent along with a mail message from one BBS to another. 2. Sending someone a file by using the File Attach option in a BBS mailer. [{Jargon File}] File Composition A typesetting language. ["File Composition System Reference Manual", No. 90388, Information Intl]. file compression The {compression} of data in a file, usually to reduce storage requirements. (1995-04-06) file control block (FCB) An {MS-DOS} data structure that stores information about an open file. The number of FCBs is configured in {CONFIG.SYS} with a command FCBS=x,y where x (between 1 and 255 inclusive, default 4) specifies the number of file control blocks to allocate and therefore the number of files that MS-DOS can have open at one time. y (not needed from DOS 5.0 onwards) specifies the number of files to be closed automatically if all x are in use. (1995-03-21) file descriptor An integer that identifies an open {file} within a {process}. This number is obtained as a result of opening a file. Operations which read, write, or close a file would take the file descriptor as an input parameter. In many {operating system} implementations, file descriptors are small integers which index a table of open files. In {Unix}, file descriptors 0, 1 and 2 correspond to the {standard input}, {standard output} and {standard error} files respectively. See {file descriptor leak}. (1998-02-06) file descriptor leak (Or "fd leak" /F D leek/) A kind of programming {bug} analogous to a {core leak}, in which a program fails to close {file descriptors} ("fd"s) after file operations are completed, and thus eventually runs out of them. See {leak}. (1994-11-30) file extension {filename extension} FileMaker A {database} application developed by {Claris}. It is currently the leading database application for the {Macintosh} and is the second most popular standalone package for {Windows}. (1998-02-18) FileMaker, Inc. The company that distributes the {FileMaker} {database}. FileMaker, Inc. was previously known as {Claris} and was renamed after a restructuring in January 1998. {Home (http://www.filemaker.com/)}. (1998-02-18) filename extension The portion of a filename, following the final point, which indicates the kind of data stored in the file. Many {operating systems} use filename extensions, e.g. {Unix}, {VMS}, {MS-DOS}. They are usually from one to three letters (some sad old OSes support no more than three). Examples include "c" for {C} {source code}, "ps" for {PostScript}, "txt" for arbitrary text. Compare: {MIME type}. {Tony Warr's comprehensive list (http://camalott.com/~rebma/filex.html)}. {FAQS.org Graphics formats (http://www.faqs.org/faqs/graphics/fileformats-faq/)}. (2000-08-02) FileNet A system for storage of {images} on laser disk using {COLD}. (1995-11-09) File Request 1. The {FidoNet} equivalent of {FTP}, in which one {BBS} system automatically dials another and {snarf}s one or more files. Often abbreviated "FReq"; files are often announced as being "available for FReq" in the same way that files are announced as being "available for/by {anonymous FTP}" on the {Internet}. 2. The act of getting a copy of a file by using the File Request option of the {BBS} mailer. [{Jargon File}] (1995-01-05) File Separator (FS) {ASCII} character 28. (1996-06-28) file server Hardware and software that together provide file-handling and storage functions for multiple users on a {local area network}. The most common choices for file server software are {Sun Microsystems}' {Network File System} for {Unix} and {Novell Netware} for {IBM PC} compatibles. There is also a version of NFS for PCs called {PC-NFS}. Storing files on a file server saves having multiple copies stored on individual computers, thus economising on disk space and also makes administrating and updating the files easier. File Service Protocol (FSP) A {protocol}, similar to {FTP}, for copying {files} between computers. It's designed for {anonymous archives}, and has protection against {server} and {network} overloading. It doesn't use connections so it can survive interruptions in service. Until 1993-08-12, FSP didn't stand for anything. Wen-King was responsible for the initials and Michael Grubb for their eventual expansion. Other suggestions were "File Slurping Protocol", "Flaky Stream Protocol" and "FTP's Sexier Partner". {FAQ (ftp://ftp.germany.eu.net/pub/networking/inet/fsp/fsp-faq/)}. [fsp-faq, 1993-08-12]. (1997-12-07) file signature A {magic number}. [{Jargon File}] file system (FS, or "filesystem") 1. A system for organizing {directories} and {files}, generally in terms of how it is implemented in the {disk operating system}. E.g., "The {Macintosh file system} is just dandy as long as you don't have to interface it with any other file systems". 2. The collection of files and directories stored on a given drive (floppy drive, hard drive, disk {partition}, {logical} drive, {RAM drive}, etc.). E.g., "mount attaches a named file system to the file system hierarchy at the pathname location directory [...]" -- {Unix manual page} for "mount(8)". As an extension of this sense, "file system" is sometimes used to refer to the representatation of the file system's organisation (e.g. its {file allocation table}) as opposed the actual content of the files in the file system. {Unix manual page}: fs(5), mount(8). (1997-04-10) file transfer Copying a {file} from one computer to another over a computer {network}. See also {File Transfer Protocol}, {Kermit}, {Network File System}, {rcp}, {uucp}, {XMODEM}, {ZMODEM}. (1997-04-10) File Transfer Protocol (FTP) A {client-server} protocol which allows a user on one computer to transfer files to and from another computer over a {TCP/IP} network. Also the client program the user executes to transfer files. It is defined in {STD 9}, {RFC 959}. See also {anonymous FTP}, {FSP}, {TFTP}. {Unix manual page}: ftp(1). (1994-12-01) file type The kind of data stored in a file. Most modern {operating systems} use the {filename extension} to determine the file type though some store this information elsewhere in the {file system}. The file type is used to choose an appropriate icon to represent the file in a {GUI} and the correct {application} with which to view, edit, run, or print the file. Different operating systems support different sets of file types though most agree on a large common set and allow arbitrary new types to be defined. See also {MIME}. [URL of list of file types?] (1997-02-13) filing system {file system} filk /filk/ [SF fandom, where a typo for "folk" was adopted as a new word] A popular or folk song with lyrics revised or completely new lyrics, intended for humorous effect when read, and/or to be sung late at night at SF conventions. There is a flourishing subgenre of these called "computer filks", written by hackers and often containing rather sophisticated technical humour. See {double bucky} for an example. Compare {grilf}, {hing} and {newsfroup}. [{Jargon File}] fill-out form A type of {user interface} used, for example, on the {World-Wide Web}, to organise a set of questions or options for the user so that it resembles a traditional paper form that is filled out. Typical query types are: fill-in-the-blank (text), menu of options, select zero or more, or select exactly one ("{radio buttons}"). Most {World-Wide Web} {browsers} support fill-out forms. {Overview (http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/fill-out-forms/overview.html)}. (1998-03-24) film at 11 (MIT, in parody of US TV newscasters) 1. Used in conversation to announce ordinary events, with a sarcastic implication that these events are earth-shattering. "{ITS} crashes; film at 11." "Bug found in scheduler; film at 11." 2. Also widely used outside MIT to indicate that additional information will be available at some future time, *without* the implication of anything particularly ordinary about the referenced event. For example, "The mail file server died this morning; we found garbage all over the root directory. Film at 11." would indicate that a major failure had occurred but that the people working on it have no additional information about it as yet; use of the phrase in this way suggests gently that the problem is liable to be fixed more quickly if the people doing the fixing can spend time doing the fixing rather than responding to questions, the answers to which will appear on the normal "11:00 news", if people will just be patient. [{Jargon File}] (1998-03-24) FILO {stack} Filtabyte An {Ethernet controller} card made by {LRT} based on the {LANCE} and {SIA}. It uses {DMA}. Its {Ethernet address} can be changed by software. (1994-12-01) filter 1. (Originally {Unix}, now also {MS-DOS}) A program that processes an input data stream into an output data stream in some well-defined way, and does no I/O to anywhere else except possibly on error conditions; one designed to be used as a stage in a {pipeline} (see {plumbing}). Compare {sponge}. 2. ({functional programming}) A {higher-order function} which takes a {predicate} and a list and returns those elements of the list for which the predicate is true. In {Haskell}: filter p [] = [] filter p (x:xs) = if p x then x : rest else rest where rest = filter p xs See also {filter promotion}. [{Jargon File}] filter promotion In a generate and test algorithm, combining part of the filter with the generator in order to reduce the number of potential solutions generated. A trivial example: filter (< 100) [1..1000] ==> [1..99] where [1..n] generates the list of integers from 1 to n. Here the filter has been combined completely with the generator. This is an example of {fusion}. FIMS Form Interface Management System. Finagle's Law The generalised or "folk" version of {Murphy's Law}, fully named "Finagle's Law of Dynamic Negatives" and usually rendered "Anything that can go wrong, will". One variant favoured among hackers is "The perversity of the Universe tends towards a maximum". The label "Finagle's Law" was popularised by SF author Larry Niven in several stories depicting a frontier culture of asteroid miners; this "Belter" culture professed a religion and/or running joke involving the worship of the dread god Finagle and his mad prophet Murphy. [{Jargon File}] (1995-12-14) Financial Information eXchange (FIX) A {standard} messaging {protocol} for the {real-time} electronic exchange of securities transactions. [Reference?] (2001-05-14) fine adjuster A tool used for {percussive maintenance}, also known as a "hammer". (1999-01-15) fine grain {granularity} finger 1. (From {WAITS}, via {BSD Unix}) A program that displays information about a particular user or all users logged on the system, or a remote system. Finger typically shows full name, last login time, idle time, terminal line, and terminal location (where applicable). It may also display a {plan file} left by the user (see also {Hacking X for Y}). Some versions take a "-l" (long) argument which yeilds more information. 2. Any picture (composed of {ASCII art}) depicting "the finger". Originally a humorous component of one's {plan file} to deter the curious fingerer, it has entered the arsenal of some {flamer}s. [{Jargon File}] (1995-12-14) finger-pointing syndrome All-too-frequent result of {bugs}, especially in new or experimental configurations. The hardware vendor points a finger at the software. The software vendor points a finger at the hardware. All the poor users get is the finger. [{Jargon File}] (1995-12-14) finite {compact} Finite Automata {Finite State Machine} Finite Automaton {Finite State Machine} finite differencing {strength reduction} Finite State Automata {Finite State Machine} Finite State Automaton {Finite State Machine} Finite State Machine (FSM or "Finite State Automaton", "transducer") An {abstract machine} consisting of a set of {states} (including the initial state), a set of input events, a set of output events and a state transition function. The function takes the current state and an input event and returns the new set of output events and the next state. Some states may be designated as "terminal states". The state machine can also be viewed as a function which maps an ordered sequence of input events into a corresponding sequence of (sets of) output events. A {deterministic} FSM is one where the next state is uniquely determinied by a single input event. The next state of a {nondeterministic} FSM (NFA) depends not only on the current input event, but also on an arbitrary number of subsequent input events. Until these subsequent events occur it is not possible to determine which state the machine is in. It is possible to automatically translate some (but not all) nondeterministic FSMs into deterministic ones which will produce the same output given the same input. [Is this true?] In a probabilistic FSM [proper name?], there is a predetermined {probability} of each next state given the current state and input (compare {Markov chain}). The terms "acceptor" and "transducer" are used particularly in language theory where automata are often considered as {abstract machines} capable of recognising a language (certain sequences of input events). An acceptor has a single {Boolean} output and accepts or rejects the input sequence by outputting true or false respectively, whereas a transducer translates the input into a sequence of output events. FSMs are used in {computability theory} and in some practical applications such as {regular expressions} and digital logic design. See also {state transition diagram}, {Turing Machine}. [J.H. Conway, "regular algebra and finite machines", 1971, Eds Chapman & Hall]. [S.C. Kleene, "Representation of events in nerve nets and finite automata", 1956, Automata Studies. Princeton]. [Hopcroft & Ullman, 1979, "Introduction to automata theory, languages and computations", Addison-Wesley]. [M. Crochemore "tranducters and repetitions", Theoritical. Comp. Sc. 46, 1986]. (2000-10-29) finn To pull rank on somebody based on the amount of time one has spent on {IRC}. The term derives from the fact that IRC was originally written in Finland in 1987. [{Jargon File}] (2000-08-05) FIPS {Federal Information Processing Standards} FIR 1. {Finite Impulse Response} (filter). 2. Fast Infrared. {Infrared} standard from {IrDA}, part of {IrDA Data}. FIR supports {synchronous} communications at 4 Mbps (and 1.115 Mbps?), at a distance of up to 1 metre. (1999-10-14) firebottle {electron tube} firefighting 1. What sysadmins have to do to correct sudden operational problems. An opposite of hacking. "Been hacking your new newsreader?" "No, a power glitch hosed the network and I spent the whole afternoon fighting fires." 2. The act of throwing lots of manpower and late nights at a project, especially to get it out before deadline. See also {gang bang}, {Mongolian Hordes technique}; however, the term "firefighting" connotes that the effort is going into chasing bugs rather than adding features. (1994-12-01) firehose syndrome In mainstream folklore it is observed that trying to drink from a firehose can be a good way to rip your lips off. On computer networks, the absence or failure of flow control mechanisms can lead to situations in which the sending system sprays a massive flood of packets at an unfortunate receiving system, more than it can handle. Compare {overrun}, {buffer overflow}. [{Jargon File}] firewall 1. {firewall code}. 2. {firewall machine}. firewall code 1. The code you put in a system (say, a telephone switch) to make sure that the users can't do any damage. Since users always want to be able to do everything but never want to suffer for any mistakes, the construction of a firewall is a question not only of defensive coding but also of interface presentation, so that users don't even get curious about those corners of a system where they can burn themselves. 2. Any sanity check inserted to catch a {can't happen} error. Wise programmers often change code to fix a bug twice: once to fix the bug, and once to insert a firewall which would have arrested the bug before it did quite as much damage. [{Jargon File}] firewall machine A dedicated gateway machine with special security precautions on it, used to service outside network, especially {Internet}, connections and dial-in lines. The idea is to protect a cluster of more loosely administered machines hidden behind it from {crackers}. The typical firewall is an inexpensive {microprocessor}-based {Unix} machine with no critical data, with modems and public network ports on it, but just one carefully watched connection back to the rest of the cluster. The special precautions may include threat monitoring, {call-back}, and even a complete {iron box} keyable to particular incoming IDs or activity patterns. Firewalls often run {proxy gateways}. Synonym {flytrap}, {Venus flytrap}. (1997-06-08) FireWire {High Performance Serial Bus} fireworks mode The mode a machine is sometimes said to be in when it is performing a {crash and burn} operation. [{Jargon File}] Firmware Software stored in read-only memory (ROM) or programmable ROM (PROM). Easier to change than hardware but harder than software stored on disk. Firmware is often responsible for the behaviour of a system when it is first switched on. A typical example would be a "monitor" program in a microcomputer which loads the full operating system from disk or from a network and then passes control to it. firmy {stiffy} first class module A {module} that is a {first class data object} of the {programming language}, e.g. a {record} containing {functions}. In a {functional language}, it is standard to have first class programs, so program building blocks can have the same status. {Claus Reinke's Virtual Bookshelf (http://www.informatik.uni-kiel.de/~cr/bib/bookshelf/Modules.html)}. {Mark Jones' home page (http://www.cs.nott.ac.uk/Department/Staff/mpj/)}. (1997-06-17) First Fit A {resource} allocation scheme (usually for {memory}). First Fit fits data into memory by scanning from the beginning of available memory to the end, until the first free space which is at least big enough to accept the data is found. This space is then allocated to the data. Any left over becomes a smaller, separate free space. If the data to be allocated is bigger than the biggest free space, the request cannot be met, and an error is generated. Compare {Best Fit}. (1997-06-02) first generation computer A prototype computer based on {vacuum tubes} and other esoteric technologies. Chronologically, any computer designed before the mid-1950s. Examples include {Howard Aiken}'s {Mark 1} (1944), Maunchly and Eckert's {ENIAC} (1946), and the {IAS} computer. (1996-11-22) first generation language Raw {machine code}. When computers were first "programmed" from an input device, rather than by being rewired, they were fed input in the form of numbers, which they then interpreted as commands. This was really low level, and a program fragment might look like "010307 010307". Almost no one programs in machine language anymore, because translators are nearly trivial to write. (1994-12-01) first-in first-out (FIFO, or "queue") A data structure or hardware buffer from which items are taken out in the same order they were put in. Also known as a "shelf" from the analogy with pushing items onto one end of a shelf so that they fall off the other. A FIFO is useful for buffering a stream of data between a sender and receiver which are not synchronised - i.e. not sending and receiving at exactly the same rate. Obviously if the rates differ by too much in one direction for too long then the FIFO will become either full ({block}ing the sender) or empty ({block}ing the receiver). A {Unix} {pipe} is a common example of a FIFO. A FIFO might be (but isn't ever?) called a LILO - last-in last-out. The opposite of a FIFO is a LIFO (last-in first-out) or "{stack}". (1999-12-06) first normal form {database normalisation} first-order Not {higher-order}. (1995-03-06) first-order logic The language describing the truth of mathematical {formula}s. Formulas describe properties of terms and have a truth value. The following are atomic formulas: True False p(t1,..tn) where t1,..,tn are terms and p is a predicate. If F1, F2 and F3 are formulas and v is a variable then the following are compound formulas: F1 ^ F2 conjunction - true if both F1 and F2 are true, F1 V F2 disjunction - true if either or both are true, F1 => F2 implication - true if F1 is false or F2 is true, F1 is the antecedent, F2 is the consequent (sometimes written with a thin arrow), F1 <= F2 true if F1 is true or F2 is false, F1 == F2 true if F1 and F2 are both true or both false (normally written with a three line equivalence symbol) ~F1 negation - true if f1 is false (normally written as a dash '-' with a shorter vertical line hanging from its right hand end). For all v . F universal quantification - true if F is true for all values of v (normally written with an inverted A). Exists v . F existential quantification - true if there exists some value of v for which F is true. (Normally written with a reversed E). The operators ^ V => <= == ~ are called connectives. "For all" and "Exists" are {quantifier}s whose {scope} is F. A term is a mathematical expression involving numbers, operators, functions and variables. The "order" of a logic specifies what entities "For all" and "Exists" may quantify over. First-order logic can only quantify over sets of {atomic} {proposition}s. (E.g. For all p . p => p). Second-order logic can quantify over functions on propositions, and higher-order logic can quantify over any type of entity. The sets over which quantifiers operate are usually implicit but can be deduced from well-formedness constraints. In first-order logic quantifiers always range over ALL the elements of the domain of discourse. By contrast, second-order logic allows one to quantify over subsets of M. ["The Realm of First-Order Logic", Jon Barwise, Handbook of Mathematical Logic (Barwise, ed., North Holland, NYC, 1977)]. (1995-05-02) First Party DMA {bus mastering} fish (Adelaide University, Australia) 1. Another {metasyntactic variable}. See {foo}. Derived originally from the Monty Python skit in the middle of "The Meaning of Life" entitled "Find the Fish". 2. microfiche. A microfiche file cabinet may be referred to as a "fish tank". [{Jargon File}] (1994-12-01) FISH queue (By analogy with {FIFO} - first-in, first-out) first in, still here. A joking way of pointing out that processing of a particular sequence of events or requests has stopped dead. Also "FISH mode" and "FISHnet"; the latter may be applied to any network that is running really slowly or exhibiting extreme flakiness. [{Jargon File}] (1994-12-01) FITNR ({Thinking Machines, Inc.}) Fixed In the Next Release. A written-only notation attached to bug reports. Often wishful thinking. [{Jargon File}] (1994-12-01) FITS Flexible Image Transport System. The standard data interchange and archive format of the astronomy community. (1994-12-01) FIX 1. {Federal Information Exchange}. 2. {Financial Information eXchange}. (2001-05-14) fix 1. The {fixed point} {combinator}. Called Y in {combinatory logic}. Fix is a {higher-order function} which returns a fixed point of its argument (which is a function). fix :: (a -> a) -> a fix f = f (fix f) Which satisfies the equation fix f = x such that f x = x. Somewhat surprisingly, fix can be defined as the non-recursive {lambda abstraction}: fix = \ h . (\ x . h (x x)) (\ x . h (x x)) Since this involves self-application, it has an {infinite type}. A function defined by f x1 .. xN = E can be expressed as f = fix (\ f . \ x1 ... \ xN . E) = (\ f . \ x1 ... \xN . E) (fix (\ f . \ x1 ... \ xN . E)) = let f = (fix (\ f . \ x1 ... \ xN . E)) in \ x1 ... \xN . E If f does not occur {free} in E (i.e. it is not {recursive}) then this reduces to simply f = \ x1 ... \ xN . E In the case where N = 0 and f is free in E, this defines an infinite data object, e.g. ones = fix (\ ones . 1 : ones) = (\ ones . 1 : ones) (fix (\ ones . 1 : ones)) = 1 : (fix (\ ones . 1 : ones)) = 1 : 1 : ... Fix f is also sometimes written as mu f where mu is the Greek letter or alternatively, if f = \ x . E, written as mu x . E. Compare {quine}. [{Jargon File}] (1995-04-13) 2. {bug fix}. (1998-06-25) fixed disk A {hard disk} which is not a {removable disk}. fixed point The fixed point of a function, f is any value, x for which f x = x. A function may have any number of fixed points from none (e.g. f x = x+1) to infinitely many (e.g. f x = x). The {fixed point combinator}, written as either "fix" or "Y" will return the fixed point of a function. See also {least fixed point}. (1995-04-13) fixed-point A number representation scheme where a number R is represented by an {integer} N such that R=N*B, where B is the (assumed) base of the representation. On computers with no {floating-point unit} fixed-point calculations can be significantly faster as all the operations are basically integer operations. Apart from that, fixed-point representation has the advantage of having uniform density, i.e., the smallest resolvable difference of the representation is B throughout the representable range, in sharp contrast to {floating-point} representations. (1998-05-18) fixed point combinator (Y) The name used in {combinatory logic} for the {fixed point} function, also written as "{fix}". (1994-10-20) fixed-width {record} FIXME A standard tag often put in {comments} near a piece of code that needs work. The point of doing so is that a {grep} or a similar pattern-matching tool can find all such places quickly. This is common in {GNU} code. Compare {XXX}. [{Jargon File}] (2001-03-16) fixpoint {fixed point} fj The {country code} for Fiji. (1999-01-27) Fjolnir An Icelandic programming language for the {IBM PC} from the {University of Iceland}. [Pall Haraldsson ]. (1995-03-17) fk The {country code} for the Falkland Islands (Malvinas). (1999-01-27) FL Function Level. John Backus's successor to {FP}, developed ca. 1985. FL is {dynamically typed} and adds {higher-order function}s, {exception}s, {user-defined type}s and other features. ["FL Language Manual, Parts 1 & 2", J. Backus et al, IBM Research Report RJ 7100 (1989)]. (1994-10-20) F+L Functions plus Logic. Equational clauses within function definitions to solve for {logic variable} bindings. ["Functions plus Logic in Theory and Practice", R.B. Kieburtz, Feb 1987, unpublished]. (1994-10-20) flag 1. A variable or quantity that can take on one of two values; a bit, particularly one that is used to indicate one of two outcomes or is used to control which of two things is to be done. "This flag controls whether to clear the screen before printing the message." "The program status word contains several flag bits." See also {hidden flag}, {mode bit}. 2. {command line option}. [{Jargon File}] (1998-05-02) flag day A software change that is neither forward- nor backward-compatible, and which is costly to make and costly to reverse. E.g. "Can we install that without causing a flag day for all users?" This term has nothing to do with the use of the word {flag} to mean a variable that has two values. It came into use when a massive change was made to the {Multics} {time-sharing} system to convert from the old {ASCII} code to the new one; this was scheduled for Flag Day (a US holiday), June 14, 1966. See also {backward combatability}, {lock-in}. [{Jargon File}] (1998-01-15) FLAIR An early system on the {IBM 650}. [Listed in CACM 2(5):16 (May 1959)]. (1995-03-17) flaky (Or "flakey") Subject to frequent {lossage}. This use is of course related to the common slang use of the word to describe a person as eccentric, crazy, or just unreliable. A system that is flaky is working, sort of - enough that you are tempted to try to use it - but fails frequently enough that the odds in favour of finishing what you start are low. Commonwealth hackish prefers {dodgy}. [{Jargon File}] (1996-01-05) flamage {flame} flame To rant, to speak or write incessantly and/or rabidly on some relatively uninteresting subject or with a patently ridiculous attitude or with hostility towards a particular person or group of people. "Flame" is used as a verb ("Don't flame me for this, but..."), a flame is a single flaming message, and "flamage" /flay'm*j/ the content. Flamage may occur in any medium (e.g. spoken, {electronic mail}, {Usenet} news, {World-Wide Web}). Sometimes a flame will be delimited in text by marks such as "...". The term was probably independently invented at several different places. Mark L. Levinson says, "When I joined the Harvard student radio station (WHRB) in 1966, the terms flame and flamer were already well established there to refer to impolite ranting and to those who performed it. Communication among the students who worked at the station was by means of what today you might call a paper-based Usenet group. Everyone wrote comments to one another in a large ledger. Documentary evidence for the early use of flame/flamer is probably still there for anyone fanatical enough to research it." It is reported that "flaming" was in use to mean something like "interminably drawn-out semi-serious discussions" (late-night bull sessions) at Carleton College during 1968-1971. {Usenetter} Marc Ramsey, who was at {WPI} from 1972 to 1976, says: "I am 99% certain that the use of "flame" originated at WPI. Those who made a nuisance of themselves insisting that they needed to use a {TTY} for "real work" came to be known as "flaming asshole lusers". Other particularly annoying people became "flaming asshole ravers", which shortened to "flaming ravers", and ultimately "flamers". I remember someone picking up on the Human Torch pun, but I don't think "flame on/off" was ever much used at WPI." See also {asbestos}. It is possible that the hackish sense of "flame" is much older than that. The poet Chaucer was also what passed for a wizard hacker in his time; he wrote a treatise on the astrolabe, the most advanced computing device of the day. In Chaucer's "Troilus and Cressida", Cressida laments her inability to grasp the proof of a particular mathematical theorem; her uncle Pandarus then observes that it's called "the fleminge of wrecches." This phrase seems to have been intended in context as "that which puts the wretches to flight" but was probably just as ambiguous in Middle English as "the flaming of wretches" would be today. One suspects that Chaucer would feel right at home on {Usenet}. [{Jargon File}] (2001-03-11) flame bait A {Usenet} posting or other message intended to trigger a {flame war}, or one that invites {flames} in reply. [{Jargon File}] (1998-05-27) flame off {flame on} flame on To begin or continue to {flame}. The punning reference to Marvel Comics's Human Torch is no longer widely recognised. The phrase "flame on" may actually precede the flame, in which case "flame off" will follow it. See {rave}, {burble}. [{Jargon File}] (1996-10-29) flamer (Or "pain in the net") One who habitually {flames}. Said especially of obnoxious {Usenet} personalities. [{Jargon File}] (1996-08-26) flame war An acrimonious dispute conducted on a public electronic forum such as {Usenet}. See {flame}. [{Jargon File}] (1998-05-27) flaming {flame} FLAP A {symbolic mathematics} package for {IBM 360}. ["FLAP Programmer's Manual", A.H. Morris Jr., TR-2558 (1971) US Naval Weapons Lab]. [Sammet 1969, p. 506]. [{Jargon File}] (1994-10-17) flap 1. To unload a {DECtape} (so it goes flap, flap, flap). Old-time {hackers} at {MIT} tell of the days when the disk was device 0 and {microtapes} were 1, 2, etc. and attempting to flap device 0 would instead start a motor banging inside a cabinet near the disk. The term is used, by extension, for unloading any magnetic tape. See also {macrotape}. Modern {cartridge tapes} no longer actually flap, but the usage has remained. The term could well be re-applied to {DEC}'s {TK50} cartridge tape drive, a spectacularly misengineered contraption which makes a loud flapping sound, almost like an old reel-type lawnmower, in one of its many tape-eating failure modes. 2. See {flapping router}. [{Jargon File}] (1997-06-17) flapping router A {router} that transmits routing updates alternately advertising a destination network first via one route, then via a different route. Flapping routers are identified on more advanced {protocol analysers} such as the Network General (TM) Sniffer. (1999-08-24) flarp /flarp/ [Rutgers University] Yet another {metasyntactic variable} (see {foo}). Among those who use it, it is associated with a legend that any program not containing the word "flarp" somewhere will not work. The legend is discreetly silent on the reliability of programs which *do* contain the magic word. [{Jargon File}] Flash (Or "Shockwave Flash") A file format for delivering {interactive} {vector graphics} and animation on the {World-Wide Web}, developed by {Macromedia}. {Home (http://www.macromedia.com/software/flash/)}. (1998-07-07) flash 1. A program which allows one to flood another {Unix} user's {terminal} with {garbage}, through exploiting a common security hole in the victim's {host}'s {talk} {daemon}. Users with "messages off" (mesg n) and users on systems running fixed talk daemons, or not running talk daemons at all, are immune. (1996-09-08) 2. See {Flash Erasable Programmable Read-Only Memory}. (1997-02-02) Flash EPROM {Flash Erasable Programmable Read-Only Memory} Flash Erasable Programmable Read-Only Memory (FEPROM, "flash memory") A kind of {non-volatile storage} device similar to {EEPROM}, but where erasing can only be done in blocks or the entire chip. In 1995 this relatively new technology started to replace {EPROM}s because reprogramming could be done with the chip installed. At that time FEPROMs could be rewritten about 1000 times. Like {EAPROM} and ferro-magnetic material, FEPROMs rely on {FN tunnelling}. Some flash memory supports block erase. (1995-04-22) flash memory {Flash Erasable Programmable Read-Only Memory} Flash ROM {Flash Erasable Programmable Read-Only Memory} flat 1. Lacking any complex internal structure. "That {bitty box} has only a flat file system, not a hierarchical one." The verb form is {flatten}. Usually used pejoratively (at least with respect to file systems). 2. Said of a memory architecture like that of the {VAX} or {Motorola} {680x0} that is one big linear address space (typically with each possible value of a processor register corresponding to a unique address). This is a {Good Thing}. The opposite is a "{segmented}" architecture like that of the {Intel 80x86} in which addresses are composed from a base-register/offset pair. Segmented designs are generally considered cretinous. 3. A flat {domain} is one where all elements except {bottom} are incomparable (equally well defined). E.g. the integers. [{Jargon File}] flat address space The memory architecture in which any memory location can be selected from a single contiguous block by a single integer offset. Almost all popular {processors} have a flat address space, but the {Intel x86} family has a {segmented address space}. A flat address space greatly simplifies programming because of the simple correspondence between addresses (pointers) and integers. (1996-09-10) flat ASCII (Or "plain ASCII") Said of a text file that contains only 7-bit {ASCII} characters and uses only ASCII-standard {control characters} (that is, has no embedded codes specific to a particular text formatter {markup} language, or output device, and no {meta}-characters). Compare {flat file}. [{Jargon File}] (1996-01-26) flat file A single file containing {flat ASCII} representing or encoding some structure, e.g. of a {database}, tree, or network. Flat files can be processed with general purpose tools (e.g. {awk} or {Perl}) and {text editors} but are often less efficient than some kind of {binary file} if they must be {parsed} repeatedly by a program. Flat files are more portable between different {operating systems} and {application programs} than binary files, and are more easily transmitted in {electronic mail}. See also {flatten}, {sharchive}. [{Jargon File}] (1996-01-26) flatten To remove structural information, especially to filter something with an implicit tree structure into a simple sequence of leaves; also tends to imply mapping to {flat ASCII}. "This code flattens an expression with parentheses into an equivalent {canonical} form." [{Jargon File}] flat thunk A software mechanism that allows a {Win32} application to load and call a 16-bit {DLL}, or a 16-bit application to load and call a Win32 DLL. See also {generic thunk}, {universal thunk}. (1999-04-05) flavor US spelling of "{flavour}". [{Jargon File}] (1997-03-18) flavorful {flavour} Flavors {Lisp} with {object-oriented} features by D. Weinreb and D.A. Moon , 1980. ["Object-Oriented Programming with Flavors", D.A. Moon, SIGPLAN Notices 21(11):1-8 (OOPSLA '86) (Nov 1986)]. (1994-12-01) flavour (US: flavor) 1. Variety, type, kind. "DDT commands come in two flavors." "These lights come in two flavors, big red ones and small green ones." See {vanilla}. 2. The attribute that causes something to be {flavourful}. Usually used in the phrase "yields additional flavour". "This convention yields additional flavor by allowing one to print text either right-side-up or upside-down." See {vanilla}. This usage was certainly reinforced by the terminology of quantum chromodynamics, in which quarks (the constituents of, e.g. protons) come in six flavors (up, down, strange, charm, top, bottom) and three colours (red, blue, green), however, hackish use of "flavor" at {MIT} predated QCD. 3. The term for "{class}" (in the {object-oriented} sense) in the {LISP Machine} {Flavors} system. Though the Flavors design has been superseded (notably by the {Common LISP} {CLOS} facility), the term "flavor" is still used as a general synonym for "class" by some {Lisp} hackers. (1994-11-01) Fleng A parallel logic language. ["Massively Parallel Implementation of Flat GHC on the Connection Machine", M. Nilsson, Proc Intl Conf on 5th Gen Comp Sys, 1988, pp.1031-1040]. FLEX 1. Faster LEX. A reimplementation of the {Lex} {scanner} generator by Vern Paxson . {Flex++} produces {C++} and {aflex} produces {Ada}. FTP flex-2.3.8.tar.Z from a {GNU archive site} or {(ftp://ftp.ee.lbl.gov/pub/flex-2.4.3.tar.Z)}. ["The FLEX Scanner Generator", Vern Paxson , Systems Engineering, LBL, CA]. 2. A {real-time} language for dynamic environments. ["FLEX: Towards Flexible Real-Time Programs", K. Lin et al, Computer Langs 16(1):65-79, Jan 1991]. 3. An early {object-oriented} language developed for the {FLEX} machine by {Alan Kay} in about 1967. The FLEX language was a simplification of {Simula} and a predecessor of {Smalltalk}. (1995-03-29) Flex A system developed by Ian Currie (Iain?) at the (then) {Royal Signals and Radar Establishment} at Malvern in the late 1970s. The hardware was custom and {microprogrammable}, with an {operating system}, (modular) {compiler}, editor, {garbage collector} and {filing system} all written in {Algol-68}. Flex was also re-implemented on the {Perq}(?). [I. F. Currie and others, "Flex Firmware", Technical Report, RSRE, Number 81009, 1981]. [I. F. Currie, "In Praise of Procedures", RSRE, 1982]. (1997-11-17) Flex++ {GNU}'s {Flex} {scanner generator} retargeted to {C++} by Alain Coetmeur . Version 3.0. {(ftp://iecc.com/pub/file/flex++.tar.gz)}. {(ftp://iecc.com/pub/file/misc++.tar.gz)}. {(ftp://ftp.th-darmstadt.de/pub/programming/languages/C++/tools/flex++-3.0.tar.gz)}. (1993-07-08) Flex 2 A preprocessor designed to make {Fortran} look more like {Pascal}. (About 1980). DECUS? flib /flib/ ({WPI}) A meta-number, said to be an integer between 3 and 4. See {grix}, {N}. (1995-01-31) FLIC Functional Language Intermediate Code. An {intermediate language} used in the {Chalmers} {LML} compiler. ["FLIC - A Functional Language Intermediate Code", S. Peyton Jones et al, RR 148, U Warwick, Sep 1989]. (1995-01-31) FLIP 1. An early {assembly language} on the {G-15}. [Listed in CACM 2(5):16 (May 1959)]. 2. ["FLIP User's Manual", G. Kahn, TR 5, INRIA 1981]. 3. Formal LIst Processor. An early language for {pattern-matching} on {Lisp} structures, similar to {CONVERT}. ["FLIP, A Format List Processor", W. Teitelman, Memo MAC-M-263, MIT 1966]. (1995-01-31) Flip Chip Pin Grid Array (FC-PGA) The package of certain {Intel} {Celeron} and {Pentium III} processors. FC-PGA processors fit into {Socket 370} {motherboard} sockets. The Flip Chip {Pin Grid Array} is is similar to {PPGA}, except that the {silicon} {core} is facing up and the {heat slug} is exposed. FC-PGA packaging is used by Pentium III processors, and Celeron 566 processors onwards. Earlier Celeron processors used {PPGA} packaging. Celeron processors are also available in {Slot 1} {SEPP} packaging and Pentium III processors in Slot 1 {SECC2} packaging. Adapters are available to allow a PPGA Celeron to plug into a Slot 1 connector. (2000-08-26) flip-flop A digital logic circuit that can be in one of two states which it switches (or "{toggles}") between under control of its inputs. It can thus be considered as a one bit memory. Three types of flip-flop are common: the {SR flip-flop}, the {JK flip-flop} and the {D-type flip-flop} (or {latch}). Early literature refers to the "Eccles-Jordan circuit" and the "Eccles-Jordan binary counter", using two {vacuum tubes} as the active (amplifying) elements for each {bit} of information storage. Later implementations using {bipolar transistors} could operate at up to 20 million state transitions per second as early as 1963. (1995-11-11) flippy /flip'ee/ A single-sided {floppy disk} altered for double-sided use by addition of a second write-notch, so called because it must be flipped over for the second side (the "flip side") to be accessible. Used in the {Commodore 1541} and elsewhere. No longer common. [{Jargon File}] (2000-03-07) FLIP-SPUR Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959). floating-point A number representation consisting of a {mantissa}, M, an {exponent}, E, and an (assumed) {radix} (or "base") . The number represented is M*R^E where R is the radix - usually ten but sometimes 2. Many different representations are used for the mantissa and exponent themselves. The {IEEE} specify a {standard} representation which is used by many hardware floating-point systems. See also {floating-point accelerator}, {floating-point unit}. {Normalisation} is the process of converting a floating point number into {canonical} form where any number other than zero has a mantissa whose first digit is non-zero. Opposite: {fixed-point}. (1995-03-21) floating-point accelerator (FPA) Additional hardware to perform functions on floating-point numbers such as addition, multiplication, logarithms, exponentials, trigonometric functions and various kinds of rounding and error detection. A floating-point accelerator often functions as a {co-processor} to the {CPU}. The term "floating-point accelerator" suggests a physically larger system, often an extra circuit board, whereas a "floating-point unit" is probably a single chip or even part of a chip. (1994-12-01) Floating-Point SPECbaserate {SPECrate_base_fp92} Floating-Point SPECbaseratio {SPECbase_fp92} Floating-Point SPECrate {SPECrate_fp92} Floating-Point SPECratio {SPECfp92} floating point underflow {underflow} Floating-Point Unit (FPU) A {floating-point accelerator}, usually in a single {integrated circuit}, possible on the same IC as the {central processing unit}. (1994-10-27) floating underflow {underflow} F-Logic An {object-oriented} language and {deductive database} system. ["F-Logic: A Higher-Order Language for Reasoning about Objects, Inheritance and Scheme", ACM SIGMOD May 1989, pp. 134-146]. (1994-10-20) flood On a real-time network (whether at the level of {TCP/IP}, or at the level of, say, {IRC}), to send a huge amount of data to another user (or a group of users, in a channel) in an attempt to annoy him, lock his terminal, or to overflow his network buffer and thus lose his network connection. The basic principles of flooding are that you should have better network {bandwidth} than the person you're trying to flood, and that what you do to flood them (e.g., generate ping requests) should be *less* resource-expensive for your machine to produce than for the victim's machine to deal with. There is also the corrolary that you should avoid being caught. Failure to follow these principles regularly produces hilarious results, e.g., an IRC user flooding himself off the network while his intended victim is unharmed, the attacker's flood attempt being detected, and him being banned from the network in semi-perpetuity. See also {pingflood}, {clonebot} and {botwar}. [{Jargon File}] (1997-04-07) FLOP 1. An early system on the {IBM 701}. [Listed in CACM 2(5):16 (May 1959)]. (1994-11-14) 2. Erroneous singular of {FLOPS}. Floppy A {Fortran} coding convention checker. A later version can generate {HTML}. See also {Flow}. ffccc posted to comp.sources.misc volume 12. (1996-08-23) floppy {floppy disk} floppy disk (Or "floppy", "diskette") A small, portable plastic disk coated in a magnetisable substance used for storing computer data, readable by a computer with a floppy disk drive. The physical size of disks has shrunk from the early 8 inch, to 5 1/4 inch ("minifloppy") to 3 1/2 inch ("microfloppy") while the data capacity has risen. These disks are known as "floppy" disks (or diskettes) because the disk is flexible and the read/write head is in physical contact with the surface of the disk in contrast to "{hard disks}" (or winchesters) which are rigid and rely on a small fixed gap between the disk surface and the heads. Floppies may be either single-sided or double-sided. 3.5 inch floppies are less floppy than the larger disks because they come in a stiff plastic "envelope" or case, hence the alternative names "stiffy" or "crunchy" sometimes used to distinguish them from the floppier kind. The following formats are used on {IBM PC}s and elsewhere: Capacity Density Width 360K double 5.25" 720K double 3.5" 1.2M high 5.25" 1.44M high 3.5" Double denisty and high density are usually abbreviated DD and HD. HD 3.5 inch disks have a second hole in the envelope and an overlapping "HD" logo. (1996-08-23) floppy disk drive {disk drive} floppy drive {disk drive} FLOPS {Floating-point} operations per second. Flops The {MFLOPS} {benchmark}. floptical (From "floppy disk" and "optical") A {floppy disk} which uses an optical tracking mechanism to improve the positioning accuracy of an ordinary magnetic head, thereby allowing more tracks and greater density. {Storage media FAQ (http://www.cis.ohio-state.edu/hypertext/faq/usenet/arch-storage/part1/faq.html)}. (1995-03-15) Flow A companion utility to {Floppy} by Julian James Bunn . Flow allows the user to produce various reports on the structure of {Fortran 77} code, such as {flow diagram}s and common block tables. It runs under {VMS}, {Unix}, {CMS}. Posted to comp.sources.misc volume 31. (1995-03-14) flow chart An archaic form of visual control-flow specification employing arrows and "speech balloons" of various shapes. Hackers never use flow charts, consider them extremely silly, and associate them with {COBOL} programmers, {card walloper}s, and other lower forms of life. This attitude follows from the observations that flow charts (at least from a hacker's point of view) are no easier to read than code, are less precise, and tend to fall out of sync with the code (so that they either obfuscate it rather than explaining it, or require extra maintenance effort that doesn't improve the code). See also {Program Design Language}. [{Jargon File}] (1994-12-01) flow control The collection of techniques used in serial communications to stop the sender sending data until the receiver can accept it. This may be either {software flow control} or {hardware flow control}. The receiver typically has a fixed size {buffer} into which received data is written as soon as it is received. When the amount of buffered data exceeds a "high water mark", the receiver will signal to the transmitter to stop transmitting until the process reading the data has read sufficient data from the buffer that it has reached its "low water mark", at which point the receiver signals to the transmitter to resume transmission. (1995-03-22) flower key {feature key} FLOW-MATIC or FLOWMATIC (Originally B-0) Possibly the first English-like {DP} language. Developed at Remington Rand in 1958 for the {UNIVAC} I. [Sammet 1969, pp. 316-324]. (1994-10-24) flow of control {control flow} FLPL Fortran List Processing Language. A package of {Fortran} subroutines for handling lists by H. Gelernter et al, ca 1960. [Sammet 1969, p. 388]. (1994-10-24) FLUB The {abstract machine} for {bootstrapping} {STAGE2}. [Mentioned in Machine Oriented Higher Level Languages, W. van der Poel, N-H 1974, p. 271]. (1995-03-13) Fluegelman, Andrew {Andrew Fluegelman} flush 1. To delete something, usually superfluous, or to abort an operation. "Flush" was standard {ITS} terminology for aborting an output operation. One spoke of the text that would have been printed, but was not, as having been flushed. It is speculated that this term arose from a vivid image of flushing unwanted characters by hosing down the internal output buffer, washing the characters away before they could be printed. 2. To force temporarily buffered data to be written to more permanent memory. E.g. flushing buffered disk I/O to disk, as with {C}'s {standard I/O} library "fflush(3)" call. This sense was in use among {BLISS} programmers at {DEC} and on {Honeywell} and {IBM} machines as far back as 1965. Another example of this usage is flushing a {cache} on a {context switch} where modified data stored in the cace which belongs to one processes must be written out to main memory so that the cache can be used by another process. [{Jargon File}] Flynn's taxonomy A classification of computer architectures based on the number of streams of instructions and data: {Single instruction/single data} stream (SISD) - a sequential computer. Multiple instruction/single data stream (MISD) - unusual. {Single instruction/multiple data} streams (SIMD) - e.g. an {array processor}. {Multiple instruction/multiple data} streams (MIMD) - multiple autonomous processors simultaneously executing different instructions on different data. ["A Survey of Parallel Computer Architectures", Duncan, Ralph, IEEE Computer. February 1990, pp. 5-16]. (1994-11-08) [Flynn's original paper?] fly page /fli:'payj/ {banner}. [{Jargon File}] Flyspeck 3 Standard name for any {font} that is so tiny as to be unreadable (by analogy with names like "Helvetica 10" for 10-point Helvetica). Legal boilerplate is usually printed in Flyspeck 3. (1994-11-08) flytrap {firewall machine} FM 1. {Frequency Modulation}. 2. Fucking Manual, a back-formation from {RTFM}. Used to refer to the manual itself. 3. Fucking Magic, in the sense of {black magic}. (2001-04-30) fm The {country code} for the Federated States of Micronesia. Heavily used for {vanity domains} by FM radio stations. (1999-01-27) FMPL {Frobozz Magic Programming Language} FMQ A {BNF}-based {paser generator} with an error corrector generator, by Jon Mauney. {(ftp://csczar.ncsu.edu/)} (1990-03-31) FMS {Flexible Manufacturing System} (factory automation). FMV {full-motion video} FNAL Fermi National Accelerator Laboratory (Illinois, USA). FNC {Federal Networking Council} fnord 1. A word used in {electronic mail} and {news} messages to tag utterances as surrealist mind-play or humour, especially in connection with {Discordianism} and elaborate conspiracy theories. "I heard that David Koresh is sharing an apartment in Argentina with Hitler. (Fnord.)" "Where can I fnord get the Principia Discordia from?" 2. A {metasyntactic variable}, commonly used by hackers with ties to {Discordianism} or the {Church of the SubGenius}. The word "fnord" was invented in the "Illuminatus!" trilogy by Robert Shea and Robert Anton Wilson. [{Jargon File}] (1995-02-28) FN tunnelling {Fowler-Nordheim tunnelling} fo The {country code} for the Faroe Islands. (1999-01-27) FOAD fuck off and die. (1998-01-18) FOAF [{Usenet}] Friend Of A Friend. The source of an unverified, possibly untrue story. This term was not originated by hackers (it is used in Jan Brunvand's books on urban folklore), but is much better recognised on {Usenet} and elsewhere than in mainstream English. [{Jargon File}] FOCAL 1. FOrmula CALculator. An interactive system written by Rick Merrill of {DEC} in 1969 for {PDP-5} and {PDP-8}. It was a descendant of {AID}/{JOSS}. Versions: FOCAL-69, FOCAL-1971, FOCAL-11 (for {PDP-11} under {RT-11}). (1994-12-21) 2. Forty-One CAlculator Language. The programming language of the HP-41 calculator line. (1994-12-21) FOCL An {expert system shell} and {backward chaining} rule {interpreter} for the {Macintosh}. {(ftp://ics.uci.edu/pub/machine-learning-programs/KR-FOCL-ES.cpt.hqx)} E-mail: . (1994-12-21) FOCUS A hierarchical {database} language from {Information Builders, Inc.} (1994-12-21) focus group An event where market researchers meet (potential) users of a product to try to plan how to improve it. (1999-02-24) FOD /fod/ [Abbreviation for "Finger of Death", originally a spell-name from fantasy gaming] To terminate with extreme prejudice and with no regard for other people. From {MUD}s where the wizard command "FOD " results in the immediate and total death of , usually as punishment for obnoxious behaviour. This usage migrated to other circumstances, such as "I'm going to fod the process that is burning all the cycles." Compare {gun}. In aviation, FOD means Foreign Object Damage, e.g. what happens when a jet engine sucks up a rock on the runway or a bird in flight. Finger of Death is a distressingly apt description of what this generally does to the engine. [{Jargon File}] FOIL File Oriented Interpretive Language. CAI language. ["FOIL - A File Oriented Interpretive Language", J.C. Hesselbart, Proc ACM 23rd National Conf (1968)]. FoIP {Fax over IP} FOIRL {Fiber Optic InterRepeater Link} fold case {case sensitivity} folder A {directory} in the sense of a collection of computer {files}. The term is more common in systems such as the {Macintosh} or {Windows 95} which have a {graphical user interface} and provide a graphical {file browser} in which directories are traditionally depicted as folders (like small briefcases). (1997-03-20) FOLDOC {Free On-line Dictionary of Computing} followup On {Usenet}, a {posting} generated in response to another posting (as opposed to a {reply}, which goes by e-mail rather than being broadcast). Followups include the ID of the {parent message} in their headers; smart news-readers can use this information to present {Usenet} news in "conversation" sequence rather than order-of-arrival. See {thread}. [{Jargon File}] font A set of {glyphs} ({images}) representing the {characters} from some particular {character set} in a particular size and {typeface}. The image of each character may be encoded either as a {bitmap} (in a {bitmap font}) or by a higher-level description in terms of lines and areas (an {outline font}). There are several different computer representations for fonts, the most widely known are {Adobe Systems, Inc.}'s {PostScript} font definitions and {Apple}'s {TrueType}. {Window systems} can display different fonts on the screen and print them. [Other types of font?] (2001-04-27) fontology ({XEROX PARC}) The body of knowledge dealing with the construction and use of new {font}s (e.g. for window systems and typesetting software). It has been said that fontology recapitulates file-ogeny. Unfortunately, this reference to the embryological dictum that "Ontogeny recapitulates phylogeny" is not merely a joke. On the Macintosh, for example, System 7 has to go through contortions to compensate for an earlier design error that created a whole different set of abstractions for fonts parallel to "files" and "folders" - ESR [{Jargon File}] (1994-12-01) foo /foo/ A sample name for absolutely anything, especially programs and files (especially {scratch files}). First on the standard list of {metasyntactic variables} used in {syntax} examples. See also {bar}, {baz}, {qux}, {quux}, {corge}, {grault}, {garply}, {waldo}, {fred}, {plugh}, {xyzzy}, {thud}. The etymology of "foo" is obscure. When used in connection with "bar" it is generally traced to the WWII-era Army slang acronym {FUBAR}, later bowdlerised to {foobar}. However, the use of the word "foo" itself has more complicated antecedents, including a long history in comic strips and cartoons. "FOO" often appeared in the "Smokey Stover" comic strip by Bill Holman. This surrealist strip about a fireman appeared in various American comics including "Everybody's" between about 1930 and 1952. FOO was often included on licence plates of cars and in nonsense sayings in the background of some frames such as "He who foos last foos best" or "Many smoke but foo men chew". Allegedly, "FOO" and "BAR" also occurred in Walt Kelly's "Pogo" strips. In the 1938 cartoon "The Daffy Doc", a very early version of Daffy Duck holds up a sign saying "SILENCE IS FOO!". Oddly, this seems to refer to some approving or positive affirmative use of foo. It has been suggested that this might be related to the Chinese word "fu" (sometimes transliterated "foo"), which can mean "happiness" when spoken with the proper tone (the lion-dog guardians flanking the steps of many Chinese restaurants are properly called "fu dogs"). Earlier versions of this entry suggested the possibility that hacker usage actually sprang from "FOO, Lampoons and Parody", the title of a comic book first issued in September 1958, a joint project of Charles and Robert Crumb. Though Robert Crumb (then in his mid-teens) later became one of the most important and influential artists in underground comics, this venture was hardly a success; indeed, the brothers later burned most of the existing copies in disgust. The title FOO was featured in large letters on the front cover. However, very few copies of this comic actually circulated, and students of Crumb's "oeuvre" have established that this title was a reference to the earlier Smokey Stover comics. An old-time member reports that in the 1959 "Dictionary of the TMRC Language", compiled at {TMRC} there was an entry that went something like this: FOO: The first syllable of the sacred chant phrase "FOO MANE PADME HUM." Our first obligation is to keep the foo counters turning. For more about the legendary foo counters, see {TMRC}. Almost the entire staff of what became the {MIT} {AI LAB} was involved with TMRC, and probably picked the word up there. Another correspondant cites the nautical construction "foo-foo" (or "poo-poo"), used to refer to something effeminate or some technical thing whose name has been forgotten, e.g. "foo-foo box", "foo-foo valve". This was common on ships by the early nineteenth century. Very probably, hackish "foo" had no single origin and derives through all these channels from Yiddish "feh" and/or English "fooey". [{Jargon File}] (1998-04-16) foobar Another common {metasyntactic variable}; see {foo}. Hackers do *not* generally use this to mean {FUBAR} in either the slang or jargon sense. [{Jargon File}] foogol A tiny {ALGOL}-like language by Per Lindberg, based on the {VALGOL} I compiler, G.A. Edgar, DDJ May 1985. Runs on {vaxen}. Posted to comp.sources.Unix archive volume 8. {(ftp://ftp.wustl.edu/systems/amiga/fish/fish/ff066)} FOOL Fool's Lisp. A small {Scheme} {interpreter}. {(ftp://scam.berkeley.edu/src/local/fools.tar.Z)} (1994-10-04) fool file A term found on {Usenet} for a notional repository of all the most dramatically and abysmally stupid utterances ever. An entire subgenre of {sig blocks} consists of the header "From the fool file:" followed by some quote the poster wishes to represent as an immortal gem of dimwittery; for this usage to be really effective, the quote has to be so obviously wrong as to be laughable. More than one {Usenetter} has achieved an unwanted notoriety by being quoted in this way. (2001-01-05) Fools' Lisp A small {Scheme} {interpreter} by Jonathan Lee . Version 1.3.2 is R4RS conformant. It runs on {Sun-3}, {Sun-4}, {Decstation}, {VAX} ({Ultrix}), {Sequent}, {Apollo}. {(ftp://scam.berkeley.edu/src/local/fools.tar.Z)} (1991-10-31) Foonly 1. The {PDP-10} successor that was to have been built by the Super Foonly project at the {Stanford Artificial Intelligence Laboratory} along with a new operating system. The intention was to leapfrog from the old DEC {time-sharing} system SAIL was then running to a new generation, bypassing TENEX which at that time was the {ARPANET} {standard}. {ARPA} funding for both the Super Foonly and the new operating system was cut in 1974. Most of the design team went to DEC and contributed greatly to the design of the PDP-10 model KL10. 2. The name of the company formed by Dave Poole, one of the principal Super Foonly designers, and one of hackerdom's more colourful personalities. Many people remember the parrot which sat on Poole's shoulder and was a regular companion. 3. Any of the machines built by Poole's company. The first was the F-1 (a.k.a. Super Foonly), which was the computational engine used to create the graphics in the movie "TRON". The F-1 was the fastest PDP-10 ever built, but only one was ever made. The effort drained Foonly of its financial resources, and the company turned towards building smaller, slower, and much less expensive machines. Unfortunately, these ran not the popular {TOPS-20} but a TENEX variant called Foonex; this seriously limited their market. Also, the machines shipped were actually wire-wrapped engineering prototypes requiring individual attention from more than usually competent site personnel, and thus had significant reliability problems. Poole's legendary temper and unwillingness to suffer fools gladly did not help matters. By the time of the Jupiter project cancellation in 1983, Foonly's proposal to build another F-1 was eclipsed by the {Mars}, and the company never quite recovered. See the {Mars} entry for the continuation and moral of this story. [{Jargon File}] FOOP OBJ2 plus object-orientation. "Extensions and Foundations for Object-Oriented Programming", J. Goguen et al, in Research Directions in Object-Oriented Programming, B. Shriver et al eds, MIT Press 1987. footprint 1. The floor or desk area taken up by a piece of hardware. 2. The amount of {disk} or {RAM} taken up by a program or file. 3. ({IBM}) The {audit trail} left by a crashed program (often "footprints"). See also {toeprint}. [{Jargon File}] (1995-04-25) for {for loop} fora {forum} FORC Early system on IBM 704. Listed in CACM 2(5):16 (May 1959). Force A {dBASE} dialect for {MS-DOS}. ForceOne A programming language by Andrew K. Wright. ["Polymorphism in the Compiled Language ForceOne", G.V. Cormack et al, Proc 20th Annual Hawaii Intl Conf on System Sciences, 1987, pp.284-292]. ["Design of the Programming Language ForceOne", A.K. Wright, MS Thesis, U Waterloo 1987]. (1994-10-24) ForceTwo An unofficial successor to {ForceOne} by Andrew K. Wright. foreground (Unix) On a {time-sharing} system, a task executing in foreground is one able to accept input from and return output to the user in contrast to one running in the {background}. Nowadays this term is primarily associated with {Unix}, but it appears first to have been used in this sense on {OS/360}. Normally, there is only one foreground task per terminal (or terminal window). Having multiple processes simultaneously reading the keyboard is confusing. [{Jargon File}] (1994-10-24) foreign key {Attributes} contained within a database {record} (or other collection of related data items) which uniquely identify another record, but not the one within which they are contained. A foreign key is a reference from one record to another. (1997-04-28) Foresight A software product from {Nu Thena} providing graphical modelling tools for high level system design and {simulation}. (1994-10-24) for free Said of a capability of a programming language or hardware equipment that is available by its design without needing cleverness to implement: "In APL, we get the matrix operations for free." "And owing to the way revisions are stored in this system, you get revision trees for free." The term usually refers to a serendipitous feature of doing things a certain way (compare {big win}), but it may refer to an intentional but secondary feature. [{Jargon File}] (1994-12-14) fork A {Unix} {system call} used by a {process} (the "parent") to make a copy (the "child") of itself. The child process is identical to the parent except it has a different {process identifier} and a zero return value from the fork call. It is assumed to have used no resources. A fork followed by an {exec} can be used to start a different process but this can be inefficient and some later Unix variants provide {vfork} as an alternative mechanism for this. See also {fork bomb}. (1996-12-08) fork bomb A particular species of {wabbit} that can be written in one line of {C}: main() {for(;;)fork();} or {shell}: $0 & $0 & on any {Unix} system, or occasionally created by an egregious coding bug. A fork bomb process "explodes" by {recursive}ly spawning copies of itself using the {Unix} {system call} "{fork}(2)". Eventually it eats all the process table entries and effectively wedges the system. Fortunately, fork bombs are relatively easy to spot and kill, so creating one deliberately seldom accomplishes more than to bring the just wrath of the {god}s down upon the perpetrator. See also {logic bomb}. [{Jargon File}] (1994-12-14) forked (Unix; probably after "fucked") Terminally slow, or dead. Originated when one system was slowed to a snail's pace by an inadvertent {fork bomb}. [{Jargon File}] (1994-12-14) for loop A {loop} construct found in many {imperative} programming languages which repeatedly executes some instructions while a condition is true. In {C}, the for loop is written in the form; for (INITIALISATION; CONDITION; AFTER) STATEMENT; where INITIALISATION is an expression that is evaluated once before the loop, CONDITION is evaluated before each iteration and the loop exits if it is false, AFTER is evaluated after each iteration, and STATEMENT is any statement including a {compound statement} within braces "{..}" that is executed if CONDITION is true. For example: int i; for (i = 0; i < 10; i++) { printf("Hello\n"); } prints "Hello" 10 times. The for loop is an alternative way of writing a {while loop} that is convenient because the loop control logic is collected in a single place. It is also closely related to the {repeat loop}. (1999-07-07) FORM A system written by Jos Vermaseren in 1989 for fast handling of very large-scale {symbolic mathematics} problems. FORM is a descendant of {Schoonschip} and is available for many {personal computer}s and {workstation}s. {(ftp://acm.princeton.edu/)}, {(ftp://nikhefh.nikhef.nl/)}. Mailing list: . (1995-04-12) FORMAC FORmula MAnipulation Compiler. J. Sammet & Tobey, IBM Boston APD, 1962. An extension of {Fortran} for {symbolic mathematics}. Versions: PL/I-FORMAC and FORMAC73. ["Introduction to FORMAC", J.E. Sammet et al, IEEE Trans Elec Comp (Aug 1964)]. [Sammet 1969, pp. 474-491]. FORMAL 1. FORmula MAnipulation Language. An early {Fortran} extension for {symbolic mathematics}. ["FORMAL, A Formula Manipulation Language", C.K. Mesztenyi, Computer Note CN-1, CS Dept, U Maryland (Jan 1971)]. 2. A data manipulation language for nonprogrammers from {IBM} {LASC}. ["FORMAL: A Forms-Oriented and Visual-Directed Application System", N.C. Shu, IEEE Computer 18(8):38-49 (1985)]. (1994-12-06) Formal Description Technique (FDT) A {formal method} for developing telecomunications services and {protocols}. FDTs range from abstract to implementation-oriented descriptions. All FDTs offer the means for producing unambiguous descriptions of {OSI} services and {protocols} in a more precise and comprehensive way than {natural language} descriptions. They provide a foundation for analysis and verification of a description. The target of analysis and verification may vary from abstract properties to concrete properties. Natural language descriptions remain an essential adjunct to formal description, enabling an unfarmiliar reader to gain rapid insight into the structure and function of services and protocols. Examples of FDTs are {LOTOS}, {Z}, {SDL}, and {Estelle}. [ISO/IEC DTR10167: "Guidelines for the application of {Estelle}, {LOTOS} and {SDL}"]. (1994-12-06) formal methods Mathematically based techniques for the {specification}, development and verification of software and hardware systems. {Referentially transparent} languages are amenable to symbolic manipulation allowing {program transformation} (e.g. changing a clear inefficient specification into an obscure but efficient program) and proof of correctness. {Oxford FM archive (http://www.comlab.ox.ac.uk/archive/formal-methods.html)} (1996-05-15) Formal Object Role Modeling Language (FORML) A {CASE} language? (1997-04-12) formal review A technical review conducted with the customer including the types of reviews called for in DOD-STD-2167A (Preliminary Design Review, Critical Design Review, etc.) (1996-05-15) FORMAT-Fortran {Fortran Matrix Abstraction Technique Fortran} Formatting Output Specification Instance (FOSI) An old {SGML} {DTD} {standard} for {document management} in the US military, to be replaced (soon after Oct 1996?) by the {ISO} standard {DSSSL}. (1996-10-07) Formes An {object-oriented} language for music composition and synthesis, written in {VLISP}. ["Formes: Composition and Scheduling of Processes", X. Rodet & P. Cointe, Computer Music J 8(3):32-50 (Fall 1984)]. (1996-06-24) form factor The type of packaging of a processor {integrated circuit}, e.g. {PPGA}, {FC-PGA}. More generally, a term popular among {marketroids} in 1998, denoting the shape of something designed. (2000-08-26) form feed (FF, Control-L, {ASCII} 12) The character used to start a new page on a printer. This is done by "feeding" a new page (or "form") through the printer. (1996-06-24) form function The shape of something designed. This term is currently (Feb 1998) in vogue among {marketroids}. (1998-02-11) FORML 1. {Formal Object Role Modeling Language}. 2. {Forth Modification Lab}. (1997-04-12) forms 1. {fill-out form}. 2. (Xforms) A {GUI} component library for {X11}. (1998-03-24) formula 1. In logic, a sequence of symbols representing terms, {predicate}s, {connective}s and {quantifier}s which is either true or false. 2. FORTH Music Language. An extension of {FORTH} with concurrent note-playing processes. Runs on {Macintosh} and {Atari ST} with {MIDI} output. ["Formula: A Programming Language for Expressive Computer Music", D.P. Anderson et al Computer 24(7):12 (Jul 1991)]. 3. Preprocessor language for the {Acorn Archimedes}, allowing inline high-level statements to be entered in an assembly program. Written in {nawk}. Formula ALGOL An {ALGOL} extension for {symbolic mathematics}, strings and lists, developed by A.J. Perlis and R. Iturriaga at {Carnegie} for the {CDC G-20} in 1962. ["An Extension of ALGOL for Manipulating Formulae", A.J. Perlis et al, CACM 7(2):127-130 (Feb 1964)]. [Sammet 1969, p. 583]. (1995-02-15) Forsythe A descendent of {Algol 60}, intended to be as uniform and general as possible, while retaining the basic character of its progenitor. Forsythe features {higher-order procedure}s and {intersection type}s. {(ftp://e.ergo.cs.cmu.edu/)} ["Preliminary Design of the Programming Language Forsythe", J.C. Reynolds, CMU-CS-88-159, 1988]. FORTH 1. An interactive extensible language using {postfix syntax} and a data stack, developed by Charles H. Moore in the 1960s. FORTH is highly user-configurable and there are many different implementations, the following description is of a typical default configuration. Forth programs are structured as lists of "words" - FORTH's term which encompasses language keywords, primitives and user-defined {subroutines}. Forth takes the idea of subroutines to an extreme - nearly everything is a subroutine. A word is any string of characters except the separator which defaults to space. Numbers are treated specially. Words are read one at a time from the input stream and either executed immediately ("interpretive execution") or compiled as part of the definition of a new word. The sequential nature of list execution and the implicit use of the data stack (numbers appearing in the lists are pushed to the stack as they are encountered) imply postfix syntax. Although postfix notation is initially difficult, experienced users find it simple and efficient. Words appearing in executable lists may be "{primitives}" (simple {assembly language} operations), names of previously compiled procedures or other special words. A procedure definition is introduced by ":" and ended with ";" and is compiled as it is read. Most Forth dialects include the source language structures BEGIN-AGAIN, BEGIN-WHILE-REPEAT, BEGIN-UNTIL, DO-LOOP, and IF-ELSE-THEN, and others can be added by the user. These are "compiling structures" which may only occur in a procedure definition. FORTH can include in-line {assembly language} between "CODE" and "ENDCODE" or similar constructs. Forth primitives are written entirely in {assembly language}, secondaries contain a mixture. In fact code in-lining is the basis of compilation in some implementations. Once assembled, primitives are used exactly like other words. A significant difference in behaviour can arise, however, from the fact that primitives end with a jump to "NEXT", the entry point of some code called the sequencer, whereas non-primitives end with the address of the "EXIT" primitive. The EXIT code includes the scheduler in some {multi-tasking} systems so a process can be {deschedule}d after executing a non-primitive, but not after a primitive. Forth implementations differ widely. Implementation techniques include {threaded code}, dedicated Forth processors, {macros} at various levels, or interpreters written in another language such as {C}. Some implementations provide {real-time} response, user-defined data structures, {multitasking}, {floating-point} arithmetic, and/or {virtual memory}. Some Forth systems support virtual memory without specific hardware support like {MMU}s. However, Forth virtual memory is usually only a sort of extended data space and does not usually support executable code. FORTH does not distinguish between {operating system} calls and the language. Commands relating to I/O, {file systems} and {virtual memory} are part of the same language as the words for arithmetic, memory access, loops, IF statements, and the user's application. Many Forth systems provide user-declared "vocabularies" which allow the same word to have different meanings in different contexts. Within one vocabulary, re-defining a word causes the previous definition to be hidden from the interpreter (and therefore the compiler), but not from previous definitions. FORTH was first used to guide the telescope at NRAO, Kitt Peak. Moore considered it to be a {fourth-generation language} but his {operating system} wouldn't let him use six letters in a program name, so FOURTH became FORTH. Versions include fig-FORTH, FORTH 79 and FORTH 83. {FAQs (http://www.complang.tuwien.ac.at/forth/faq/faq-general-2.html)}. {ANS Forth standard, dpANS6 (http://www.taygeta.com/forth/dpans.html)}. FORTH Interest Group, Box 1105, San Carlos CA 94070. See also {51forth}, {F68K}, {cforth}, {E-Forth}, {FORML}, {TILE Forth}. [Leo Brodie, "Starting Forth"]. [Leo Brodie, "Thinking Forth"]. [Jack Woehr, "Forth, the New Model"]. [R.G. Loeliger, "Threaded Interpretive Languages"]. 2. {FOundation for Research and Technology - Hellas}. (1997-04-16) for The Rest Of Them {for The Rest Of Us} for The Rest Of Us (From the {Macintosh} slogan "The computer for the rest of us") 1. Used to describe a {spiffy} product whose affordability shames other comparable products, or (more often) used sarcastically to describe {spiffy} but very overpriced products. 2. Describes a program with a limited interface, deliberately limited capabilities, non-{orthogonal}ity, inability to compose primitives, or any other limitation designed to not "confuse" a naïve user. This places an upper bound on how far that user can go before the program begins to get in the way of the task instead of helping accomplish it. Used in reference to {Macintosh} software which doesn't provide obvious capabilities because it is thought that the poor {luser} might not be able to handle them. Becomes "the rest of *them*" when used in third-party reference; thus, "Yes, it is an attractive program, but it's designed for The Rest Of Them" means a program that superficially looks neat but has no depth beyond the surface flash. See also {point-and-drool interface}, {user-friendly}. [{Jargon File}] (2000-08-08) Forth Modification Lab (FORML) A {Forth} conference held every November on the West coast of the USA (). (1997-04-12) Fortran (Formula Translation) The first and, for a long time, the most widely used programming language for numerical and scientific applications. The original versions lacked {recursive} procedures and {block structure} and had a line-oriented {syntax} in which certain columns had special significance. There have been a great many versions. The name is often written "FORTRAN", harking back to the days before computers were taught about lower case, but {ANSI} decreed (circa. 1985 via the ANSI {FORTRAN} Technical Committee {TC} that it should be "Fortran". See also: {Fortrash}. [Was {Fortran I} the first version?] (2000-07-07) Fortran 66 Fortran IV standardised. ASA X3.9-1966. Fortran 77 A popular version of {Fortran} with Block IF, PARAMETER and SAVE statements added, but still no WHILE. It has fixed-length character strings, format-free I/O, and {array}s with lower bounds. [ANSI X3.9-1978]. {GNU version (ftp://gnu.org/pub/gnu/g77)} {Amiga version (ftp://ftp.cso.uiuc.edu/amiga/fish/ff470/BCF)}. (1994-12-16) Fortran 90 (Previously "Fortran 8x" and "Fortran Extended") An extensive enlargement of {Fortran 77}. Fortran 90 has {derived type}s, {assumed shape array}s, {array section}s, functions returning arrays, case statement, {module} subprograms and internal subprograms, optional and keyword subprogram arguments, {recursion}, and {dynamic allocation}. It is defined in ISO 1539:1991, soon to be adopted by {ANSI}. ["Fortran 90 Explained", M. Metcalf et al, Oxford University Press 1990]. (1994-12-16) Fortran Automatic Symbol Translator (FAST) An {assembly language} for the {IBM 650} by {MITRE Corporation}. [CACM 2(5):16 (May 1959)]. [Sammet 1969, p.526]. (1994-11-09) Fortran D A {data-parallel} {Fortran} developed by {Ken Kennedy} at {Rice University}. ["Fortran D Language Specification", G. Fox et al, TR 90079, Rice U, March 1991]. E-mail: Theresa Chapman . (1994-12-16) Fortran I An early version of {Fortran} designed by {John Backus} at {IBM} for the {IBM 704}. The design was begun in 1954 and a {compiler} released in April 1957. [Was this the first Fortran?] (1995-02-15) Fortran II 1958. Added subroutines. Fortran III This was only distributed to ca. 20 sites. See Wexelblat. Fortran IV IBM 1962. For the IBM 7090/94. Many implementations went well beyond the original definition. Fortran-Linda Scientific Computer Assocs . Fortran M Parallel extensions to Fortran with processes and channels by Ian Foster . ["Fortran M: A Language for Modular Parallel Programming", I. Foster et al, MCS-P327-0992, ANL, 1992]. (1994-10-26) Fortran Matrix Abstraction Technique Fortran (FORMAT-Fortran) A language for manipulation, printing and plotting of large matrices. ["FORMAT-FORTRAN Matrix Abstraction Technique (Vol. V)" AFFDL-TR-66-207, Douglas Aircraft Co. Oct 1968]. (1996-09-29) Fortran-Plus Fortran for the DAP parallel machine, implements many Fortran 90 features. FORTRANSIT Fortran Internal Translator. A subset of {Fortran} translated into {IT} on the {IBM 650}. It was in use in the late 1950s and early 1960s. Compilation took place in several steps (using {punched card}s as the only input/output media). FORTRANSIT was converted to IT {Internal Translator} which was converted into {SOAP} and thence to {machine code}. In the SOAP -> machine code step, the user had to include card decks for all the subroutines used in his FORTRANSIT program (including e.g. square root, sine, and even basic {floating point} routines). [Sammet 1969, p. 141]. (1995-03-30) Fortran V Preliminary work on adding character handling to {Fortran} by {IBM} ca. 1962. This name as never really used. (1994-10-26) Fortran VI {IBM}'s internal name for early {PL/I} work ca. 1963. [Sammet 1969, p. 540]. (1994-10-25) Fortrash /for'trash/ Hackerism for the {Fortran} language, referring to its primitive design, gross and irregular {syntax}, limited {control constructs}, and slippery, exception-filled {semantics}. [{Jargon File}] (1994-10-26) FORTRUNCIBLE A cross between Fortran and RUNCIBLE for the IBM 650. Listed in CACM 2(5):16 (May 1959). fortune cookie ({WAITS}, via the {Unix} "fortune" program) A quotation, item of trivia, joke, or maxim selected at random from a collection (the "{cookie file}") and printed to the user's tty at login time or (less commonly) at logout time. There was a fortune program on {TOPS-20}. [First program?] [{Jargon File}] (1995-02-14) forum (Plural "fora" or "forums") Any discussion group accessible through a dial-in {BBS} (e.g. {GEnie}, {CI$}), a {mailing list}, or a {Usenet} {newsgroup} (see {network, the}). A forum functions much like a {bulletin board}; users submit {postings} for all to read and discussion ensues. Contrast real-time {chat} or point-to-point personal {e-mail}. [{Jargon File}] (1998-01-18) for values of A common rhetorical maneuver at {MIT} is to use any of the canonical {random numbers} as placeholders for variables. "The max function takes 42 arguments, for arbitrary values of 42". "There are 69 ways to leave your lover, for 69 = 50". This is especially likely when the speaker has uttered a random number and realises that it was not recognised as such, but even "non-random" numbers are occasionally used in this fashion. A related joke is that pi equals 3 - for small values of pi and large values of 3. This usage probably derives from the programming language MAD ({Michigan Algorithm Decoder}), an {ALGOL}-like language that was the most common choice among mainstream (non-hacker) users at {MIT} in the mid-1960s. It had a {control structure} FOR VALUES OF X = 3, 7, 99 DO ... that would repeat the indicated instructions for each value in the list (unlike the usual FOR that generates an {arithmetic sequence} of values). MAD is long extinct, but similar for-constructs still flourish (e.g. in {Unix}'s {shell} languages). [{Jargon File}] (1994-12-16) forward (verb) To send (a copy of) an {electronic mail} message that you have received on to one or more other {addressees}. Most e-mail systems can be configured to do this automatically to all or certain messages, e.g. {Unix} {sendmail} looks for a ".forward" file in the recipient's {home directory}. A {mailing list} server (or "{mail exploder}") is designed to forward messages automatically to lists of people. {Unix manual page}: aliases(5). (2000-03-22) forward analysis An analysis which determines properties of the output of a program from properties of the inputs. forward chaining A data-driven technique used in constructing {goal}s or reaching {inference}s derived from a set of {fact}s. Forward chaining is the basis of {production system}s. Oppose {backward chaining}. (1994-10-28) forward compatibility {forward compatible} forward compatible A system is forward compatible if it is designed to be {compatible} with planned later versions of itself. See also {extensible}. Compare: {backward compatible}. (1999-11-03) forward delta The delta which, when combined with a version, creates a child version. See change management forward engineering The traditional process of moving from high-level abstractions and logical, implementation-independent designs to the physical implementation of a system. Contrast {reverse engineering}. (1996-10-02) Forward Error Correction (FEC) A class of methods for controling errors in a one-way {communication} system. FEC sends extra information along with the data, which can be used by the receiver to check and correct the data. A {CPU} writing data to {RAM} is a kind of one-way communication - see {error correcting memory} and {error checking and correction}. (1996-10-02) forwards compatibility {forward compatible} forwards compatible {forward compatible} FORWISS Bayerische Forschungszentrum fuer Wissensbasierte Systeme (Bavarian research centre for knowledge-based systems) in Passau. For Your Information (FYI) A subseries of {RFC}s that are not technical {standard}s or descriptions of {protocol}s. FYIs convey general information about topics related to {TCP/IP} or the {Internet}. See also {STD}. (1994-10-26) FOSI {Formatting Output Specification Instance} FOSIL {Fredette's Operating System Interface Language} fossil 1. In software, a misfeature that becomes understandable only in historical context, as a remnant of times past retained so as not to break compatibility. Example: the retention of {octal} as default base for string escapes in {C}, in spite of the better match of {hexadecimal} to ASCII and modern byte-addressable architectures. See {dusty deck}. 2. More restrictively, a feature with past but no present utility. Example: the force-all-caps (LCASE) bits in the V7 and {BSD} Unix tty driver, designed for use with monocase terminals. (In a perversion of the usual backward-compatibility goal, this functionality has actually been expanded and renamed in some later {USG Unix} releases as the IUCLC and OLCUC bits.) 3. The FOSSIL (Fido/Opus/Seadog Standard Interface Level) driver specification for serial-port access to replace the {brain-dead} routines in the IBM PC ROMs. Fossils are used by most {MS-DOS} {BBS} software in preference to the "supported" ROM routines, which do not support interrupt-driven operation or setting speeds above 9600; the use of a semistandard FOSSIL library is preferable to the {bare metal} serial port programming otherwise required. Since the FOSSIL specification allows additional functionality to be hooked in, drivers that use the {hook} but do not provide serial-port access themselves are named with a modifier, as in "video fossil". [{Jargon File}] foundation The axiom of foundation states that the membership relation is well founded, i.e. that any non-empty collection Y of sets has a member y which is disjoint from Y. This rules out sets which contain themselves (directly or indirectly). FOundation for Research and Technology - Hellas (FORTH) A small Greek software and research company associated with the Institute of Computer Science, Address: Science and Technology Park of Crete, Vassilika Vouton, P.O.Box 1385 GR 711 10 Heraklion, Crete, Greece. Telephone: +30 (81) 39 16 00, Fax: +30 (81) 39 16 01. (1997-04-12) four-colour glossies 1. Literature created by {marketroid}s that allegedly contains technical specs but which is in fact as superficial as possible without being totally {content-free}. "Forget the four-colour glossies, give me the tech ref manuals." Often applied as an indication of superficiality even when the material is printed on ordinary paper in black and white. Four-colour-glossy manuals are *never* useful for finding a problem. 2. [rare] Applied by extension to manual pages that don't contain enough information to diagnose why the program doesn't produce the expected or desired output. four colour map theorem (Or "four colour theorem") The theorem stating that if the plane is divided into connected regions which are to be coloured so that no two adjacent regions have the same colour (as when colouring countries on a map of the world), it is never necessary to use more than four colours. The proof, due to Appel and Haken, attained notoriety by using a computer to check tens of thousands of cases and is thus not humanly checkable, even in principle. Some thought that this brought the philosophical status of the proof into doubt. There are now rumours of a simpler proof, not requiring the use of a computer. See also {chromatic number} (1995-03-25) four colour theorem {four colour map theorem} Fourier transform A technique for expressing a waveform as a weighted sum of sines and cosines. Computers generally rely on the version known as {discrete Fourier transform}. Named after J. B. Joseph Fourier (1768 -- 1830). See also {wavelet}, {discrete cosine transform}. (1997-03-9) fourth generation computer A computer built using {Very Large Scale Integration} (VLSI) {integrated circuits}, especially a {microcomputer} based on a {microprocesseor}, or a {parallel processor} containing two to thousands of {CPU}s. VLSI made it routine to fabricate an entire CPU, main memory, or similar device with a single integrated circuit that can be mass produced at very low cost. This has resulted in new classes of machines such as {personal computers}, and high performance parallel processors that contains thousands of CPUs. (1996-11-22) fourth generation language An "application specific" language. The term was invented by Jim Martin to refer to non-procedural {high level language}s built around {database} systems. The first three generations were developed fairly quickly, but it was still frustrating, slow, and error prone to program computers, leading to the first "programming crisis", in which the amount of work that might be assigned to programmers greatly exceeded the amount of programmer time available to do it. Meanwhile, a lot of experience was gathered in certain areas, and it became clear that certain applications could be generalised by adding limited programming languages to them. Thus were born report-generator languages, which were fed a description of the data format and the report to generate and turned that into a {COBOL} (or other language) program which actually contained the commands to read and process the data and place the results on the page. Some other successful 4th-generation languages are: {database query language}s, e.g. {SQL}; {Focus}, {Metafont}, {PostScript}, {RPG-II}, {S}, {IDL-PV/WAVE}, {Gauss}, {Mathematica} and {data-stream language}s such as {AVS}, {APE}, {Iris Explorer}. fourth normal form {database normalisation} Fowler-Nordheim tunnelling (US: "tunneling") The quantum mechanical effect exploited in {EAPROM} and {Flash Erasable Programmable Read Only Memory}. It differs from {Frenkel-Pool Tunnelling} in that it does not rely on defects in the {semicondictor}. [More detail?] (1997-02-02) FoxBASE+ A {dBASE} III+-like product from {Fox Software}. [Features? Dates? Status?] (1997-11-18) FoxPRO A {dBASE} IV-like product originally from {Fox Software} which (well before 2000) mutated into {Microsoft} {Visual FoxPro}. [Features? Dates?] (2000-08-06) Fox Software Developers of {FoxBASE+} and {FoxPRO}. Fox Software merged with {Microsoft} around 1992. Addresss: Perrysburg, OH, USA. [More details?] (1997-11-18) FP 1. {functional programming}. 2. {floating-point}. 3. Functional Programming. A {combinator}-based {functional language} by John Backus stressing the use of {higher-order function}s. Implementation by Andy Valencia. {(ftp://apple.com/comp.sources.Unix/volume13)}. See also {FFP}, {FL}, {IFP}, {Berkeley FP}. ["Can Programming be Liberated From the von Neumann Style? A Functional Style and Its Algebra of Programs", John Backus, 1977 Turing Award Lecture, CACM 21(8):165-180 (Aug 1978)]. 4. {Function Point}. (1995-03-12) FP2 Functional Parallel Programming. A {term rewriting} language which unifies {functional programming} and {parallel programming}. Every object is a term and every computation is done by rewriting. Rewrite rules are used to specify {algebraic data type}s and parallel processes. ["Term Rewriting as a Basis for the Design of a Functional and Parallel Programming Language. A Case Study: The Language FP2", Ph. Jorrand in Fundamentals of Artificial Intelligence, LNCS 258, Springer 1986, pp. 221-276]. (1994-10-20) FPA 1. {floating-point accelerator}. 2. {Function Point Analysis}. fpc A translator from {Backus}'s {FP} to {C}. {(ftp://apple.com/comp.sources.Unix/Volume20)} FPGA {Field-Programmable Gate Array} FPLMTS {Future Public Land Mobile Telecommunications System}. FPM {Fast Page Mode Dynamic Random Access Memory} FP/M An {abstract machine} and intermediate language for {functional languages}, used to implement {Hope}. FP/M is an optimisation of the {SECD machine}. ["The Compilation of FP/M Programs into Conventional Machine Code", A.J. Field, Imperial College, London, 1985]. ["Functional Programming", A.J. Field & P.G. Harrison, A-W 1988]. (1994-10-20) FPM DRAM {Fast Page Mode Dynamic Random Access Memory} fprintf Variant of the {C} library routine {printf} which prints to a given {stream}. E.g. fprintf(stderr, "%s: can't open file \"%s\".", argv[0], argv[1]); which prints to the "{standard error}" output stream. (1995-04-25) fps {frames per second} FPU {floating-point unit} FQDN {fully qualified domain name} FQL A {functional database} language. ["An Implementation Technique for Database Query Languages", O.P. Buneman et al, ACM Trans Database Sys 7(2):164-186 (June 1982)]. (1995-04-27) fr The {country code} for France. (1999-01-27) fractal A fractal is a rough or fragmented geometric shape that can be subdivided in parts, each of which is (at least approximately) a smaller copy of the whole. Fractals are generally self-similar (bits look like the whole) and independent of scale (they look similar, no matter how close you zoom in). Many mathematical structures are fractals; e.g. {Sierpinski triangle}, {Koch snowflake}, {Peano curve}, {Mandelbrot set} and {Lorenz attractor}. Fractals also describe many real-world objects that do not have simple geometric shapes, such as clouds, mountains, turbulence, and coastlines. {Benoit Mandelbrot}, the discoverer of the {Mandelbrot set}, coined the term "fractal" in 1975 from the Latin fractus or "to break". He defines a fractal as a set for which the {Hausdorff Besicovich dimension} strictly exceeds the {topological dimension}. However, he is not satisfied with this definition as it excludes sets one would consider fractals. {sci.fractals FAQ (ftp://src.doc.ic.ac.uk/usenet/usenet-by-group/sci.fractals/)}. See also {fractal compression}, {fractal dimension}, {Iterated Function System}. {Usenet} newsgroups: {news:sci.fractals}, {news:alt.binaries.pictures.fractals}, {news:comp.graphics}. ["The Fractal Geometry of Nature", Benoit Mandelbrot]. [Are there non-self-similar fractals?] (1997-07-02) fractal compression A technique for encoding {images} using {fractals}. {Yuval Fisher's fractal image compression site (http://inls.ucsd.edu/y/Fractals/)}. [Summary?] (1998-03-27) fractal dimension A common type of fractal dimension is the Hausdorff-Besicovich Dimension, but there are several different ways of computing fractal dimension. Fractal dimension can be calculated by taking the limit of the quotient of the log change in object size and the log change in measurement scale, as the measurement scale approaches zero. The differences come in what is exactly meant by "object size" and what is meant by "measurement scale" and how to get an average number out of many different parts of a geometrical object. Fractal dimensions quantify the static *geometry* of an object. For example, consider a straight line. Now blow up the line by a factor of two. The line is now twice as long as before. Log 2 / Log 2 = 1, corresponding to dimension 1. Consider a square. Now blow up the square by a factor of two. The square is now 4 times as large as before (i.e. 4 original squares can be placed on the original square). Log 4 / log 2 = 2, corresponding to dimension 2 for the square. Consider a snowflake curve formed by repeatedly replacing ___ with _/\_, where each of the 4 new lines is 1/3 the length of the old line. Blowing up the snowflake curve by a factor of 3 results in a snowflake curve 4 times as large (one of the old snowflake curves can be placed on each of the 4 segments _/\_). Log 4 / log 3 = 1.261... Since the dimension 1.261 is larger than the dimension 1 of the lines making up the curve, the snowflake curve is a fractal. [sci.fractals FAQ]. FRAD {Frame Relay Access Device}. fragile {brittle} fragment {fragmentaton} fragmentation 1. {segmentation}. 2. The process, or result, of splitting a large area of free memory (on disk or in main memory) into smaller non-contiguous blocks. This happens after many blocks have been allocated and freed. For example, if there is 3 kilobytes of free space and two 1k blocks are allocated and then the first one (at the lowest address) is freed, then there will be 2k of free space split between the two 1k blocks. The maximum size block that could then be allocated would be 1k, even though there was 2k free. The solution is to "compact" the free space by moving the allocated blocks to one end (and thus the free space to the other). See {garbage collection}. FRAM {Ferroelectric Random Access Memory} frame 1. A {data link layer} "packet" which contains the header and trailer information required by the physical medium. That is, {network layer} {packets} are encapsulated to become frames. See also {datagram}, {encapsulation}, {packet}, {Maximum Transmission Unit}. 2. (language implementation) See {activation record}. 3. One complete scan of the active area of a {display screen}. Each frame consists of a number N of horizontal {scan lines}, each of which, on a computer display, consists of a number M of {pixels}. N is the {vertical resolution} of the display and M is the {horizontal resolution}. The rate at which the displayed image is updated is the {refresh rate} in frames per second. (2000-10-07) frame buffer Part of a video system in which an {image} is stored, {pixel} by pixel and which is used to refresh a {raster} image. The term "{video memory}" suggests a fairly static display whereas a frame buffer holds one frame from a sequence of frames forming a moving image. Frame buffers are found in {frame grabbers} and {time base correction} systems, for example. (1997-10-03) Frame Check Sequence (FCS) The extra characters added to a {frame} for {error detection and correction}(?). FCS is used in {X.25}, {HDLC}, {Frame Relay}, and other {data link layer} {protocols}. (1998-02-27) frame grabber A device that captures a single {frame} from an {analog} {video} signal (from a video camera or {VCR}) and stores it as a digital {image} under computer control. (1997-07-11) FrameKit A {frame language}. ["The FrameKit User's Guide", E. Nyberg, TR CMU- CMT-88-MEMO, CMU 1988]. (1994-10-20) FrameMaker A commercial document preparation program produced by {Frame Technology Corporation} who were taken over by {Adobe Systems, Inc.} in 1995/6. FrameMaker is available for a wide variety of {workstations} and is designed for technical and scientific documents. It uses a powerful system of templates and paragraph styles to control {WYSIWYG} formatting. It supports graphics, tables, and contents pages among other things. Version: FrameMaker 6, due April 2000. See also {Maker Interchange Format}. (2000-04-04) frame pointer A pointer to the current {activation record} in an implementation of a {block structured} language. (1994-10-20) frame rate The number of {frames} of an {animation} which are displayed every second, measured in frames per second (fps). The higher the frame rate, the smoother the animation will appear but the more processing power and system {bandwidth} is required. At less than 30 fps, the human eye can see the new pictures coming onto the screen. (2000-02-02) Frame Relay A {DTE}-{DCE} interface specification based on {LAPD} (Q.921), the {Integrated Services Digital Network} version of {LAPB} ({X.25} {data link layer}). A common specification was produced by a consortium of {StrataCom}, {Cisco}, {Digital}, and Northern Telecom. Frame Relay is the result of {wide area network}ing requirements for speed; {LAN}-{WAN} and LAN-LAN {internetworking}; "bursty" data communications; multiplicity of {protocol}s and {protocol transparency}. These requirements can be met with technology such as {optical fibre} lines, allowing higher speeds and fewer transmission errors; intelligent network end devices ({personal computers}, {workstations}, and {servers}); standardisation and adoption of ISDN protocols. Frame Relay could connect dedicated lines and {X.25} to {ATM}, {SMDS}, {BISDN} and other "{fast packet}" technologies. Frame Relay uses the same basic {data link layer} {framing} and {Frame Check Sequence} so current {X.25} hardware still works. It adds addressing (a 10-bit {Data Link Connection Identifier} (DLCI)) and a few control bits but does not include retransmissions, link establishment, windows or error recovery. It has none of X.25's {session layer} but adds some simple interface management. Any {network layer} protocol can be used over the data link layer Frames. {Frame Relay Resource Center (http://www.alliancedatacom.com/framerelay.asp)}. (2000-07-14) Frame Relay Access Device (FRAD) Hardware and software that turns {packets} from {TCP}, {SNA}, {IPX}, etc into {frames} that can be sent over a {Frame Relay} {wide area network}. FRADs are a hot topic in data comms because companies like {Netlink}, {Motorola}, {Stratacom} are making lots of money out of them. (1995-11-17) frames per second (fps) The unit of measurement of the {frame rate} of a moving image. (2000-02-02) Frame Technology Corporation The company which developed {FrameMaker}, taken over by {Adobe Systems, Inc.} in late 1995/early 1996. (1995-01-30) framework In {object-oriented} systems, a set of {class}es that embodies an abstract design for solutions to a number of related problems. (1995-01-30) Framework 4 A European Union funding programme, the {information technology} portion of which replaced {ESPRIT}. (1994-09-19) framing specification A specification of the "{protocol} bits" that surround the "data bits" on a communications channel to allow the data to be "framed" into chunks, like start and {stop bit}s in {EIA-232}. It allows a receiver to synchronize at points along the data stream. (1995-01-13) FRANK ["Using BINS for Interprocess Communication", P.C.J. Graham, SIGPLAN Notices 20(2):32-41 (Feb 1985)]. (1995-01-13) Franz Lisp Named after the Hungarian composer Franz Liszt (1811-1886). R. Fateman et al, UC Berkeley ca 1980. A {MacLisp}-like dialect of {Lisp}, developed primarily for work in symbolic algebra. Written in {C}. "The FRANZ LISP Manual", J.K. Foderaro et al. UC Berkeley 1980. Version: Opus 38.22. Liszt (the compiler) Version 8.08. {(ftp://ted.cs.uidaho.edu/pub/hol/franz.tar.Z)} See also {Liszt}. FRED Robert Carr. Language used by Framework, Ashton-Tate. [{Jargon File}] fred 1. The personal name most frequently used as a {metasyntactic variable} (see {foo}). Allegedly popular because it's easy for a non-touch-typist to type on a standard QWERTY keyboard. Unlike {J. Random Hacker} or "J. Random Loser", this name has no positive or negative loading (but see {Mbogo, Dr. Fred}). See also {barney}. 2. An acronym for "Flipping Ridiculous Electronic Device"; other F-verbs may be substituted for "flipping". Fredette's Operating System Interface Language (FOSIL) A portable {job control language} for {IBM} {OS360}, {UNIVAC} {EXEC 8} and {Honeywell} {GCOS}. ["Fredette's Operating System Interface Language (FOSIL)", G.N. Baird in Command Languages, C. Unger ed, N-H 1973]. (2000-08-06) frednet /fred'net/ Used to refer to some {random} and uncommon {protocol} encountered on a {network}. "We're implementing bridging in our {router} to solve the frednet problem." [{Jargon File}] free See {free software}, {free variable}. FreeBSD A free {operating system} based on the {BSD 4.4-lite} release from {Computer Systems Research Group} at the {University of California at Berkeley}. FreeBSD requires an {ISA}, {EISA}, {VESA}, or {PCI} based computer with an {Intel 80386SX} to {Pentium} CPU (or compatible {AMD} or {Cyrix} CPU) with 4 megabytes of {RAM} and 60MB of disk space. Some of FreeBSD's features are: {preemptive multitasking} with dynamic priority adjustment to ensure smooth and fair sharing of the computer between applications and users. Multiuser access - {peripherals} such as printers and tape drives can be shared between all users. Complete {TCP/IP} networking including {SLIP}, {PPP}, {NFS} and {NIS}. {Memory protection}, {demand-paged virtual memory} with a merged {VM}/{buffer cache} design. FreeBSD was designed as a {32 bit operating system}. {X Window System} (X11R6) provides a {graphical user interface}. {Binary compatibility} with many programs built for {SCO}, {BSDI}, {NetBSD}, {386BSD}, and {Linux}. Hundreds of ready-to-run applications in the FreeBSD ports collection. FreeBSD is {source code compatible} with most popular commercial {Unix} systems and thus most applications require few, if any, changes to compile. {Shared libraries}. A full compliment of {C}, {C++}, {Fortran} and {Perl} development tools and many other languages. {Source code} for the entire system is available. Extensive on-line documentation. {Home (http://www.freebsd.org/)}. {(ftp://ftp.freebsd.org/pub/FreeBSD)} or try your nearest {mirror site} listed at the home site or buy the {CD-ROM} from {Walnut Creek}. (1998-11-24) FreeHEP An organisation offering a repository of software and related information for high energy physics applications. Freenet Community-based bulletin board system with e-mail, information services, interactive communications, and conferencing. Freenets are funded and operated by individuals and volunteers - in one sense, like public television. They are part of the National Public Telecomputing Network (NPTN), an organisation based in Cleveland, Ohio, devoted to making computer telecommunication and networking services as freely available as public libraries. FreePPP The latest incarnation of {MacPPP}. FreePPP continues to be used by many MacOS users as an alternative to {Apple}'s {TCP/IP} stack. {Home (http://www.rockstar.com/ppp.shtml)}. (2000-11-25) freerexx {REXX} {interpreter}s for {Unix} in {C++}. {(ftp://rexx.uwaterloo.ca/pub/freerexx/rx102.tar.Z)} free software According to {Richard Stallman} and the {Free Software Foundation}, free software is software that everyone is free to copy, redistribute and modify. That implies it must be available as source code. It does not imply that it is free of charge, so anyone can sell free software so long as they don't impose any new restrictions on its redistribution or use. {This dictionary} is free in this sense, though it is not really {software}. There are many other kinds of "free software" in the more obvious sense of "free of charge". See "{-ware}". Free Software Foundation (FSF) An organisation devoted to the creation and dissemination of {free software}, i.e. software that is free from licensing fees or restrictions on use. The Foundation's main work is supporting the {GNU} project, started by {Richard Stallman} (RMS), partly to proselytise for his position that information is community property and all software source should be shared. The GNU project has developed the GNU {Emacs} editor and a {C} compiler, {gcc}, replacements for many Unix utilities and many other tools. A complete {Unix}-like operating system ({HURD}) is in the works (April 1994). Software is distributed under the terms of the {GNU General Public License}, which also provides a good summary of the Foundation's goals and principles. The Free Software Foundation raises most of its funds from distributing its software, although it is a charity rather than a company. Although the software is freely available (e.g. by {FTP} - see below) users are encouraged to support the work of the FSF by paying for their distribution service or by making donations. One of the slogans of the FSF is "Help stamp out software hoarding!" This remains controversial because authors want to own, assign and sell the results of their labour. However, many hackers who disagree with RMS have nevertheless cooperated to produce large amounts of high-quality software for free redistribution under the Free Software Foundation's imprimatur. See {copyleft}, {General Public Virus}, {GNU archive site}. {(ftp://ftp.gnu.ai.mit.edu)} Unofficial WWW pages: {PDX (http://www.cs.pdx.edu/~trent/gnu/)}, {DeLorie (http://www.delorie.com/gnu/)}. E-mail: . Address: Free Software Foundation, Inc., 675 Massachusetts Avenue, Cambridge, MA 02139, USA. Telephone: +1 (617) 876 3296. (1995-12-10) free variable 1. A variable referred to in a function, which is not an argument of the function. In {lambda-calculus}, x is a {bound variable} in the term M = \ x . T, and a free variable of T. We say x is bound in M and free in T. If T contains a subterm \ x . U then x is rebound in this term. This nested, inner binding of x is said to "shadow" the outer binding. Occurrences of x in U are free occurrences of the new x. Variables bound at the top level of a program are technically free variables within the terms to which they are bound but are often treated specially because they can be compiled as fixed addresses. Similarly, an identifier bound to a recursive function is also technically a free variable within its own body but is treated specially. A {closed term} is one containing no free variables. See also {closure}, {lambda lifting}, {scope}. 2. In {logic}, a variable which is not quantified (see {quantifier}). freeware {Software}, often written by enthusiasts and distributed at no charge by users' groups, or via {electronic mail}, local {bulletin board}s, {Usenet}, or other electronic media. At one time, "freeware" was a trademark of {Andrew Fluegelman}, the author of the well-known {MS-DOS} communications program {PC-TALK III}. It wasn't enforced after his mysterious disappearance and presumed death in 1984. "Freeware" should not be confused with "{free software}" (roughly, software with unrestricted redistribution) or "{shareware}" (software distributed without charge for which users can pay voluntarily). [{Jargon File}] (1995-08-06) freeze To lock an evolving software distribution or document against changes so it can be released with some hope of stability. Carries the strong implication that the item in question will "unfreeze" at some future date. There are more specific constructions on this term. A "feature freeze", for example, locks out modifications intended to introduce new features but still allows bugfixes and completion of existing features; a "code freeze" connotes no more changes at all. At {Sun Microsystems} and elsewhere, one may also hear references to "code slush" - that is, an almost-but-not-quite frozen state. [{Jargon File}] Frege, Gottlob {Gottlob Frege} Frequency Division Multiple Access {Frequency Division Multiplexing} Frequency Division Multiplexing (FDM) The simultaneous transmission of multiple separate signals through a shared medium (such as a wire, {optical fibre} or light beam) by modulating, at the transmitter, the separate signals into separable frequency bands, and adding those results linearly either before transmission or within the medium. While thus combined, all the signals may be amplified, conducted, translated in frequency and routed toward a destination as a single signal, resulting in economies which are the motivation for multiplexing. Apparatus at the receiver separates the multiplexed signals by means of frequency passing or rejecting filters, and demodulates the results individually, each in the manner appropriate for the modulation scheme used for that band or group. Bands are joined to form groups, and groups may then be joined into larger groups; this process may be considered recursively, but such technique is common only in large and sophisticated systems and is not a necessary part of FDM. Neither the transmitters nor the receivers need be close to each other; ordinary radio, television, and cable service are examples of FDM. It was once the mainstay of the long distance telephone system. The more recently developed {time division multiplexing} in its several forms lends itself to the handling of digital data, but the low cost and high quality of available FDM equipment, especially that intended for television signals, make it a reasonable choice for many purposes. (1995-03-08) Frequency Modulation (FM) A method of encoding data by varying the frequency of a constant amplitude {carrier signal}. Contrast {Amplitude Modulation}. (2001-04-02) Frequency Shift Keying (FSK) The use of {frequency modulation} to transmit digital data, i.e. two different {carrier} frequencies are used to represent zero and one. FSK was originally used to transmit {teleprinter} messages by radio ({RTTY}) but can be used for most other types of radio and land-line digital telegraphy. More than two frequencies can be used to increase transmission rates. (1997-07-14) frequently asked question (FAQ, or rarely FAQL, FAQ list) A document provided for many {Usenet} {newsgroups} (and, more recently, {World-Wide Web} services) which attempts to answer questions which new readers often ask. These are maintained by volunteers and posted regularly to the newsgroup. You should always consult the FAQ list for a group before posting to it in case your question or point is common knowledge. The collection of all FAQ lists is one of the most precious and remarkable resources on the {Internet}. It contains a huge wealth of up-to-date expert knowledge on many subjects of common interest. Accuracy of the information is greatly assisted by its frequent exposure to criticism by an interested, and occasionally well-informed, audience (the readers of the relevant newsgroup). The main {FTP archive} for FAQs is on a computer called {RTFM} at {MIT}, where they can be accessed either {by group (ftp://rtfm.mit.edu/pub/usenet-by-group/comp.answers/)} or {by hierarchy (ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/)}. There is another archive at {Imperial College (ftp://src.doc.ic.ac.uk/usenet/news-info/)}, London, UK and a {World-Wide Web} archive in {Ohio (http://www.cis.ohio-state.edu/hypertext/faq/usenet/top.html)}, USA. The FAQs are also posted to {Usenet} newsgroups: {news:comp.answers}, {news:news.answers} and {news:alt.answers}. (1997-12-08) Fresco 1. An {object-oriented} {API} for {graphical user interface}s, under development by the {X Consortium} as an open, multi-vendor {standard}. 2. An {object-oriented} {specification language}. ["Refinement in Fresco", in Object Oriented Specification Case Studies, K. Lano et al eds, P-H 1993]. (1996-04-28) Fresh ["Fresh: A Higher-Order Language Based on Unification", G. Smolka, in Logic Programming: Functions, Relations and Equations", D. DeGroot et al, P-H 1986, pp. 469-524]. (1996-04-28) friction feed A method some {printers} and {plotters} use to move paper by rotating one or both of a pair of spring-loaded rubber-coated rollers with the paper sandwiched between them. Friction feed printers are notorious for slipping when the rollers wear out, but can take standard typing paper. For printers with a {sheet feeder}, friction feed is more appropriate than {sprocket feed} which requires the holes in the paper to engage with the sprockets of the feed mechanism. (1997-07-09) fried 1. Non-working due to hardware failure; burnt out. Especially used of hardware brought down by a "power glitch" (see {glitch}), {drop-outs}, a short, or some other electrical event. (Sometimes this literally happens to electronic circuits! In particular, resistors can burn out and transformers can melt down, emitting noxious smoke - see {friode}, {SED} and {LER}. However, this term is also used metaphorically.) Compare {frotzed}. 2. Of people, exhausted. Said particularly of those who continue to work in such a state. Often used as an explanation or excuse. "Yeah, I know that fix destroyed the file system, but I was fried when I put it in." Especially common in conjunction with "brain": "My brain is fried today, I'm very short on sleep." [{Jargon File}] (1996-04-28) Friend Relationship between classes in the language C++. FRINGE C. Katz, GE, 1961. Subcomponent of GE-255 GECOM system. Sorting and merging of data, reports and file maintenance. frink /frink/ The unknown ur-verb, fill in your own meaning. Found especially on the {Usenet} newsgroup {news:alt.fan.lemurs}, where it is said that the lemurs know what "frink" means, but they aren't telling. Compare {gorets}. [{Jargon File}] (1994-12-16) friode /fri:'ohd/ (TMRC) A reversible (that is, fused, blown, or {fried}) {diode}. A friode may have been a {SED} at some time. See also {LER}. [{Jargon File}] (1996-04-28) fritterware An excess of capability that serves no productive end. The canonical example is font-diddling software on the Mac (see {macdink}); the term describes anything that eats huge amounts of time for quite marginal gains in function but seduces people into using it anyway. See also {window shopping}. [{Jargon File}] FRL Frame Representation Language. MIT. ["The FRL Manual", R. Roberts et al, AI Memo 409, MIT AI Lab, 1977]. (1994-12-16) FRMT-FTRN Scientific language. 1976. frob /frob/ 1. [MIT] The {TMRC} definition was "FROB = a protruding arm or trunnion"; by metaphoric extension, a "frob" is any random small thing; an object that you can comfortably hold in one hand; something you can frob (sense 2). See {frobnitz}. 2. Abbreviated form of {frobnicate}. 3. [{MUD}] A command on some {MUD}s that changes a player's experience level (this can be used to make wizards); also, to request {wizard} privileges on the "professional courtesy" grounds that one is a wizard elsewhere. The command is actually "frobnicate" but is universally abbreviated to the shorter form. [{Jargon File}] frobnicate /frob'ni-kayt/ (Possibly from {frobnitz}, and usually abbreviated to {frob}, but "frobnicate" is recognised as the official full form). To manipulate or adjust, to {tweak}. One frequently frobs bits or other 2-state devices. Thus: "Please frob the light switch" (that is, flip it), but also "Stop frobbing that clasp; you'll break it". One also sees the construction "to frob a frob". Usage: frob, {twiddle}, and {tweak} sometimes connote points along a continuum. "Frob" connotes aimless manipulation; "twiddle" connotes gross manipulation, often a coarse search for a proper setting; "tweak" connotes fine-tuning. If someone is turning a knob on an oscilloscope, then if he's carefully adjusting it, he is probably tweaking it; if he is just turning it but looking at the screen, he is probably twiddling it; but if he's just doing it because turning a knob is fun, he's frobbing it. The variant "frobnosticate" has also been reported. (1994-12-16) frobnitz /frob'nits/, plural "frobnitzem" /frob'nit-zm/ or "frobni" /frob'ni:/ (TMRC) An unspecified physical object, a widget. Also refers to electronic {black boxes}. This rare form is usually abbreviated to "frotz", or more commonly to {frob}. Also used are "frobnule" (/frob'n[y]ool/) and "frobule" (/frob'yool/). Starting perhaps in 1979, "frobozz" /fr*-boz'/ (plural: "frobbotzim" /fr*-bot'zm/) has also become very popular, largely through its exposure as a name via {Zork}. These variants can also be applied to nonphysical objects, such as data structures. Pete Samson, compiler of the original {TMRC} lexicon, adds,q "Under the TMRC (railway) layout were many storage boxes, managed (in 1958) by David R. Sawyer. Several had fanciful designations written on them, such as "Frobnitz Coil Oil". Perhaps DRS intended Frobnitz to be a proper name, but the name was quickly taken for the thing". This was almost certainly the origin of the term. [{Jargon File}] (1994-12-16) Frobozz Magic Programming Language (FMPL of Accardi). A {prototype-based}, {object-oriented}, {event-driven} (mainly I/O events) interpreted language with {functional} features. Developed at the {Experimental Computing Facility}, {University of California, Berkeley}. There is an {interpreter} by Jon Blow . Latest version: 1, as of 1992-06-02. {(ftp://xcf.berkeley.edu/src/local/fmpl)} Mailing list: . E-mail: Jack Hsu . (1992-06-02) frogging ({University of Waterloo}) 1. Partial corruption of a text file or input stream by some bug or consistent glitch, as opposed to random events like line noise or media failures. Might occur, for example, if one bit of each incoming character on a tty were stuck, so that some characters were correct and others were not. See {terminak} for a historical example. 2. By extension, accidental display of text in a mode where the output device emits special symbols or {mnemonic}s rather than conventional ASCII. This often happens, for example, when using a terminal or comm program on a device like an {IBM PC} with a special "high-half" character set and with the bit-parity assumption wrong. A hacker sufficiently familiar with ASCII bit patterns might be able to read the display anyway. [{Jargon File}] Frolic A {Prolog} system in {Common Lisp}. {(ftp://ftp.cs.utah.edu/pub/frolic.tar.Z)} (1991-11-23) front end 1. An intermediary computer that does set-up and filtering for another (usually more powerful but less friendly) machine (a "back end"). 2. Software that provides an interface to another program "behind" it, which may not be as {user-friendly}. Probably from analogy with hardware front-ends that interfaced with {mainframe}s. [{Jargon File}] front-end processor (FEP) 1. A small computer necessary to enable an {IBM} {mainframe} using {SNA} to communicate beyond the limits of the {dinosaur pen}. 2. A small computer controlling the screen and keyboard of a {Symbolics 3600} {LISP Machine}. front side bus (FSB) The {bus} via which a {processor} communicates with its {RAM}, {chipset}, and {L2 cache}. In {PCI} systems, the PCI bus runs at half the FSB speed. {Intel}'s {Pentium 60} processor used a bus speed and processor speed of 60 {MHz}. All later processors have used multipliers to increase the internal {clock} speed while maintaining the same external clock speed, e.g. the {Pentium 90} used a 1.5x multiplier. Modern {Socket 370} {motherboards} support multipliers from 4.5x to 8.0x, and FSB speeds from 50 MHz to a proposed 83 MHz standard. These higher speeds may cause problems with some PCI hardware. Altering the FSB speed and the multiplier ratio are the two main ways of {overclocking} processors. {Toms Hardware - The Bus Speed Guide (http://www.tomshardware.com/busspeed.html)}. {Toms Hardware - The Overclocking Guide (http://www.tomshardware.com/overclock.html)}. (2000-08-26) frotz /frots/ 1. See {frobnitz}. 2. "mumble frotz": An interjection of mildest disgust. [{Jargon File}] frotzed /frotst/ {down} because of hardware problems. Compare {fried}. A machine that is merely frotzed may be fixable without replacing parts, but a fried machine is more seriously damaged. frowney (Or "frowney face") See {emoticon}. [{Jargon File}] fry 1. To fail. Said especially of smoke-producing hardware failures. More generally, to become non-working. Usage: never said of software, only of hardware and humans. See {fried}, {magic smoke}. 2. To cause to fail; to {roach}, {toast}, or {hose} a piece of hardware. Never used of software or humans, but compare {fried}. FS 1. {file system}. 2. {File Separator}. FSB {front side bus} fsck file system check. The {Unix} program that checks a {file system} for internal consistency and bad blocks etc. and can repair some faults. fsck is often used after a {crash} when the file system has been left in an inconsistent state, e.g. due to incomplete flushing of {buffers}. Used on {Usenet} {newsgroup} alt.sysadmin.recovery as substitute for "fuck" and became more main-stream after the {Communications Decency Act}. (1998-03-06) FSF {Free Software Foundation} FSK {Frequency Shift Keying} FSL Formal Semantics Language. A language for {compiler} writing. ["A Formal Semantics for Computer Languages and its Application in a Compiler-Compiler", J.A. Feldman, CACM 9(1) (Jan 1966)]. [Sammet 1969, p. 641]. (1995-01-23) FSM 1. {Finite State Machine}. 2. {FDDI Switching Module}. ({3Com} implements this device on its {LAN} switches). [What is it?] (1997-05-16) FSP {File Service Protocol} fsplit A tool to split up monolithic {Fortran} programs. FT {fault tolerant} FTAM File Transfer, Access, and Management: an application layer protocol for file transfer and remote manipulation (ISO 8571). FTP {File Transfer Protocol} FTP archive {archive site} FTP by mail A service offered by {DEC} to allow people without {Internet} access to get copies of files which are available by {anonymous FTP}. Send a message with just the word "help" in the body to . FTP server A network {server} program or computer which responds to requests for files via {FTP}. A busy {Internet} {archive site} may have one or more computers dedicated to running FTP server software. These will typically have {hostnames} beginning with "ftp.", e.g. ftp.denet.dk. (1998-07-02) FTP Software, Inc. Developers of the original {PC/TCP} {Packet Driver} specification. Address: 26 Princess St. Wakefield, MA 01880-3004. Telephone: +1 (617) 246 0900. (1994-12-05) FTTP Do you mean {FTP} or {HTTP}? FTX {Stratus}' {Unix operating system}. (1998-07-06) FUBAR 1. (WWII military slang) Fucked up beyond all recognition (or repair). See {foobar}. 2. The Failed UniBus Address Register in a {VAX}. A good example of how jargon can occasionally be snuck past the {suits}. Larry Robinson reports the following nonstandard use for FUBAR: One day somebody got mad at the {card reader} (or card eater that day) on our {Univac 3200}. He taped a sign, "This thing is FUBAR", on the metal weight that sits on the stack of unread cards. The sign stayed there for over a year. One day, somebody said, "Don't forget to put the fubar on top of the stack". It stuck! We called that weight the fubar until they took away the machine. The replacement card reader had two spring loaded card clamps, one for the feed and one for the return, and we called THOSE fubars until we dumped punch cards. Incidently, the way he taped the sign on the weight made up for the lack of a little nylon piece that was missing from it, and fixed the card reader. That's why the sign stayed there. [{Jargon File}] (1997-03-18) FUD /fuhd/ An acronym invented by {Gene Amdahl} after he left {IBM} to found his own company: "FUD is the fear, uncertainty, and doubt that {IBM} sales people instill in the minds of potential customers who might be considering [Amdahl] products." The idea, of course, was to persuade them to go with safe IBM gear rather than with competitors' equipment. This implicit coercion was traditionally accomplished by promising that Good Things would happen to people who stuck with IBM, but Dark Shadows loomed over the future of competitors' equipment or software. [{Jargon File}] (1995-05-23) fudge 1. To perform in an incomplete but marginally acceptable way, particularly with respect to the writing of a program. "I didn't feel like going through that pain and suffering, so I fudged it - I'll fix it later." 2. The resulting code. [{Jargon File}] fudge factor A value or parameter that is varied in an ad hoc way to produce the desired result. The terms "tolerance" and {slop} are also used, though these usually indicate a one-sided leeway, such as a buffer that is made larger than necessary because one isn't sure exactly how large it needs to be, and it is better to waste a little space than to lose completely for not having enough. A fudge factor, on the other hand, can often be tweaked in more than one direction. A good example is the "fuzz" typically allowed in {floating-point} calculations: two numbers being compared for equality must be allowed to differ by a small amount; if that amount is too small, a computation may never terminate, while if it is too large, results will be needlessly inaccurate. Fudge factors are frequently adjusted incorrectly by programmers who don't fully understand their import. See also {coefficient of X}. Fudgets (From "functional widgets") {Graphical user interface} {widgets} available as The Fudget library - a toolkit for concurrent programming of graphical user interfaces, {client/servers} and more written in {Haskell} by Thomas Hallgren and Magnus Carlsson . Version: h9 1995-07-04 (Baastad Spring School Release). {Home (http://www.cs.chalmers.se/Fudgets/)} {(ftp://ftp.cs.chalmers.se/pub/haskell/chalmers)} (1996-03-17) FUDGIT A double-precision multi-purpose fitting program by Thomas Koenig . It can manipulate complete columns of numbers in the form of vector arithmetic. FUDGIT is also an expression language {interpreter} understanding most of {C} {grammar} except pointers. Morever, FUDGIT is a front end for any plotting program supporting commands from stdin, e.g. {Gnuplot}. Version 2.27 runs on {AIX}, {HP-UX}, {Linux}, {IRIX}, {NeXT}, {SunOS}, {Ultrix}. {(ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/)} (1993-03-22) FUD wars /fuhd worz/ Political posturing, intended to create {FUD}, engaged in by hardware and software vendors ostensibly committed to standardisation but actually willing to fragment the market to protect their own shares. The {Unix International} vs. {OSF} conflict is but one outstanding example. [{Jargon File}] (1994-12-01) Fuel-can A derogatory term for the {Atari Falcon}. (1994-12-22) Fugue A music language implemented in {Xlisp}. ["Fugue: A Functional Language for Sound Synthesis", R.B. Dannenberg et al, Computer 24(7):36-41 (Jul 1991)]. (1994-12-01) Fujitsu A Japanese elecronics corporation. Fujitsu owns {ICL}, {Amdahl Corporation}, and {DMR}. Home {USA (http://www.fujitsu.com/)}, {Japan (http://www.fujitsu.co.jp/index-e.html)}. (2000-04-03) full-custom Design of {integrated circuit}s at the transistor or polygon level. This is in contrast to the use of libraries of components. Full-custom design requires considerable skill and experience and is usually only feasible for simple circuits, especially ones with much repetition, such as memory device, where a small saving in the size and power consumption of a component will yeild a large overall saving. (1994-12-01) full-duplex (fdx, from {telegraphy}) 1. A type of communications channel which carries data in both directions at once. On purely {digital} connections, full-duplex communication requires two pairs of wires. On {analog} networks or in digital networks using carriers, it is achieved by dividing the {bandwidth} of the line into two frequencies, one for sending, and the other for receiving. 2. An obsolete term for {remote echo}. Compare {simplex}, {half-duplex}, {double-duplex}. (2000-04-02) full-duplex Switched Ethernet (FDSE) A {Switched Ethernet} link which can carry data in both directions simultaneously, doubling transmission capacity from the usual 10 to 20 megabits per second. (1996-06-20) full laziness A transformation, described by Wadsworth in 1971, which ensures that subexpressions in a function body which do not depend on the function's arguments are only evaluated once. E.g. each time the function f x = x + sqrt 4 is applied, (sqrt 4) will be evaluated. Since (sqrt 4) does not depend on x, we could transform this to: f x = x + sqrt4 sqrt4 = sqrt 4 We have replaced the dynamically created (sqrt 4) with a single shared constant which, in a {graph reduction} system, will be evaluated the first time it is needed and then updated with its value. See also {fully lazy lambda lifting}, {let floating}. (1994-11-09) full-motion video (FMV) Any system used to deliver moving video images and sound on a computer. Video images and sound are stored on disk; {compact disc} is preferred because of the amount of data required. Some form of {video compression} is used to reduce the amount of data and to allow it to be read from disk quickly enough. Compression can be relatively slow but decompression is done in {real-time} with the picture quality and {frame rate} varying with the processing power available, the size of the picture and whether it appears in a {window} or uses the whole screen. {Acorn Computers}' system is called {Replay} and {Apple Computer}'s is {QuickTime}. Compare {MPEG}, {H.261}. [IBM PC equivalent? Do they all use compression? Web page?] (1994-11-09) full outer join {outer join} fully associative cache A cache where data from any address can be stored in any cache location. The whole address must be used as the tag. All tags must be compared simultaneously (associatively) with the requested address and if one matches then its associated data is accessed. This requires an associative memory to hold the tags which makes this form of cache more expensive. It does however solve the problem of contention for cache locations ({cache conflict}) since a block need only be flushed when the whole cache is full and then the block to flush can be selected in a more efficient way. See also {direct mapped cache}, {set associative cache}. Fully Automated Compiling Technique (FACT, "Honeywell-800 Business Compiler") A pre-{COBOL} English-like business data processing language for the {Honeywell 800}, developed ca. 1959. [Sammet 1969, p. 327]. (1994-12-01) fully lazy lambda lifting John Hughes's optimisation of {lambda lifting} to give {full laziness}. {Maximal free expression}s are shared to minimise the amount of recalculation. Each inner sub-expression is replaced by a function of its maximal free expressions (expressions not containing any {bound variable}) applied to those expressions. E.g. f = \ x . (\ y . (+) (sqrt x) y) ((+) (sqrt x)) is a maximal free expression in (\ y . (+) (sqrt x) y) so this inner {abstraction} is replaced with (\ g . \ y . g y) ((+) (sqrt x)) Now, if a {partial application} of f is shared, the result of evaluating (sqrt x) will also be shared rather than re-evaluated on each application of f. As Chin notes, the same benefit could be achieved without introducing the new {higher-order function}, g, if we just extracted out (sqrt x). This is similar to the {code motion} optimisation in {procedural language}s where constant expressions are moved outside a loop or procedure. (1994-12-01) fully qualified domain name (FQDN) The full name of a system, consisting of its local {hostname} and its {domain} name, including a {top-level domain} (tld). For example, "venera" is a hostname and "venera.isi.edu" is an FQDN. An FQDN should be sufficient to determine a unique {Internet address} for any host on the {Internet}. This process, called "name resolution", uses the {Domain Name System} (DNS). With the explosion of interest in the {Internet} following the advent of the {World-Wide Web}, domain names (especially the most significant two components, e.g. "sun.com", and especially in the ".com" tld) have become a valuable part of many companies' "brand". The allocation of these, overseen by {ICANN}, has therefore become highly political and is performed by a number of different registrars. There are different registries for the different tlds. See also {network, the}, {network address}. (2000-03-25) fum [XEROX PARC] At PARC, often the third of the standard {metasyntactic variable}s (after {foo} and {bar}). Competes with {baz}, which is more common outside PARC. [{Jargon File}] Fun A {typed lambda-calculus}, similar to {SOL}[2]. "On Understanding Types, Data Abstractions and Polymorphism", L. Cardelli et al, ACM Comp Surveys 17(4) (Dec 1985). function 1. (Or "map", "mapping") If D and C are sets (the domain and codomain) then a function f from D to C, normally written "f : D -> C" is a subset of D x C such that: 1. For each d in D there exists some c in C such that (d,c) is an element of f. I.e. the function is defined for every element of D. 2. For each d in D, c1 and c2 in C, if both (d,c1) and (d,c2) are elements of f then c1 = c2. I.e. the function is uniquely defined for every element of D. See also {image}, {inverse}, {partial function}. 2. Computing usage derives from the mathematical term but is much less strict. In programming (except in {functional programming}), a function may return different values each time it is called with the same argument values and may have {side effects}. A {procedure} is a function which returns no value but has only {side-effects}. The {C} language, for example, has no procedures, only functions. {ANSI C} even defines a {type}, {void}, for the result of a function that has no result. (1996-09-01) functional 1. Working correctly. 2. Pertaining to {functional programming}. 3. {higher-order function}. functional database A {database} which uses a {functional language} as its {query language}. Databases would seem to be an inappropriate application for functional languages since, a {purely functional language} would have to return a new copy of the entire database every time (part of) it was updated. To be practically {scalable}, the update mechanism must clearly be {destructive} rather than functional; however it is quite feasible for the {query language} to be purely functional so long as the database is considered as an argument. One approach to the update problem would use a {monad} to encapsulate database access and ensure it was {single threaded}. Alternative approaches have been suggested by Trinder, who suggests non-destructive updating with shared data structures, and Sutton who uses a variant of a Phil Wadler's {linear type} system. There are two main classes of functional database languages. The first is based upon {Backus}' {FP} language, of which {FQL} is probably the best known example. {Adaplan} is a more recent language which falls into this category. More recently, people have been working on languages which are syntactically very similar to modern {functional programming language}s, but which also provide all of the features of a database language, e.g. bulk data structures which can be incrementally updated, type systems which can be incrementally updated, and all data persisting in a database. Examples are {PFL} [Poulovassilis&Small, VLDB-91], and {Machiavelli} [Ohori et al, ACM SIGMOD Conference, 1998]. {Query optimisation} is very important for database languages in general and the {referential transparency} of functional languages allows optimisations which would be harder to verify in presence of {side-effect}s. [Trinder, P., "Referentially transparent database languages", 1989 Glasgow Workshop on Functional programming] [Breazu-Tannen et al., DBPL-91]. [Poulovassilis, VLDB-94]. (1995-05-09) functional dependency Given a relation R (in a {relational database}), attribute Y of R is functionally dependent on attribute X of R and X of R functionally determines Y of R (in symbols R.X -> R.Y) if and only if each X in R has associated with it precisely one Y in R (at any one time). Attributes X and Y may be {composite}. This is very close to a {function} in the mathematical sense. (1997-09-01) functionality Waffle for "{features}" or "function". The capabilities or behaviours of a program, part of a program, or system, seen as the sum of its {features}. Roughly, "the things it can do". Generally used in a comparitive sense, e.g. "The latest update adds some useful functionality". (1997-07-14) functional language A language that supports and encourages {functional programming}. (1995-11-08) functional program A program employing the {functional programming} approach or written in a {functional language}. (1995-11-07) functional programming (FP) A program in a functional language consists of a set of (possibly {recursive}) {function} definitions and an expression whose value is output as the program's result. Functional languages are one kind of {declarative language}. They are based on the {typed lambda-calculus} with constants. There are no {side-effect}s to expression evaluation so an expression (e.g. a function applied to certain arguments) will always evaluate to the same value (if its evaluation terminates). Furthermore, an expression can always be replaced by its value without changing the overall result ({referential transparency}). The order of evaluation of subexpressions is determined by the language's {evaluation strategy}. In a {strict} ({call-by-value}) language this will specify that arguments are evaluated before applying a function whereas in a non-strict ({call-by-name}) language arguments are passed unevaluated. Programs written in a functional language are generally compact and elegant, but have tended, until recently, to run slowly and require a lot of memory. Examples of functional languages are {Clean}, {FP}, {Haskell}, {Hope}, {LML}, {Miranda} and {SML}. Many other languages such as {Lisp} have a subset which is {purely functional} but also contain non-functional constructs. See also {lazy evaluation}, {reduction}. {Lecture notes (ftp://ftp.cs.olemiss.edu/pub/tech-reports/umcis-1995-01.ps)} or the same {in dvi-format (ftp://ftp.cs.olemiss.edu/pub/tech-reports/umcis-1995-01.dvi)}. {FAQ (http://www.cs.nott.ac.uk/Department/Staff/gmh/faq.html)}. {SEL-HPC Article Archive (http://www.lpac.ac.uk/SEL-HPC/Articles/)}. (1999-01-08) functional programming language A language that supports and encourages {functional programming}. (1995-11-08) functional requirements What a system should be able to do, the functions it should perform. This term is used at both the {user requirements} analysis and {software requirements} specifications phases in the {software life-cycle}. An example of a non-functional requirement is an initialisation sequence incorporated into the software that is specific to a given customer. (2001-05-22) functional specification A description of what a system (e.g. a piece of {software}) does or should do (but not how it should do it). The functional specification is one of the inputs to the {design} process. See {IEEE}/{ANSI} Std. 610.12-1990. (1999-04-07) functional testing (Or "black-box testing", "closed-box testing") The application of test data derived from the specified functional requirements without regard to the final program structure. (1996-05-15) functional unit A subsystem of the {central processing unit} of a computer. E.g. {arithmetic and logic unit}, {memory address register}, {barrel shifter}, {register file}. (1995-02-10) function application A {function} applied to (some of) its {argument}s. If it is not applied to all its argument then it is a "{partial application}". Application is usually written in the form f(x) but some languages such as command line interpreters and many {functional language}s use {juxtaposition}: f x. {Lisp} places the parentheses around the whole application: (f x). function complete State of a {software} component or system such that each {function} described by the software's {functional specification} can be reached by at least one {functional path}, and attempts to operate as specified. (1999-04-07) Function Graph Language (FGL) Used as the machine language for the AMPS (Applicative Multi-Processing System) proposed by Robert Keller, Gary Lindstrom and Suhas Patil at the University of Utah. function key (From the {IBM 3270} terminal's Programmed Function Keys (PF keys)) One of a set of special keys on a computer or {terminal} keyboard which can be programmed so as to cause an {application program} to perform certain actions. Function keys on a terminal may either generate short fixed sequences of characters, often beginning with the {escape} character ({ASCII} 27), or the characters they generate may be configured by sending special character sequences to the the terminal. On a {microcomputer} keyboard, the function keys may generate a fixed, single byte code, outside the normal {ASCII} range, which is translated into some other configurable sequence by the keyboard {device driver} or interpreted directly by the {application program}. (1995-02-07) Function Point Analysis (FPA) A standard metric for the relative size and complexity of a software system, originally developed by Alan Albrecht of {IBM} in the late 1970s. Functon points (FPs) can be used to estimate the relative size and complexity of software in the early stages of development - analysis and design. The size is determined by identifying the components of the system as seen by the end-user: the inputs, outputs, inquiries, interfaces to other systems, and logical internal files. The components are classified as simple, average, or complex. All of these values are then scored and the total is expressed in Unadjusted FPs (UFPs). Complexity factors described by 14 general systems characteristics, such as reusability, performance, and complexity of processing can be used to weight the UFP. Factors are also weighted on a scale of 0 - not present, 1 - minor influence, to 5 - strong influence. The result of these computations is a number that correlates to system size. Although the FP metric doesn't correspond to any actual physical attribute of a software system (such as {lines of code} or the number of subroutines) it is useful as a relative measure for comparing projects, measuring productivity, and estimating the amount a development effort and time needed for a project. See also {International Function Point Users Group}. (1996-05-16) functor In {category theory}, a functor F is an operator on types. F is also considered to be a {polymorphic} operator on functions with the type F : (a -> b) -> (F a -> F b). Functors are a generalisation of the function "{map}". The type operator in this case takes a type T and returns type "list of T". The map function takes a function and applies it to each element of a list. (1995-02-07) funky Said of something that functions, but in a slightly strange, {kluge}y way. It does the job and would be difficult to change, so its obvious non-optimality is left alone. Often used to describe interfaces. The more bugs something has that nobody has bothered to fix because workarounds are easier, the funkier it is. {TECO} and {UUCP} are funky. The {Intel} {i860}'s exception handling is extraordinarily funky. Most standards acquire funkiness as they age. "The new mailer is installed, but is still somewhat funky; if it bounces your mail for no reason, try resubmitting it." "This {UART} is pretty funky. The data ready line is active-high in interrupt mode and active-low in {DMA} mode." [{Jargon File}] FUNLOG Functional programming plus unification. "Lazy" in the sense that expressions are reduced only if they are not unifiable. ["FUNLOG: A Computational Model Integrating Logic Programming and Functional Programming", P.A. Subrahmanyam et al, in Logic Programming: Functions, Relations and Equations, D. DeGroot et al eds, P-H 1986]. FunnelWeb A {literate-programming} tool by Ross Williams . It emphasises simplicity and reliability. It provides a {macro} facility and assists in the production of typeset {documentation}. It is independent of the input programming language. Posted to comp.sources.unix volume 26 under {CopyLeft}. Runs on {Sun}, {Vax}, {Macintosh} and {IBM PC}. (1993-04-11) funny money Notional units of computing time and/or storage handed to students at the beginning of a computer course; also called "play money" or "purple money" (in implicit opposition to real or "green" money). In New Zealand and Germany the odd usage "paper money" has been recorded; in Germany, the particularly amusing synonym "transfer ruble" commemorates the funny money used for trade between COMECON countries back when the Soviet Bloc still existed. When your funny money ran out, your account froze and you needed to go to a professor to get more. Fortunately, the plunging cost of {time-sharing} cycles has made this less common. The amounts allocated were almost invariably too small, even for the non-hackers who wanted to slide by with minimum work. In extreme cases, the practice led to small-scale black markets in bootlegged computer accounts. By extension, phantom money or quantity tickets of any kind used as a resource-allocation hack within a system. [{Jargon File}] furigana (Or "rubi") Small {hiragana}, written above {kanji} (and these days sometimes above Latin characters) as a phonetic comment and reading aid. The singular and plural are both "furigana". (2000-12-30) furrfu Written-only {rot13} "Sheesh!". "furrfu" evolved in mid-1992 as a response to postings repeating urban myths on {newsgroup} {news:alt.folklore.urban}, after some posters complained that "Sheesh!" as a response to {newbies} was being overused. (1995-10-25) FUSE A {DEC} {software development environment} for {ULTRIX}, offering an integrated toolkit for developing, testing, debugging and maintenance. FUSION Software package supplied by Network Research Corporation claiming to connect various different configurations of LAN. fusion A {program transformation} where a {composition} of two functions is replaced by in-lining them and combining their bodies. E.g. f x = g (h x) ==> f x = g (2 * x) g x = x + 1 f x = 2 * x + 1 h x = 2 * x This has the beneficial effect of reducing the number of function calls. It can be especially useful where the intermediate result is a large data structure which can be eliminated. See also {vertical loop combination}. (1994-12-05) FutureBasic A {BASIC} compiler for the {Macintosh}. {Unofficial home (http://users.ids.net/~paumic/FutureBasic/)}. {Staz Software (http://www.stazsoftware.com/fbinfo.html)}. (1996-12-17) future date testing The process of setting a computer's date to a future date to test a program's (expected or unexpected) date sensitivity. Future date testing only shows the effects of dates on the computer(s) under scrutiny, it does not take into account knock-on effects of dates on other connected systems. (2000-09-11) futz To waste time on non-productive activity. Not normally used for game playing. (1995-03-27) fuzzball A {DEC} {LSI-11} running a particular suite of homebrewed software written by Dave Mills and assorted co-conspirators, used in the early 1980s for {Internet} {protocol} testbedding and experimentation. These were used as {NSFnet} {backbone} sites in its early 56KB-line days. A few were still active on the {Internet} in early 1991, doing odd jobs such as network time service. [{Jargon File}] (1994-12-05) fuzzy computing {fuzzy logic} fuzzy logic A superset of {Boolean logic} dealing with the concept of partial truth -- {truth value}s between "completely true" and "completely false". It was introduced by Dr. Lotfi Zadeh of {UCB} in the 1960's as a means to model the uncertainty of {natural language}. Any specific theory may be generalised from a discrete (or "crisp") form to a continuous (fuzzy) form, e.g. "fuzzy calculus", "fuzzy differential equations" etc. Fuzzy logic replaces Boolean truth values with degrees of truth which are very similar to probabilities except that they need not sum to one. Instead of an assertion pred(X), meaning that X definitely has the property associated with {predicate} "pred", we have a truth function truth(pred(X)) which gives the degree of truth that X has that property. We can combine such values using the standard definitions of fuzzy logic: truth(not x) = 1.0 - truth(x) truth(x and y) = minimum (truth(x), truth(y)) truth(x or y) = maximum (truth(x), truth(y)) (There are other possible definitions for "and" and "or", e.g. using sum and product). If truth values are restricted to 0 and 1 then these functions behave just like their Boolean counterparts. This is known as the "extension principle". Just as a Boolean predicate asserts that its argument definitely belongs to some subset of all objects, a fuzzy predicate gives the degree of truth with which its argument belongs to a {fuzzy subset}. {Usenet} newsgroup: {news:comp.ai.fuzzy}. E-mail servers: , , . {(ftp://ftp.hiof.no/pub/Fuzzy)}, {(ftp://ntia.its.bldrdoc.gov/pub/fuzzy)}. {FAQ (ftp://rtfm.mit.edu/pub/usenet-by-group/comp.answers/fuzzy-logic)}. {James Brule, "Fuzzy systems - a tutorial", 1985 (http://life.anu.edu.au/complex_systems/fuzzy.html)}. {STB Software Catalog (http://krakatoa.jsc.nasa.gov/stb/catalog.html)}, includes a few fuzzy tools. [H.J. Zimmerman, "Fuzzy Sets, Decision Making and Expert Systems", Kluwer, Dordrecht, 1987]. ["Fuzzy Logic, State of the Art", Ed. R. Lowen, Marc Roubens, Theory and Decision Library, D: System theory, Knowledge Engineering and Problem Solving 12, Kluwer, Dordrecht, 1993, ISBN 0-7923-2324-6]. (1995-02-21) fuzzy subset In {fuzzy logic}, a fuzzy subset F of a set S is defined by a "membership function" which gives the degree of membership of each element of S belonging to F. fweep ({WPI}) One step below a {gweep}, a person who uses the system solely to play games and use {electronic mail}. Compare {dweeb}, {twink}, {terminal junkie}, {tourist}, {weenie}. (1995-01-31) FWIW For what it's worth. fx The {country code} for metropolitan France. Apprently not widely used. (1999-01-27) FX-87 Effects. A {polymorphic} language based on {Scheme}, allowing {side effects} and {first-class} functions. It attempts to integrate functional and {imperative} programming. Expressions have types, side effects (e.g. reading, writing or allocating) and regions (stating where the effects may occur). Versions: FX-89, {FX-90}. {(ftp://brokaw.lcs.mit.edu/)} ["The FX-87 Reference Manual", D.K. Gifford et al, MIT/LCS/TR-407, Oct 1987]. (1995-01-31) FX-90 A language with partial type and effect reconstruction and first-class {modules}. (1995-01-31) FYA For your amusement. FYI {For Your Information} FYI4 [Malkin, G., and A. Marine, "FYI on Questions and Answers: Answers to Commonly asked "New Internet User" Questions", FYI 4, RFC 1325, Xylogics, SRI, May 1992.] G 1. ["G: A Functional Language with Generic Abstract Data Types", P.A.G. Bailes, Computer Langs 12(2):69-94 (1987)]. 2. A language developed at {Oregon State University} in 1988 which combines {functional programming}, {object-oriented programming}, relational, {imperative} and {logic programming} (you name it we got it). ["The Multiparadigm Language G", J. Placer, Computer Langs 16:235-258(1991)]. 3. The abbreviated form of {giga-}. [{Jargon File}] (1996-08-12) grin. An alternative to {smiley}. [{Jargon File}] (1998-01-18) G2 A {real-time} {expert system} from {Gensym Corporation}. G3 1. {Group 3} fax. 2. {PowerPC G3}. (1998-09-10) G4 {Group 4} GA {genetic algorithm} ga The {country code} for Gabon. (1999-01-27) Gabriel A graphical {DSP} language for {simulation} and real systems. ["A Design Tool for Hardware and Software for Multiprocessor DSP Systems," E.A. Lee, E. Goei, J. Bier & S. Bhattacharya, DSP Systems, Proc ISCAS-89, 1989]. [{Jargon File}] (1994-12-23) gabriel /gay'bree-*l/ (After {Richard Gabriel}) An unnecessary (in the opinion of the opponent) stalling tactic, e.g. tying one's shoelaces or combing one's hair repeatedly, asking the time, etc. Also used to refer to the perpetrator of such tactics. Also, "pulling a Gabriel", "Gabriel mode". [{Jargon File}] (1999-10-12) Gabriel, Richard {Richard Gabriel} GADS Picture retrieval language. "Integrated Geographical Databases: The GADS Experience", P.E. Mantey et al, in Database Techniques for Pictorial Applications, A. Blaser ed, pp.193-198. Gaelic For automated test programs. Used in military, essentially replaced by ATLAS. gag Equivalent to {choke}, but connotes more disgust. "Hey, this is Fortran code. No wonder the C compiler gagged." See also {barf}. [{Jargon File}] GAIA GUI Application Interoperability Architecture. An {OSF} project. GAL {Generic Array Logic}. (1995-12-09) Galaxy An extensible language in the vein of {EL/1} and {RCC}. ["Introduction to the Galaxy Language", Anne F. Beetem et al, IEEE Software 6(3):55-62]. (1995-12-09) Galileo ["Galileo: A Strongly Typed Interactive Conceptual Language", A. Albano et al, ACM Trans Database Sys 10(2):230-260 (June 1985)]. Gambit A variant of {Scheme} R3.99 supporting the {future} construct of {Multilisp} by Marc Feeley . Implementation includes optimising compilers for {Macintosh} (with Toolbox and built-in editor) and {Motorola} {680x0} {Unix} systems and {HP300}, {BBN} {GP100} and {NeXT}. Version 2.0 conforms to the {IEEE} {Scheme} standard. Gambit used {PVM} as its intermediate language. {(ftp://acorn.cs.brandeis.edu/dist)}, {(ftp://ftp.cso.uiuc.edu/pub/amiga/fish/f7/ff764/Gambit_Terp)}. {(ftp://ftp.iro.umontreal.ca/pub/parallele/gambit/)}. Mailing list: gambit@trex.umontreal.ca. (1998-02-10) games "The time you enjoy wasting is not time wasted." -- {Bertrand Russell}. Here are some games-related pages on the {Web}: {Imperial Nomic (http://www.mit.edu:8001/people/achmed/fascist/)}, {Thoth's games and recreations page (http://www.cis.ufl.edu/~thoth/library/recreation.html)}, {Games Domain (http://wcl-rs.bham.ac.uk/GamesDomain)}, {Zarf's List of Games on the Web (http://www.leftfoot.com/games.html)}, {Dave's list of pointers to games resources (http://wcl-rs.bham.ac.uk/~djh/index.html)}, {Collaborative Fiction (http://asylum.cid.com/fiction/fiction.html)}. See also {3DO}, {ADL}, {ADVENT}, {ADVSYS}, {alpha/beta pruning}, {Amiga}, {CHIP-8}, {Core Wars}, {DROOL}, {empire}, {I see no X here.}, {Infocom}, {Inglish}, {initgame}, {life}, {minimax}, {moria}, {mudhead}, {multi-user Dimension}, {nethack}, {ogg}, {plugh}, {rogue}, {SPACEWAR}, {virtual reality}, {wizard mode}, {wumpus}, {xyzzy}, {ZIL}, {zorkmid}. See also {game theory}. (1996-03-03) game tree A {tree} representing contingencies in a game. Each {node} in a game tree represents a possible position (e.g., possible configuration of pieces on a chessboard) in the game, and each branching ("edge" in graph terms) represents a possible move. (1998-11-14) GAMMA 1. A language for matrices and generation of mathematical programming reports. ["GAMMA 3.3 for MPS/MPSX, IBM System:/360", Bonnor & Moore Assocs (Mar 1975)]. 2. A high-level parallel language. [Research Directions in High-Level Parallel Languages, LeMetayer ed, Springer 1992]. (1994-11-29) gamma correction Adjustments applied during the display of a digital representation of colour on a screen in order to compensate for the fact that the {Cathode Ray Tubes} used in computer {monitors} (and televisions) produce a light intensity which is not proportional to the input {voltage}. The light intensity is actually proportional to the input voltage raised to the inverse power of some constant, called gamma. Its value varies from one display to another, but is usually around 2.5. Because it is more intuitive for the colour components (red, green and blue) to be varied linearly in the computer, the actual voltages sent to the monitor by the {display hardware} must be adjusted in order to make the colour component intensity on the screen proportional to the value stored in the computer's {display memory}. This process is most easily achieved by a dedicated module in the display hardware which simply scales the outputs of the {display memory} before sending them to the {digital-to-analogue converters}. More expensive {graphics cards} and {workstations} (particularly those used for {CAD} applications) will have a gamma correction facility. In combination with the "{white-point}" gamma correction is used to achieve precise colour matching. {Robert Berger's explanation of monitor gamma (http://www.cs.cmu.edu/afs/cs.cmu.edu/user/rwb/www/gamma.html)}. [{"Digital Imaging in C and the World Wide Web", W. David Schwaderer (http://www.itknowledge.com/)}]. (1999-02-01) GAMS {Guide to Available Mathematical Software} gamut The gamut of a {monitor} is the set of colours it can display. There are some colours which can't be made up of a mixture of red, green and blue phosphor emissions and so can't be displayed by any monitor. [Examples?] (1994-11-29) GAN Generating and Analyzing Networks. "GAN - A System for Generating and Analyzing Activity Networks", A. Schurmann, CACM 11(10) (Oct 1968). GANDALF A software development environment from Carnegie Mellon University. gang bang The use of large numbers of loosely coupled programmers in an attempt to wedge a great many features into a product in a short time. Though there have been memorable gang bangs (e.g. that over-the-weekend assembler port mentioned in Steven Levy's "Hackers"), most are perpetrated by large companies trying to meet deadlines; the inevitable result is enormous buggy masses of code entirely lacking in {orthogonal}ity. When market-driven managers make a list of all the features the competition has and assign one programmer to implement each, the probability of maintaining a coherent (or even functional) design goes infinitesimal. See also {firefighting}, {Mongolian Hordes technique}, {Conway's Law}. [{Jargon File}] GAP Groups Algorithms and Programming. A system for {symbolic mathematics} for computational discrete algebra, especially group theory, by Johannes Meier, Alice Niemeyer, Werner Nickel, and Martin Schonert of Aachen. GAP was designed in 1986 and implemented 1987. Version 2.4 was released in 1988 and version 3.1 in 1992. {Sun version (ftp://ftp.math.rwth-aachen.de/pub/gap)} ["GAP 3.3 Manual, M. Schonert et al, Lehrstuhl D Math, RWTH Aachen, 1993]. (1995-04-12) GAPLog General Amalgamated Programming with Logic. {LOGPRO} group, Linkoping Sweden. A restricted version of {constraint logic programming}, using {S-unification} but not restricted to a single domain. [Chapter in forthcoming Springer book on ESPRIT] garbageabetical order 1. The result of using an {insertion} sort to merge data into an unsorted list. 2. The state of any file or list that is supposed to be sorted, but is not. (1997-02-11) garbage collect {garbage collection} garbage collection (GC) The process by which dynamically allocated storage is reclaimed during the execution of a program. The term usually refers to automatic periodic storage reclamation by the garbage collector (part of the {run-time system}), as opposed to explicit code to free specific blocks of memory. Automatic garbage collection is usually triggered during memory allocation when the amount free memory falls below some threshold or after a certain number of allocations. Normal execution is suspended and the garbage collector is run. There are many variations on this basic scheme. Languages like {Lisp} represent expressions as {graphs} built from {cells} which contain pointers and data. These languages use automatic {dynamic storage allocation} to build expressions. During the evaluation of an expression it is necessary to reclaim space which is used by subexpressions but which is no longer pointed to by anything. This reclaimed memory is returned to the free memory pool for subsequent reallocation. Without garbage collection the program's memory requirements would increase monotonically throughout execution, possibly exceeding system limits on {virtual memory} size. The three main methods are {mark-sweep garbage collection}, {reference counting} and {copying garbage collection}. See also the {AI koan} about garbage collection. (1997-08-25) Gargoyle A language for compiler writing. [J.V. Garwick, CACM 7(1):16-20, (Jan 1964)]. (1994-11-04) Garnet 1. A graphical object editor and {Macintosh} environment. 2. A user interface development environment for {Common Lisp} and {X11} from The Garnet project team. It helps you create graphical, interactive user interfaces. Version 2.2 includes the following: a custom {object-oriented programming} system which uses a {prototype-instance model}. automatic {constraint} maintenance allowing properties of objects to depend on properties of other objects and be automatically re-evaluated when the other objects change. The constraints can be arbitrary Lisp expressions. Built-in, high-level input event handling. Support for {gesture recognition}. {Widget}s for multi-font, multi-line, mouse-driven text editing. Optional automatic layout of application data into lists, tables, trees or graphs. Automatic generation of {PostScript} for printing. Support for large-scale applications and data {visualisation}. Also supplied are: two complete widget sets, one with a {Motif} {look and feel} implemented in {Lisp} and one with a custom {look and feel}. Interactive design tools for creating parts of the interface without writing code: Gilt interface builder for creating {dialog box}es. Lapidary interactive tool for creating new {widget}s and for drawing application-specific objects. C32 {spreadsheet} system for specifying complex {constraint}s. Not yet available: Jade automatic dialog box creation system. Marquise interactive tool for specifying behaviours. {(ftp://a.gp.cs.cmu.edu/usr/garnet/garnet)}. (1999-07-02) GARP A graphical language for {concurrent} programming. ["Visual Concurrent Programmint in GARP", S.K. Goering er al, PARLE '89 v.II, LNCS 366, pp. 165-180]. (1994-11-03) garply /gar'plee/ A {metasyntactic variable} like {foo}, once popular among {SAIL} hackers. [{Jargon File}] (1994-11-03) Gartner Group One of the biggest IT industry research firms. Address: Connecticut, USA. [URL?] (1997-09-30) gas {GNU assembler} GASP {Graph Algorithm and Software Package} gas plasma display A type of display containing super-energised neon gas, used mostly in flat {monitor} and television {screens}. Each {pixel} has a {transistor} that controls its colour and brightness. {Plasma (http://www.kipinet.com/mmp/mmp_apr96/dep_techwatch.html)}. {Flat Screen Technology (http://www.montegonet.com/plasma.html)}. {More about Gas Plasma (http://advancedplasma.com/whatis.html)}. [How does it work?] (1998-04-30) GAT Generalized Algebraic Translator. Improved version of IT. On IBM 650 RAMAC. [Sammet 1969, p. 142]. GATE GAT Extended? Based on {IT}. [Sammet 1969, p. 139]. gate A low-level {digital} logic component. Gates perform {Boolean} {functions} (e.g. {AND}, {NOT}), store {bit}s of data (e.g. a {flip-flop}), and connect and disconnect various parts of the overall circuit to control the flow of data ({tri-state} buffer). In a {CPU}, the term applies particularly to the buffers that route data between the various {functional units}. Each gate allows data to flow from one unit to another or enables data from one output onto a certain {bus}. (1999-09-02) gated /gayt-dee/ Gate daemon. A program which supports multiple routing {protocol}s and protocol families. It may be used for routing, and makes an effective {platform} for routing {protocol} research. {(ftp://gated.cornell.edu)} See also {Exterior Gateway Protocol}, {Open Shortest Path First}, {Routing Information Protocol}, {routed}. (1994-12-07) Gates {Bill Gates} gateway 1. A deprecated term for a device that enables data to flow between different networks (forming an {internet}). Preferred terms are "{protocol converter}" (connects networks that use different {protocols}), "{router}" (connects two broadcast networks at layer 3 ({network layer}). Another example is a {mail gateway}, which is a layer 7 ({application layer}) gateway. 2. An {interface} between an information source and a {World-Wide Web} {server}. {Common Gateway Interface} is a {standard} for such interfaces. The information source can be any system that can be accessed by a program running on the web server. A typical example is a {relational database}. (2000-05-24) Gateway 2000 One of the lagest US manufacturers of {IBM compatibles}, founded by CEO Ted Waitt in September 1985, in Sioux City, Iowa. In 1990 the company moved to North Sioux City, South Dakota. In August 1994, quarterly profits were $4 million on sales of $617 million. Sales for the first quarter of 1997 were $1.42 billion. On 1997-05-15 Gateway bought the {Amiga} brand. {Home (http://www.gw2k.com/)}. (1998-07-30) Gauss 1. {Carl Friedrich Gauss} 2. Gaussian distribution. See {normal distribution}. 3. The unit of magnetic field strength. 1 gauss = 1 Maxwell / cm^2. A good loudspeaker coil magnet flux density is of the order of 10 000 gauss. (1995-03-18) Gaussian distribution {normal distribution}. gawk {GNU} {awk}. Gawk is a superset of standard awk and includes some {Plan 9} features. David Trueman and Arnold Robbins of {Georgia Institute of Technology} were developing it in 1993. It has been ported to {Unix}, {MS-DOS}, {Macintosh}, and {Archimedes}. Latest version: 2.15.3, as of 1993-11-08. Available by {FTP} from your nearest {GNU archive site}. {Mac version (ftp://archive.umich.edu/mac/utilities/developerhelps/macgawk2.11.cpt.hqx)}. (2000-10-21) GB {gigabytes} or {gigabits} - see {MB}. Giga stands for 10^9 - a US billion, or in computing for 2^30. The text of a thirty volume encyclopaedia would require about one gigabyte of {ASCII} storage. (1997-03-27) Gb Gigabit. 10^9 {bit}s. Might also be wrongly used for {gigabyte} ({GB}). (1997-03-27) gb (Great Britain) A {country code} for United Kingdom. "{uk}" is generally used instead. (1999-01-27) g-bell {bell} GBIP {General Purpose Interface Bus} GBML {Genetics Based Machine Learning} gbps {gigabits per second} GC 1. {garbage collection}. 2. A storage allocator with {garbage collection} by Hans-J. Boehm and Alan J. Demers. Gc is a plug-in replacement for {C}'s {malloc}. Since the collector does not require {pointers} to be tagged, it does not attempt to ensure that all inaccessible storage is reclaimed. Version 3.4 has been ported to {Sun-3}, {Sun-4}, {Vax}/{BSD}, {Ultrix}, {Intel 80386}/{Unix}, {SGI}, {Alpha}/{OSF/1}, {Sequent} (single threaded), {Encore} (single threaded), {RS/600}, {HP-UX}, {Sony News}, {A/UX}, {Amiga}, {NeXT}. {(ftp://parcftp.xerox.com/pub/russell/gc3.4.tar.Z)} (2000-04-19) GCC The {GNU} {C} {compiler} by {Richard Stallman} et al. A very high quality, very portable compiler for {C}, {C++} and {Objective C}. The compiler is designed to support multiple {front-end}s and multiple {back-end}s by translating first into {Register Transfer Language} and from there into {assembly code} for the target architecture. Front ends for {Ada}, {Pascal} and {Fortran} are under development. GNU C is a superset of {K&R C} and {ANSI C}. The extensions include compound statement within an expression, pointers to labels, local labels, nested functions, {typeof} operator, compound and conditional expressions and casts allowed as lvalues, long long ints, {array}s of variable length, {macro}s with variable number of arguments, nonconstant initialisers, constructor expressions, labelled elements in initialisers, case ranges, variable attributes, {global register variable}s. Version: 2.5.7. Distributed under {GNU} {General Public License}. Ported to {3b1}, {AMD 29k}, {AIX385}, {DEC Alpha}, {Altos3068}, {Amix}, {ARM}, {Convex}, {CRDS}, {Elxsi}, {FX2800}, {FX80}, {Genix}, {HP320}, {Clipper}, {Intel 80386} - {MS-DOS}, {ISC}, {SCO}, {SysV.3}, {SysV.4}, {Mach}, {BSD}, {Linux}, {MS Windows}, {OS/2} - {Iris}, {i860}, {i960}, {Irix4}, {68000}, {Motorola m88k} {SvsV.3}, {MIPS}-news, {mot3300}, {NeXT}, {NS32K}, {NWS3250}-v.4, {HP-PA}, {PC532}, {Plexus}, {Pyramid}, {ROMP}, {RS/6000}, {SPARC}-{SunOs}, {SPARC}-{Solaris2}, {SPARC}-{SysV}.4, {SPUR}, {Sun386}, {Tahoe}, {TOW}, {Umpis}, {VAX}-{VMS}, {VAX}-{BSD}, {WE32K}, {Hitachi}-{SH}, {Hitachi}-{8300}. {dsp56k-gcc} is {Motorola}'s port to the {Motorola} {DSP56000}. {FTP} gcc-2.X.X.tar.gz from your nearest {GNU archive site}. {MS-DOS (ftp://oak.oakland.edu/pub/msdos/djgpp/)}. Mailing list: gnu.gcc.help. E-mail: gnu.gcc.bug (bug reports), gnu.gcc.announce (announcements). ["Using and Porting GNU CC", R.M. Stallman, 1992-12-16]. (1993-11-27) GCL General Control Language. A portable job control language. ["A General Control Interface for Satellite Systems", R.J. Dakin in Command Languages, C. Unger ed, N-H 1973]. G-Code 1. Johnsson & Augustsson, Chalmers Inst Tech. Intermediate language used by the G-machine, an implementation of graph reduction based on supercombinators. "Efficient Compilation of Lazy Evaluation", T. Johnsson, SIGPLAN Notices 19(6):58-69 (June 1984). 2. A machine-like language for the representation and interpretation of attributed grammars. Used as an intermediate language by the Coco compiler generator. "A Compiler Generator for Microcomputers", P. Rechenberg et al, P-H 1989. GCOS /jee'kohs/ An {operating system} developed by {General Electric} from 1962; originally called GECOS (the General Electric Comprehensive Operating System). The GECOS-II operating system was developed by {General Electric} for the 36-bit {GE-635} in 1962-1964. Contrary to rumour, GECOS was not cloned from {System/360} [{DOS/360}?] - the GE-635 architecture was very different from the {IBM 360} and GECOS was more ambitious than DOS/360. GE Information Service Divsion developed a large special multi-computer system that was not publicised because they did not wish {time sharing} customers to challenge their bills. Although GE ISD was marketing {DTSS} - the first commercial time sharing system - GE Computer Division had no license from Dartmouth and GE-ISD to market it to external customers, so they designed a time-sharing system to sell as a standard part of GECOS-III, which replaced GECOS-II in 1967. GECOS TSS was more general purpose than DTSS, it was more a programmer's tool (program editing, e-mail on a single system) than a BASIC TSS. The {GE-645}, a modified 635 built by the same people, was selected by {MIT} and {Bell} for the {Multics} project. Multics' infancy was as painful as any infancy. Bell pulled out in 1969 and later produced {Unix}. After the buy-out of GE's computer division by {Honeywell}, GECOS-III was renamed GCOS-3 (General Comprehensive Operating System). Other OS groups at Honeywell began referring to it as "God's Chosen Operating System", allegedly in reaction to the GCOS crowd's uninformed and snotty attitude about the superiority of their product. [Can anyone confirm this?] GCOS won and this led in the orphaning and eventual death of Honeywell {Multics}. Honeywell also decided to launch a new product line called Level64, and later DPS-7. It was decided to mainatin, at least temporarily, the 36-bit machine as top of the line, because GCOS-3 was so successfull in the 1970s. The plan in 1972-1973 was that GCOS-3 and Multics should converge. This plan was killed by Honeywell management in 1973 for lack of resources and the inability of Multics, lacking {databases} and {transaction processing}, to act as a business operating system without a substantial reinvestment. The name "GCOS" was extended to all Honeywell-marketed product lines and GCOS-64, a completely different 32-bit operating system, significanctly inspired by Multics, was designed in France and Boston. GCOS-62, another different 32-bit low-end DOS level was designed in Italy. GCOS-61 represented a new version of a small system made in France and the new DPS-6 16-bit {minicomputer} line got GCOS-6. When the intended merge between GCOS-3 and Multics failed, the Phoenix designers had in mind a big upgrade of the architecture to introduce {segmentation} and {capabilities}. GCOS-3 was renamed GCOS-8, well before it started to use the new features which were introduced in next generation hardware. The GCOS licenses were sold to the Japanese companies {NEC} and {Toshiba} who developed the Honeywell products, including GCOS, much further, surpassing the {IBM 3090} and {IBM 390}. When Honeywell decided in 1984 to get its top of the range machines from NEC, they considered running Multics on them but the Multics market was considered too small. Due to the difficulty of porting the ancient Multics code they considered modifying the NEC hardware to support the Multics compilers. GCOS3 featured a good {Codasyl} {database} called IDS (Integrated Data Store) that was the model for the more successful {IDMS}. Several versions of transaction processing were designed for GCOS-3 and GCOS-8. An early attempt at TP for GCOS-3, not taken up in Europe, assumed that, as in {Unix}, a new process should be started to handle each transaction. IBM customers required a more efficient model where multiplexed {threads} wait for messages and can share resources. Those features were implemented as subsystems. GCOS-3 soon acquired a proper {TP monitor} called Transaction Driven System (TDS). TDS was essentially a Honeywell development. It later evolved into TP8 on GCOS-8. TDS and its developments were commercially successful and predated IBM {CICS}, which had a very similar architecture. GCOS-6 and GCOS-4 (ex-GCOS-62) were superseded by {Motorola 68000}-based {minicomputers} running {Unix} and the product lines were discontinued. In the late 1980s Bull took over Honeywell and Bull's management choose Unix, probably with the intent to move out of hardware into {middleware}. Bull killed the Boston proposal to port Multics to a platform derived from DPS-6. Very few customers rushed to convert from GCOS to Unix and new machines (of CMOS technology) are still to be introduced in 1997 with GCOS-8. GCOS played a major role in keeping Honeywell a dismal also-ran in the {mainframe} market. Some early Unix systems at {Bell Labs} used GCOS machines for print spooling and various other services. The field added to "/etc/passwd" to carry GCOS ID information was called the "{GECOS field}" and survives today as the "pw_gecos" member used for the user's full name and other human-ID information. [{Jargon File}] (1998-04-23) GCR {Group Code Recording} GCT A {test-coverage} tool by Brian Marick , based on {GNU C}. Version 1.4 was ported to {Sun-3}, {Sun-4}, {RS/6000}, {68000}, {88000}, {HP-PA}, {IBM 3090}, {Ultrix}, {Convex}, {SCO} but not {Linux}, {Solaris}, or {Microsoft Windows}. Commercial support is available from the author (+1 217 351 7228). {(ftp://cs.uiuc.edu/pub/testing/gct.file/)}. (1999-07-08) gd The {country code} for Grenada. (1999-01-27) GDB {GNU} debugger. The {FSF}'s {symbolic debugger} for {C}, {C++} and other languages. Developed by many people but most recently Fred Fish , Stu Grossman and John Gilmore all of {Cygnus} Support. GDB fills the same niche as {dbx}. Programs must be compiled to include debugging symbols. Version 4.11. Distributed under {GNU} {CopyLeft}. It runs on most {Unix} variants, {VMS}, {VXWorks}, {Amiga} and {MS-DOS}. FTP gdb-*.tar.[zZ] from a {GNU archive site}. E-mail: (bug reports). (1993-10-29) GDBPSK {Gaussian Differential Binary Phase Shift Keying} Gödel, Kurt {Kurt Gödel} GDI {Graphic Display Interface} GDMO Guidelines for the Definition of Managed Objects. A standard (ISO/IEC 10165-4) for defining data models on ASN.1 GDPL Generalized Distributed Programming Language. "GDPL - A Generalized Distributed Programming Language", K. Ng et al, Proc 4th Intl Conf Distrib Comp Sys, IEEE 1984, pp.69-78. ge The {country code} for Georgia. (1999-01-27) GEA Graph Extended ALGOL. Extension of ALGOL 60 for graph manipulation, on UNIVAC 1108. "A Language for Treating Graphs", S. Crespi-Reghizzi et al, CACM 13(5) (May 1970). GEANT A simulation, tracking and drawing package for HEP. GECOM A language for the {GE-255} series, like {COBOL} with some {ALGOL} features added, in use around 1964-5. GECOM included many of the early COBOL constructs including {report writer} and {TABSOL} (programming by {truth table}). Another (planned but unimplemented?) component was {FRINGE}. [Sammet 1969, p. 329]. [Dates?] (1996-09-15) GECOS {GCOS} Gedanken John Reynolds, 1970. "GEDANKEN - A Simple Typeless Language Based on the Principle of Completeness and the Reference Concept", J.C. Reynolds, CACM 13(5):308-319 (May 1970). [{Jargon File}] gedanken /g*-dahn'kn/ Ungrounded; impractical; not well-thought-out; untried; untested. "Gedanken" is a German word for "thought". A thought experiment is one you carry out in your head. In physics, the term "gedanken experiment" is used to refer to an experiment that is impractical to carry out, but useful to consider because it can be reasoned about theoretically. (A classic gedanken experiment of relativity theory involves thinking about a man in an elevator accelerating through space.) Gedanken experiments are very useful in physics, but must be used with care. It's too easy to idealise away some important aspect of the real world in constructing the "apparatus". Among hackers, accordingly, the word has a pejorative connotation. It is typically used of a project, especially one in artificial intelligence research, that is written up in grand detail (typically as a Ph.D. thesis) without ever being implemented to any great extent. Such a project is usually perpetrated by people who aren't very good hackers or find programming distasteful or are just in a hurry. A "gedanken thesis" is usually marked by an obvious lack of intuition about what is programmable and what is not, and about what does and does not constitute a clear specification of an algorithm. See also {AI-complete}, {DWIM}. geef (Ostensibly from "gefingerpoken") {mung}. See also {blinkenlights}. [{Jargon File}] (1995-01-18) geek {computer geek} geek out To temporarily enter techno-nerd mode while in a non-hackish context, for example at parties held near computer equipment. Especially used when you need to do or say something highly technical and don't have time to explain: "Pardon me while I geek out for a moment." See {computer geek}, {propeller head}. [{Jargon File}] (1995-01-18) GEI A German software engineering company. GE Information Services One of the leading on-line services, started on 1st October 1985, providing subscribers with hundreds of special interest areas, computer hardware and software support, award-winning multi-player games, the most software files in the industry (over 200 000), worldwide news, sports updates, business news, investment strategies, and {Internet} {electronic mail} and fax (GE Mail). Interactive conversations (Chat Lines) and {bulletin board}s (Round Tables) with associated software archives are also provided. GEnie databases (through the ARTIST gateway) allow users to search the full text of thousands of publications, including Dun & Bradstreet Company Profiles; a GEnie NewsStand with more than 900 newspapers, magazines, and newsletters; a Reference Center with information ranging from Agriculture to World History; the latest in medical information from MEDLINE; and patent and trademark registrations. {Home (http://www.genie.com/)}. {Shopping 2000 (http://www.shopping2000.com/shopping2000/genie/)}. Telephone: +1 (800) 638 9636. TDD: +1 (800) 238 9172. E-mail: . [Connection with: GE Information Services, Inc., a division of General Electric Company, Headquarters: Rockville, Maryland, USA?] (1995-04-13) GEM One of the first commercially available {GUI}s. Borrowing heavily from the {Macintosh} {WIMP}-style interface it was available for both the {IBM} compatible market (being packaged with {Amstrad}'s original {PC} series) and more successfully for the {Atari} ST range. The PC version was produced by {Digital Research} (more famous for {DR-DOS}, their {MS-DOS} clone), and was not developed very far. The Atari version, however, continued to be developed until the early 1990s and the later versions supported 24-bit colour modes, full colour {icons} and a nice looking sculpted 3D interface. (1997-01-10) gen {generate} gender mender (Or "gender bender", "gender blender", "sex changer", and even "homosexual adaptor") A cable connector shell with either two male or two female connectors on it, used to correct the mismatches that result when some {loser} didn't understand the {EIA-232C} specification and the distinction between {DTE} and {DCE}. Used especially for EIA-232C parts in either the original {D-25} or the {IBM PC}'s {D-9} connector. There appears to be some confusion as to whether a "male homosexual adaptor" has pins on both sides (is doubly male) or sockets on both sides (connects two males). [{Jargon File}] (1995-04-16) Gene Amdahl A former {IBM} engineer who founded {Amdahl Corporation}. (1995-05-23) General Electric Comprehensive Operating System {GCOS} General Magic A software company based in Mountain View, California. Products released in 1994 after four years in development include: {Telescript} - a communications-oriented programming language; {Magic Cap} - an {OOPS} designed for {PDA}s; and a new, third generation {GUI}. {Motorola}'s {Envoy}, due for release in the third quarter of 1994, will use {Magic Cap} as its {OS}. What {PostScript} did for cross-{platform}, device-independent documents, Telescript aims to do for cross-{platform}, network-independent messaging. Telescript protects programmers from many of the complexities of network protocols. Competitors for Magic Cap include {Microsoft}'s {Windows for Pens}/{Winpad}, {PenPoint}, {Apple Computer}'s {Newton Intelligence} and {GEOS} by {GeoWorks}. {Home (http://www.genmagic.com/)} (1995-02-23) General Packet Radio Service (GPRS) A {GSM} data transmission technique that does not set up a continuous channel from a portable terminal for the transmission and reception of data, but transmits and receives data in {packets}. It makes very efficient use of available radio spectrum, and users pay only for the volume of data sent and received. See also: {packet radio}. (1999-09-12) General Protection Failure (GPF, or General Protection Fault) An addressing error, caught by the processor's {memory protection} hardware, that cannot be attributed to any expected condition such as a {page fault}. (1995-03-28) General Protection Fault {General Protection Failure} General Public Licence It's spelled "{General Public License}". (In the UK, "licence" is a noun and "license" is a verb (like "advice"/"advise") but in the US both are spelled "license"). (1995-05-12) General Public License (GPL, note US spelling) The licence applied to most {software} from the {Free Software Foundation} and the {GNU} project and other authors who choose to use it. The licences for most software are designed to prevent users from sharing or changing it. By contrast, the GNU General Public License is intended to guarantee the freedom to share and change {free software} - to make sure the software is free for all its users. The GPL is designed to make sure that anyone can distribute copies of free software (and charge for this service if they wish); that they receive source code or can get it if they want; that they can change the software or use pieces of it in new free programs; and that they know they can do these things. The GPL forbids anyone to deny others these rights or to ask them to surrender the rights. These restrictions translate to certain responsibilities for those who distribute copies of the software or modify it. See also {General Public Virus}. (1994-10-27) General Public Virus A pejorative name for some versions of the {GNU} project {copyleft} or {General Public License} (GPL), which requires that any tools or {application programs} incorporating copylefted code must be source-distributed on the same terms as GNU code. Thus it is alleged that the copyleft "infects" software generated with GNU tools, which may in turn infect other software that reuses any of its code. {Copyright} law limits the scope of the GPL to "programs textually incorporating significant amounts of GNU code" so GPL is only passed on if actual GNU source is transmitted. This used to be the case with the {Bison} {parser} skeleton until its licence was fixed. {(http://org.gnu.de/manual/bison/html_chapter/bison_2.html#SEC2)}. [{Jargon File}] (1999-07-14) General Purpose Graphic Language ["A General Purpose Graphic Language", H.E. Kulsrud, CACM 11(4) (Apr 1968)]. General Purpose Interface Bus {IEEE 488} General Purpose Language (GPL) An {ALGOL 60} variant with user-definable types and operators. [Sammet 1969, p. 195]. ["The GPL Language", J.V. Garwick et al, TER-05, CDC, Palo Alto 1969]. General Purpose Macro-generator (GPM) An early text-processing language similar to {TRAC}, implemented on the {Atlas 2}. ["A General Purpose Macrogenerator", C. Strachey, Computer J 8(3):225-241, Oct 1965]. [Was this {Christopher Strachey}?] (1998-06-29) General Recursion Theorem {Cantor}'s {theorem}, originally stated for {ordinal}s, which extends {inductive} proof to {recursive} construction. The proof is by pasting together "attempts" (partial solutions). [Better explanation?] (1995-06-15) generate To produce something according to an {algorithm} or program or set of rules, or as a (possibly unintended) {side effect} of the execution of an algorithm or program. The opposite of {parse}. [{Jargon File}] (1995-06-15) generation An attempt to classify the degree of sophistication of programming languages. See {First generation language} -- {Fifth generation language}. (1995-06-15) Generic Array Logic (GAL) A newer kind of {Programmable Array Logic} based on {EEPROM} storage cells, been pioneered by {Lattice}. GALs can be erased and reprogrammed and usually replace a whole set of different PALs (hence the name). (1995-12-09) Generic Expert System Tool (GEST) An {expert system shell} for {Symbolics} {Lisp machine}, with {frames}, {forward chaining}, {backward chaining} and {fuzzy logic}; written by John Gilmore(?) at GA Tech. Current version: 4.0, as of 1995-04-16. {(ftp://ftp.gatech.edu/pub/ai/gest.tar.Z)}. (1995-04-16) generic identifier A string constituting the name of a {element} in an {SGML} {document}. (2001-01-31) genericity The possibility for a language to provided parameterised {modules} or types. E.g. List(of:Integer) or List(of:People). (1996-05-19) generic markup In computerised document preparation, a method of adding information to the text indicating the logical components of a document, such as paragraphs, headers or footnotes. {SGML} is an example of such a system. Specific instructions for layout of the text on the page do not appear in the markup. (1996-05-19) generic programming A programming technique which aims to make programs more adaptable by making them more general. Generic programs often embody non-traditional kinds of {polymorphism}; ordinary programs are obtained from them by suitably instantiating their parameters. In contrast with normal programs, the parameters of a generic programs are often quite rich in structure. For example they may be other programs, {types} or {type constructors} or even programming {paradigms}. (1997-11-22) Generic Routing Encapsulation (GRE) A {protocol} which allows an arbitrary network protocol A to be transmitted over any other arbitrary network protocol B, by encapsulating the {packets} of A within GRE packets, which in turn are contained within packets of B. Defined in {RFC 1701} and {RFC 1702} (GRE over IP). (1998-07-19) Generic Security Service Application Programming Interface (GSS-API) An application level interface ({API}) to system security services. It provides a generic interface to services which may be provided by a variety of different security mechanisms. {Vanilla} GSS-API supports {security contexts} between two entities (known as "principals"). GSS-API is a draft internet standard which is being developed in the {Common Authentication Technology Working Group} (cat-wg) of the {Internet Engineering Task Force} (IETF). Initial specifications for GSS-API appeared in {RFC 1508} and {RFC 1509}. Subsequent revisions appeared in several draft standards documents. {(http://www.dstc.qut.edu.au/~barton/work/project.html)}. (1996-05-19) generic thunk A software mechanism that allows a 16-bit {Windows} application to load and call a {Win32} {DLL} under {Windows NT} and {Windows 95}. See also {flat thunk}, {universal thunk}. (1999-04-05) generic type variable (Also known as a "schematic type variable"). Different occurrences of a generic type variable in a type expression may be instantiated to different types. Thus, in the expression let id x = x in (id True, id 1) id's type is (for all a: a -> a). The universal {quantifier} "for all a:" means that a is a generic type variable. For the two uses of id, a is instantiated to Bool and Int. Compare this with let id x = x in let f g = (g True, g 1) in f id This looks similar but f has no legal {Hindley-Milner type}. If we say f :: (a -> b) -> (b, b) this would permit g's type to be any instance of (a -> b) rather than requiring it to be at least as general as (a -> b). Furthermore, it constrains both instances of g to have the same result type whereas they do not. The type variables a and b in the above are implicitly quantified at the top level: f :: for all a: for all b: (a -> b) -> (b, b) so instantiating them (removing the {quantifier}s) can only be done once, at the top level. To correctly describe the type of f requires that they be locally quantified: f :: ((for all a: a) -> (for all b: b)) -> (c, d) which means that each time g is applied, a and b may be instantiated differently. f's actual argument must have a type at least as general as ((for all a: a) -> (for all b: b)), and may not be some less general instance of this type. Type variables c and d are still implicitly quantified at the top level and, now that g's result type is a generic type variable, any types chosen for c and d are guaranteed to be instances of it. This type for f does not express the fact that b only needs to be at least as general as the types c and d. For example, if c and d were both Bool then any function of type (for all a: a -> Bool) would be a suitable argument to f but it would not match the above type for f. Genesia An {expert system} developed by Electricite de France and commercialised by {STERIA} (Paris). genetic algorithm (GA) An {evolutionary algorithm} which generates each individual from some encoded form known as a "chromosome" or "genome". Chromosomes are combined or mutated to breed new individuals. "Crossover", the kind of recombination of chromosomes found in sexual reproduction in nature, is often also used in GAs. Here, an offspring's chromosome is created by joining segments choosen alternately from each of two parents' chromosomes which are of fixed length. GAs are useful for multidimensional optimisation problems in which the chromosome can encode the values for the different variables being optimised. {Illinois Genetic Algorithms Laboratory (http://GAL4.GE.UIUC.EDU/illigal.home.html)} (IlliGAL). (1995-02-03) genetic algorithms {genetic algorithm} genetic programming (GP) A programming technique which extends the {genetic algorithm} to the domain of whole computer programs. In GP, populations of programs are genetically bred to solve problems. Genetic programming can solve problems of system identification, classification, control, robotics, optimisation, game playing, and {pattern recognition}. Starting with a primordial ooze of hundreds or thousands of randomly created programs composed of functions and terminals appropriate to the problem, the population is progressively evolved over a series of generations by applying the operations of Darwinian fitness proportionate reproduction and crossover (sexual recombination). (1995-03-31) GEnie Services {GE Information Services} Genken Programming Language (GPL) A variant of {PL360} by K. Asai of the Japan Atomic Energy Research Institute. ["Experience With GPL", K. Asai, in Machine Oriented Higher Level Languages, W. van der Poel, N-H 1974, pp. 371-376]. (1995-04-13) GENOVA An old statistical package still in use on some {VM} computers. (1995-11-28) gensym /jen'sim/ (From the {MacLISP} for "generated symbol") To invent a new name for something temporary, in such a way that the name is almost certainly not in conflict with one already in use. The canonical form of a gensym is "Gnnnn" where nnnn represents a number; any {LISP} {hacker} would recognise G0093 (for example) as a gensym. Gensymmed names are useful for storing or uniquely identifying crufties (see {cruft}). [{Jargon File}] (1999-10-31) Gensym Corporation A company that supplies software and services for intelligent operations management. Common applications include quality management, process optimisation, dynamic scheduling, network management, energy and environmental management, and process modelling and simulation. Their products include {G2}. {Home (http://www.gensym.com/)}. (1999-10-31) Gensym Standard Interface (GSI) A set of {C} libraries and programming tools used to interface {G2} to external systems. Commercially available bridges are available to {SCADA} systems and {PLC}s. (1997-02-11) Gentleman's Portable Coroutine System A {coroutine} package in {Fortran}. ["A Portable Coroutine System", W.M. Gentleman, Info Proc 71, C.V. Freiman ed, 1972]. (1995-02-01) GEN-X An expert system developed by General Electric. Geographical Information System {Geographic Information System} [Which is more common?] (1995-12-21) Geographic Information System (GIS) A computer system for capturing, storing, checking, integrating, manipulating, analysing and displaying data related to positions on the Earth's surface. Typically, a GIS is used for handling maps of one kind or another. These might be represented as several different layers where each layer holds data about a particular kind of feature (e.g. roads). Each feature is linked to a position on the graphical image of a map. Layers of data are organised to be studied and to perform statistical analysis (i.e. a layer of customer locations could include fields for Name, Address, Contact, Number, Area). Uses are primarily government related, town planning, local authority and public utility management, environmental, resource management, engineering, business, marketing, and distribution. {GIS dictionary (http://www.geo.ed.ac.uk/root/agidict/html/welcome.html)}. {(http://www.ncl.ac.uk/~ngraphic/wotzagis.html)} (1995-12-21) GEORGE Charles Hamblin, 1957. One of the earliest programming languages, stack-oriented, used reverse Polish notation. Implemented on the English Electric DEUCE. "GEORGE: A Semi-Translation Programming Scheme for the DEUCE, Programming and Operations Manual", C. L. Hamblin, U New S Wales (1958). "Computer Languages", C.L. Hamblin, Aust J Sci 20(5):135-139 (Dec 1957) and Aust Comp J 17(4):195-198 (Nov 1985). George Boole 1815-11-02 - 1864-12-08. An English mathematician best known for his contribution to symbolic logic ({Boolean Algebra}) but also active in other fields such as probability theory, {algebra}, analysis, and differential equations. He lived, taught, and is buried in Cork City, Ireland. The Boole library at University College Cork is named after him. For centuries philosophers have studied logic, which is orderly and precise reasoning. George Boole argued in 1847 that logic should be allied with mathematics rather than with philosophy. Demonstrating logical principles with mathematical symbols instead of words, he founded {symbolic logic}, a field of mathematical/philosophical study. In the new discipline he developed, known as {Boolean algebra}, all objects are divided into separate classes, each with a given property; each class may be described in terms of the presence or absence of the same property. An electrical circuit, for example, is either on or off. Boolean algebra has been applied in the design of {binary} computer circuits and telephone switching equipment. These devices make use of Boole's two-valued (presence or absence of a property) system. Born in Lincoln, Lincolnshire, UK, George Boole was the son of a tradesman and was largely self-taught. He began teaching at the age of 16 to help support his family. In his spare time he read mathematical journals and soon began to write articles for them. By the age of 29, Boole had received a gold medal for his work from the British Royal Society. His 'Mathematical Analysis of Logic', a pamphlet published in 1847, contained his first statement of the principles of symbolic logic. Two years later he was appointed professor of mathematics at Queen's College in Ireland, even though he had never studied at a university. He died in Ballintemple, Ireland, on 1864-12-08. {Compton's Encyclopedia Online (http://comptons2.aol.com/encyclopedia/ARTICLES/00619_A.html)}. (1998-11-19) GEOS A small windowing, {microkernel} (less than 64 kbytes long) operating system written in heavily {bum}med {assembly language} for {MS-DOS} computers. It {multitask}s rather nicely on a 6 Mhz {Intel 80286} with at least 512K memory. It was adapted to {PDA}s by adding pen recognition, which doesn't work very well. {Usenet} newsgroup: {news:comp.os.geos}. (1995-01-21) GEPURS An early system on the {IBM 701}. [Listed in CACM 2(5):16 (May 1959)]. (1995-01-21) Gerald ["Gerald: An Exceptional Lazy Functional Programming Language", A.C. Reeves et al, in Functional Programming, Glasgow 1989, K. Davis et al eds, Springer 1990]. (1995-01-10) Gerald Sussman (Gerald J. Sussman, Jerry) A noted {hacker} at {MIT} and one of the developers of {SCHEME} and {6.001}. {(http://martigny.ai.mit.edu/~gjs/gjs.html)} (1996-11-29) German \j*r'mn\ A human language written (in latin alphabet) and spoken in Germany, Austria and parts of Switzerland. German writing normally uses four non-{ASCII} characters: "äöüß", the first three have "umlauts" (two dots over the top): A O and U and the last is a double-S ("scharfes S") which looks like the Greek letter beta (except in capitalised words where it should be written "SS"). These can be written in ASCII in several ways, the most common are ae, oe ue AE OE UE ss or sz and the {TeX} versions "a "o "u "A "O "U "s. See also {ABEND}, {blinkenlights}, {DAU}, {DIN}, {gedanken}, {GMD}, {kluge}. {Usenet} newsgroup: {news:soc.culture.german}. {(ftp://src.doc.ic.ac.uk/usenet/news-info/soc.answers/german-faq)}, {(ftp://alice.fmi.uni-passau.de/pub/dictionaries/german.dat.Z)}. (1995-03-31) GEST {Generic Expert System Tool} Get a life! Standard way of suggesting that someone has succumbed to terminal {geek}dom. Often heard on {Usenet}, especially as a way of suggesting that the target is taking some obscure issue of {theology} too seriously. This exhortation was popularised by William Shatner on a "Saturday Night Live" episode in a speech that ended "Get a *life*!", but some respondents believe it to have been in use before then. It was certainly in wide use among hackers for at least five years before achieving mainstream currency in early 1992. [{Jargon File}] (1995-01-18) Get a real computer! A typical {hacker} response to news that somebody is having trouble getting work done on a {toy} system or {bitty box}. The threshold for "real computer" rises with time. As of mid-1993 it meant {multi-tasking}, with a {hard disk}, and an {address space} bigger than 16 {megabytes}. At this time, according to {GLS}, computers with character-only displays were verging on "unreal". In 2001, a real computer has a one {gigahertz} processor, 128 MB of {RAM}, 20 GB of hard disk, and runs {Linux}. [{Jargon File}] (2001-06-22) get.com A command which can be created using debug in {MS DOS} to set the errorlevel according to which key is pressed. The errorlevel can then be interrogated from a {batch file} by a series of commands like this: get if errorlevel 118 goto E118 if errorlevel 117 goto E117 if errorlevel 116 goto E116 if errorlevel 115 goto E115 if errorlevel 114 goto E114 where E118 etc. are labels in the batch file. (1996-02-01) getty A {Unix} program which sets terminal type, modes, speed and line discipline for a {serial port}, and is used in the login process. (1996-12-08) gf The {country code} for French Guiana. (1999-01-27) g file (General file) A mid 1980s term for text files, usually short and unpublished found on {BBS}s. The g-files section on BBSs contain text files of general interest, viewable on-line; this is as opposed to files in the file transfer section, which are generally downloadable but not viewable on-line. When used on the {Internet}, this term generally refers to the types of file most often associated with old BBSs such as instructions on {phreak}ing or making bombs. (1996-06-20) GFLOPS {gigaflops} GFR {Grim File Reaper} gh The {country code} for Ghana. (1999-01-27) GHC 1. {Guarded horn clauses}. 2. {Glasgow Haskell Compiler}. (1999-01-05) ghost (Or "zombie") The image of a user's session on {IRC} and similar systems, left when the session has been terminated (properly or, often, improperly) but the server (or the network at large) believes the connection is still active and belongs to a real user. Compare {clonebot}. (1997-04-07) ghostscript The {GNU} {PostScript} {interpreter} with {previewer}s for serval systems and many {font}s. Written by L. Peter Deutsch . Version 2.6.1. FTP from a {GNU archive site} or {(ftp://ftp.cs.wisc.edu/pub/X)}. (1993-05-29) ghostview An {X Window System} interface to the {ghostscript} {PostScript} {interpreter}. GHz {GigaHertz} GI {generic identifier} gi The {country code} for Gibraltar. (1999-01-27) Gibson, William {William Gibson} gid 1. {group identifier}. 2. {global index}. (1997-01-30) GIF {Graphics Interchange Format} GIF89 {Graphics Interchange Format} GIF89a {animated GIF} GIFF Do you mean {GIF} or is this some kind of {IFF}? gig {gigabyte} giga- {prefix} gigabit 2^30 {bits}, 1,073,741,824 bits. See {prefix}. (1995-11-12) gigabits per second {Gbps} A unit of information transfer rate. See {gigabit}. (1996-05-25) gigabyte 2^30 = 1,073,741,824 {byte}s = 1024 {megabytes}. Roughly the amount of data required to encode a human gene sequence (including all the redundant codons). See {prefix}. (1995-09-29) gigaflop {gigaflops} gigaflops (GFLOPS) One thousand million (10^9) {floating point} operations per second. One of them is strictly "one gigaflops" in the same way that one mile per hour isn't 1 MP. See {prefix}. (1998-04-19) GigaHertz (GHz) Billions of cycles per second. The unit of frequency used to measure the {clock rate} of modern {digital logic}, including {microprocessors}. (2001-05-14) GIGO /gi:'goh/ 1. Garbage In, Garbage Out. A reference to the fact that computers, unlike humans, will unquestioningly process the most nonsensical of input data and produce nonsensical output. Of course a properly written program will reject input data that is obviously erroneous but such checking is not always easy to specify and is tedious to write. GIGO is usually said in response to {lusers} who complain that a program didn't "do the right thing" when given imperfect input or otherwise mistreated in some way. Also commonly used to describe failures in human decision making due to faulty, incomplete, or imprecise data. 2. Garbage In, Gospel Out. This more recent expansion is a sardonic comment on the tendency human beings have to put excessive trust in "computerised" data. [{Jargon File}] gilley ({Usenet}) The unit of analogical bogosity. According to its originator, the standard for one gilley was "the act of bogotoficiously comparing the shutting down of 1000 machines for a day with the killing of one person". The milligilley has been found to suffice for most normal conversational exchanges. (1995-03-17) gillion /gil'y*n/ or /jil'y*n/ (From {giga-} by analogy with mega/million and tera/trillion) 10^9. Same as an American billion or a British "milliard". How one pronounces this depends on whether one speaks {giga-} with a hard or soft "g". [{Jargon File}] (1995-03-17) Gilmore, John {John Gilmore} GIM-1 Generalized Information Management Language. Nelson, Pick, Andrews. Proc SJCC 29:169-73, AFIPS (Fall 1966). GIN A special-purpose {macro assembler} used to build the {GEORGE 3} {operating system} for {ICL1900} series computers. (1994-11-02) GINA Generic Interactive Application. An {application framework} based on {Common Lisp} and {OSF}/{Motif}, designed to simplify the construction of graphical interactive applications. GINA consists of {CLM} - a language binding for {OSF}/{Motif} in {Common Lisp}; the GINA application framework - a {class library} in {CLOS}; the GINA interface builder - an interactive tool implemented with GINA to design {Motif} windows. Version 2.2 requires {OSF}/{Motif} 1.1 or better, {Common Lisp} with {CLX}, {CLOS}, {PCL} and processes. It runs with {Franz Allegro}, {Lucid}, {CMU CL} and {Symbolics} {Genera}. {Germany (ftp://ftp.gmd.de/gmd/gina)}. {N. America (ftp://export.lcs.mit.edu/contrib/)}. Mailing list: gina-users-request@gmdzi.gmd.de. (1994-11-02) Ginger A simple {functional language} from the {University of Warwick} with parallel constructs. (1994-11-02) GIP 1. General Interpretive Programme. A 1956 interpreted language for the {English Electric} {DEUCE}, with {array} operations and an extensive library of numerical methods. ["Interpretive and Brick Schemes, with Special Reference to Matrix Operations", English Electric COmpany, DEUCE News No. 10 (1956)]. (1994-11-02) 2. An erroneous singular of {GIPS}. GIPS /gips/ or /jips/ [Analogy with {MIPS}] Giga-Instructions per Second (or possibly "Gillions of Instructions per Second"; see {gillion}). In 1991, this was used of only a handful of highly parallel machines and one sequential processor built with {Josephson device}s. {DEC}'s {Alpha AXP 21164} processor was the first commercially available 1 GIPS sequential processor (7 Sep 1994). Compare {KIPS}. ["A 1-GIPS Josephson Data Processor", Yuji Hatano et al, IEEE J Solid State Circuits, vol 26, 6, June 1991] [{Jargon File}] (1994-11-02) GIRL Graph Information Retrieval Language. A language for handling {directed graph}s. ["Graph Information Retrieval Language", S. Berkowitz, Report 76-0085, Naval Ship Res Dev Center, (Feb 1976)]. (1994-11-02) GIS {Geographical Information System} GKS {Graphical Kernel System} GKS-3D The three-dimensional version of {GKS}, a {standard} for graphics I/O ({ISO} 8805). (1994-11-02) GL Graphics Language. A graphics package from {Silicon Graphics}. gl The {country code} for Greenland. (1999-01-27) Glammar A pattern transformation language for text-to-text translation. Used for compiler writing and linguistics. {(ftp://phoibos.cs.kun.nl/pub/GLASS/glammar.tar.Z)} glark /glark/ To figure something out from context. "The System III manuals are pretty poor, but you can generally glark the meaning from context." Interestingly, the word was originally "glork"; the context was "This gubblick contains many nonsklarkish English flutzpahs, but the overall pluggandisp can be glorked [sic] from context" (David Moser, quoted by Douglas Hofstadter in his "Metamagical Themas" column in the January 1981 "Scientific American"). It is conjectured that hackish usage mutated the verb to "glark" because {glork} was already an established jargon term. Compare {grok}, {zen}. [{Jargon File}] Glasgow Haskell Compiler (GHC) A {Haskell} 1.2 compiler written in Haskell by the AQUA project at {Glasgow University}, headed by Simon Peyton Jones throughout the 1990's [started?]. GHC can generate either {C} or {native code} for {SPARC}, {DEC} {Alpha} and other platforms. It can take advantage of features of {gcc} such as global register variables and has an extensive set of optimisations. GHC features an extensible I/O system based on a "{monad}", in-line {C} code, fully fledged {unboxed} data types, incrementally-updatable {array}s, {mutable reference type}s, {generational garbage collector}, {concurrent} {thread}s. Time and space {profiling} is also supported. It requires {GNU} gcc 2.1+ and {Perl}. GHC runs on {Sun-4}, {DEC Alpha}, {Sun-3}, {NeXT}, {DECstation}, {HP-PA} and {SGI}. Latest version: 4.01, as of 1998-11-30. {Glasgow FTP (ftp://ftp.dcs.glasgow.ac.uk/pub/haskell/glasgow/)}. {Yale (ftp://nebula.cs.yale.edu/pub/haskell/glasgow/)}. {Sweden (ftp://ftp.cs.chalmers.se/pub/haskell/glasgow/)}. {Papers (ftp://ftp.dcs.glasgow.ac.uk/pub/glasgow-fp)}. ["Imperative functional programming", Peyton Jones & Wadler, POPL '93]. ["Unboxed data types as first-class citizens", Peyton Jones & Launchbury, FPCA '91]. ["Profiling lazy functional languages", Sansom & Peyton Jones, Glasgow workshop '92]. ["Implementing lazy functional languages on stock hardware", Peyton Jones, Journal of Functional Programming, Apr 1992]. E-mail: . (1999-01-05) GLASS General LAnguage for System Semantics. An {Esprit} project at the {University of Nijmegen}. {(ftp://phoibos.cs.kun.nl/pub/GLASS)} (1995-01-25) glass (IBM) {silicon}. [{Jargon File}] glass box testing {white box testing} glassfet /glas'fet/ [Analogy with {MOSFET}] (or "{firebottle}") A humorous way to refer to a {vacuum tube}. [{Jargon File}] glass tty /glas T-T-Y/ or /glas ti'tee/ A terminal that has a display screen but which, because of hardware or software limitations, behaves like a teletype or some other printing terminal, thereby combining the disadvantages of both: like a printing terminal, it can't do fancy display hacks, and like a display terminal, it doesn't produce hard copy. An example is the early "dumb" version of Lear-Siegler ADM 3 (without cursor control). See {tube}, {tty}; compare {dumb terminal}, {smart terminal}. See "{TV Typewriters}" for an interesting true story about a glass tty. GLB {greatest lower bound} glibc {GNU C Library} Glish Glish is an interpretive language for building loosely-coupled distributed systems from modular, event-oriented programs. Written by Vern Paxson . These programs are written in conventional languages such as C, C++, or Fortran. Glish scripts can create local and remote processes and control their communication. Glish also provides a full, array-oriented programming language (similar to {S}) for manipulating binary data sent between the processes. In general Glish uses a centralised communication model where interprocess communication passes through the Glish {interpreter}, allowing dynamic modification and rerouting of data values, but Glish also supports point-to-point links between processes when necessary for high performance. Version 2.4.1 includes an {interpreter}, {C++} {class} library and user manual. It requires C++ and there are ports to {SunOS}, {Ultrix}, an {HP/UX} (rusty). {(ftp://ftp.ee.lbl.gov/glish/glish-2.4.1.tar.Z)} ["Glish: A User-Level Software Bus for Loosely-Coupled Distributed Systems," Vern Paxson and Chris Saltmarsh, Proceedings of the 1993 Winter USENIX Conference, San Diego, CA, January, 1993]. (1993-11-01) Glisp Generalized LISP. D.C. Smith, Aug 1990. A coordinated set of high-level syntaxes for Common LISP. Contains Mlisp, Plisp and ordinary LISP, with an extensible framework for adding others. Written in Plisp. {(ftp://bric-a-brac.apple.com/dts/mac/lisp)} glitch /glich/ [German "glitschen" to slip, via Yiddish "glitshen", to slide or skid] 1. (Electronics) When the inputs of a circuit change, and the outputs change to some {random} value for some very brief time before they settle down to the correct value. If another circuit inspects the output at just the wrong time, reading the random value, the results can be very wrong and very hard to debug (a glitch is one of many causes of electronic {heisenbug}s). 2. A sudden interruption in electric service, sanity, continuity, or program function. Sometimes recoverable. An interruption in electric service is specifically called a "power glitch" (or {power hit}), of grave concern because it usually crashes all the computers. See also {gritch}. 2. [Stanford] To scroll a display screen, especially several lines at a time. {WAITS} terminals used to do this in order to avoid continuous scrolling, which is distracting to the eye. 4. Obsolete. Same as {magic cookie}. [{Jargon File}] glob /glob/, *not* /glohb/ To expand {wild card} characters in a {path name}. In {Unix} the {file name} wild cards are: * = zero or more characters (E.g. {UN*X}) ? = any single character [] any of the enclosed characters {} indicate alternation of comma-separated alternatives, thus foo{baz,qux} would expand to "foobaz" or "fooqux". This syntax generates a list of all possible expansions, rather than matching one. These have become sufficiently pervasive that hackers use them in written English, especially in {electronic mail} or {Usenet} news on technical topics. E.g. "He said his name was [KC]arl" (expresses ambiguity). "I don't read talk.politics.*" (any of the talk.politics subgroups on {Usenet}). Other examples are given under the entry for {X}. Note that glob patterns are similar, but not identical, to those used in {regexps}. "glob" was a subprogram that expanded wild cards in archaic pre-{Bourne} versions of the {Unix} {shell}. (1997-07-16) global index (gid) The filename extension of a {Windows 95} "global index" file. .gid files are created by the help {browser} internal to Windows 95 (also available for other Windows versions) for WinHelp files ({hlp}), as well as for storing user preferences, such as window position. (1997-01-30) globalisation {internationalisation} Global Network Navigator (GNN) A collection of free services provided by {O'Reilly & Associates}. The Whole Internet Catalog describes the most useful Net resources and services with live links to those resources. The GNN Business Pages list companies on the Internet. The Internet Help Desk provides help in starting {Internet}q exploration. NetNews is a weekly publication that reports on the news of the {Internet}, with weekly articles on Internet trends and special events, sports, weather, and comics. There are also pages aobut travel and personal finance. {Home page (http://www.gnn.com/)} E-mail: . Telephone: (800) 998 9938 (USA), +1 (707) 829 0515 (outside USA). (1995-01-10) Global Positioning System (GPS) A system for determining postion on the Earth's surface by comparing radio signals from several satellites. When completed the system will consist of 24 satellites equipped with radio transmitters and atomic clocks. Depending on your geographic location, the GPS receiver samples data from up to six satellites, it then calculates the time taken for each satellite signal to reach the GPS receiver, and from the difference in time of reception, determines your location. ["Global Positioning by Satellite"? Precison? Coverage? Web page?] (1998-02-10) Global System for Mobile Communications (GSM, originally "Groupe de travail Spéciale pour les services Mobiles") A {standard} for digital {cellular} communications (in the process of being) adopted by over 60 countries. The GSM standard is currently used in the 900 MHz and 1800 MHz bands. In the USA trial systems akin to the related Digital Cellular System (DCS) 18000 have been set up in several metropolitan areas. {HSCSD} is a proposed standard for {circuit switched} data communications over GSM. {(http://www.gsmworld.com/)}. [IEEE spectrum August 1999, pp. 26]. [Details? Current status? Whose standard?] (1999-11-25) glork /glork/ 1. Used as a name for just about anything. See {foo}. 2. Similar to {glitch}, but usually used reflexively. "My program just glorked itself." See also {glark}. [{Jargon File}] GLOS {Graphics Language Object System}. GLOW A POP-11 variant with {lexical scope}. Available from Andrew Arnblaster, Bollostraat 6, B-3140 Keerbergen, Belgium, for Mac or {MS-DOS}. [Byte's UK edition, May 1992, p.84UK-8]. (1997-02-07) GLS {Guy Lewis Steele, Jr.} GLU A practical {coarse grain} implementation of the Lucid dataflow language for networks. (1998-03-07) glue A generic term for any interface logic or {protocol} that connects two component blocks. For example, {Blue Glue} is IBM's SNA protocol, and hardware designers call anything used to connect large VLSI's or circuit blocks "glue logic". [{Jargon File}] (1999-02-22) glue language Any language, usually a {scripting language}, used to write {glue} to integrate tools and other programs to solve some problem. (1999-02-22) glyph An {image} used in the visual representation of {characters}; roughly speaking, how a character looks. A {font} is a set of glyphs. In the simple case, for a given {font} ({typeface} and size), each character corresponds to a single glyph but this is not always the case, especially in a language with a large alphabet where one character may correspond to several glyphs or several characters to one glyph (a {character encoding}). Usually used in reference to {outline fonts}, in particular {TrueType}. (1998-05-31) Glypnir 1966. An ALGOL-like language with parallel extensions. Similar to Actus. "GLYPNIR - A Programming Language for the Illiac IV", D.H. Lawrie et al, CACM 18(3) (Mar 1975). gm The {country code} for Gambia. (1999-01-27) GMAP GCOS Macro Assembler Program. The {macro assembler} for the {GCOS 8} {operating system} on {Honeywell}/{Bull} {DPS-8} computers. ["GCOS8 OS GMAP User's Guide", Bull]. GMD Full name: "GMD - Forschungszentrum Informationstechnik GmbH" (German National Research Center for Information Technology). Before April 1995, GMD stood for "Gesellschaft für Mathematik und Datenverarbeitung" - National Research Center for Computer Science, it is retained for historical reasons. {Home (http://www.gmd.de/GMDHome.english.html)} Address: D-53754 Sankt Augustin, Germany. (1995-04-10) GMD Toolbox for Compiler Construction (Or Cocktail) A huge set of compiler building tools for {MS-DOS}, {Unix} and {OS/2}. parser generator (LALR -> C, Modula-2), documentation, parser generator (LL(1) -> C, Modula-2), tests, scanner generator (-> C, Modula-2), tests translator (Extended BNF -> BNF), translator (Modula-2 -> C), translator (BNF (yacc) -> Extended BNF), examples abstract syntax tree generator, attribute-evaluator generator, code generator Current version: 9209. The {MS-DOS} version requires DJ Delorie's DOS extender ({go32}) and the {OS/2} version requires the {emx} programming environment. {(ftp://ftp.karlsruhe.gmd.de/pub/cocktail/dos)}. {OS/2 FTP (ftp://ftp.eb.ele.tue.nl/pub/src/cocktail/dos-os2.zoo)}. Mailing list: listserv@eb.ele.tue.nl (subscribe to Cocktail). E-mail: Josef Grosch , Willem Jan Withagen (OS/2). (1992-01-01) GMT {Coordinated Universal Time} gn The {country code} for Guinea. (1999-01-27) gnarly /nar'lee/ Both obscure and {hairy}. "{Yow}! - the tuned {assembler} implementation of {BitBlt} is really gnarly!" From a similar but less specific usage in surfer slang. [{Jargon File}] (1996-09-17) Gnat An {Ada} {compiler} written in {Ada} using the {gcc} {code generator} to allow easy {porting} to a variety of {platforms}. Gnat is the only Ada compiler that completely implements the Ada standard, including all the annexes. The compiler is released under the {GNU} license and is currently maintained by {Ada Core Technologies} (ACT). {Home (http://www.gnat.com/)}. (1999-06-24) GNN {Global Network Navigator} GNOME {GNU Network Object Model Environment} Gnome Computers A small UK hardware and software company. They make {transputer} boards for the {Acorn} {Archimedes} among other things. E-mail: Chris Stenton . (1994-09-30) GNU /g*noo/ 1. A {recursive acronym}: "GNU's Not Unix!". The {Free Software Foundation}'s project to provide a freely distributable replacement for {Unix}. The GNU Manifesto was published in the March 1985 issue of Dr. Dobb's Journal but the GNU project started a year and a half earlier when {Richard Stallman} was trying to get funding to work on his freely distributable editor, {Emacs}. {Emacs} and the GNU {C} compiler, {gcc}, two tools designed for this project, have become very popular. GNU software is available from many {GNU archive site}s. See also {Hurd}. 2. {John Gilmore}. [{Jargon File}] (1997-04-12) GNU archive site The main {GNU} {FTP archive} is on gnu.org but copies ("{mirrors}") of some or all of the files there are also held on many other computers around the world. To avoid overloading gnu.org and the {Internet} you should {FTP} files from the machine closest to yours (you may be able to use {traceroute} to determine which is logically closest if it's not obvious from the transfer rate). Trans-ocean {TCP/IP} links are very expensive and usually very slow. The following {hosts} mirror GNU files. Look for a directory like /pub/gnu, /mirrors/gnu, /systems/gnu or /archives/gnu. {Electronic mail addresses} of administrators and {Internet address}es are given for some hosts. {Original list (ftp://src.doc.ic.ac.uk/gnu/GNUinfo/FTP)}. Australia: archie.au, archie.oz, archie.oz.au Brazil: ccsun.unicamp.br (143.106.1.5, ) Denmark: ftp.denet.dk Europe: archive.eu.net (192.16.202.1) Finland: ftp.funet.fi (128.214.6.100, gnu-adm) France: irisa.irisa.fr, ftp.univ-lyon1.fr () {Germany (ftp://ftp.informatik.tu-muenchen.de/)}, {(ftp://ftp.informatik.rwth-aachen.de/)}, {ftp://ftp.germany.eu.net/)} Israel: ftp.technion.ac.il () Japan: utsun.s.u-tokyo.ac.jp, ftp.cs.titech.ac.jp Korea: cair.kaist.ac.kr (143.248.11.170) Netherlands: hp4nl.nluug.nl, ftp.win.tue.nl (131.155.70.100) Norway: ugle.unit.no (129.241.1.97) South Africa: ftp.sun.ac.za Sweden: isy.liu.se, ftp.stacken.kth.se, ftp.luth.se, ftp.sunet.se, , sdi.slu.se. Switzerland: ftp.eunet.ch, nic.switch.ch Thailand: ftp.nectec.or.th (192.150.251.32, ) UK: src.doc.ic.ac.uk (146.169.3.7, , also sun cartridge or exabyte tapes); info-server@cs.nott.ac.uk (); I.G.Batten@fulcrum.bt.co.uk (also qic-21 and qic-24 tapes); ftp.mcc.ac.uk (130.88.203.12); Unix.hensa.ac.uk; ftp.warwick.ac.uk (137.205.192.14, ). USA: louie.udel.edu, ftp.kpc.com (Silicon Valley, CA) ftp.hawaii.edu, f.ms.uky.edu, ftp.digex.net (Internet address 164.109.10.23, run by ), wuarchive.wustl.edu, col.hp.com, ftp.cs.columbia.edu, vixen.cso.uiuc.edu, mrcnext.cso.uiuc.edu, jaguar.utah.edu, gatekeeper.dec.com, labrea.stanford.edu, ftp.cs.widener.edu, archive.cis.ohio-state.edu, and ftp.uu.net. Western Canada: ftp.cs.ubc.ca () (1999-12-09) GNU assembler (GAS) A {Unix} {assembler} for the {GNU} project. Many {CPU} types are handled and {COFF} and {IEEE-695} formats are supported as well as standard {a.out}. Current version 2.2 ported to {Sun-3}, {Sun-4}, {i386}, {386BSD}, {BSD/386}, {Linux}, {PS/2-AIX}, {VAX}, {Ultrix}, {BSD}, {VMS}. The assembler has been merged with {GNU Binutils}. E-mail: . (1995-04-18) GNU awk {gawk} GNU BC A {GNU} version of {BC} which is self-contained and internally executes its own compiled code rather than acting as a {front-end} to {DC} like the standard {Unix} bc. Version 1.02 parser (yacc), interpreter, BC math library Philip A. Nelson FTP bc-1.02.tar.Z from a {GNU archive site}. requires: vsprintf and vfprintf routines ports: Unix (BSD, System V, MINIX, POSIX) Superset of POSIX BC (P10003.2/D11), with a POSIX-only mode. GNU C The extension of {C} compiled by {gcc}. (1997-09-30) GNU C Library (glibc) The {run-time} library for the {GNU C} {compiler}, {gcc}, and others. glibc is the {source code} for libc.a. It is maintained separately from the compilers and is a superset of {ANSI C} and {POSIX}.1 and a large subset of POSIX.2. Current version: 2.1.3, as of 2000-04-29 {Home (http://www.gnu.org/glibc)}. Mailing list: (bugs). (2000-05-31) GNU DC GNU Desktop Calculator. An {interpreter} for a subset of the standard {Unix} {DC} that handles all its operations, except the (undocumented) {array} operations. Integration with GNU BC is being attempted. Version 0.2. {FTP} dc-0.2.tar.Z from your nearest {GNU archive site}. (1993-05-21) GNU E A persistent C++ variant Version 2.3.3 compiler {(ftp://ftp.cs.wisc.edu/exodus/E/)} GNU E is a persistent, object oriented programming language developed as part of the Exodus project. GNU E extends C++ with the notion of persistent data, program level data objects that can be transparently used across multiple executions of a program, or multiple programs, without explicit input and output operations. GNU E's form of {persistence} is based on extensions to the C++ type system to distinguish potentially persistent data objects from objects that are always memory resident. An object is made persistent either by its declaration (via a new "persistent" storage class qualifier) or by its method of allocation (via persistent dynamic allocation using a special overloading of the new operator). The underlying object storage system is the Exodus storage manager, which provides concurrency control and recovery in addition to storage for persistent data. restriction: Copyleft; not all run-time sources are available (yet) requires: release 2.1.1 of the Exodus storage manager E-mail: . (1993/01/20) GNU Emacs {Emacs} GNU General Public License {General Public License} GNUMACS /gnoo'maks/ [contraction of "GNU Emacs"] Often-heard abbreviated name for the {GNU} project's flagship tool, {Emacs}. Used especially in contrast with {GOSMACS}. [{Jargon File}] GNU mirror site {GNU archive site} GNU Network Object Model Environment (GNOME) A project to build a complete, {user-friendly} {desktop} based entirely on {free software}. GNOME is part of the {GNU project} and part of the {OpenSource} movement. The desktop will consist of small {utilities} and larger {applications} which share a consistent {look and feel}. GNOME uses {GTK+} as the {GUI} {toolkit} for applications. GNOME is intended to run on any modern and functional {Unix}-like system. The current version runs on {Linux}, {FreeBSD}, {IRIX} and {Solaris}. {Home (http://www.gnome.org/)}. (1998-10-17) Gnuplot A command-driven interactive graphing program. Gnuplot can plot two-dimensional functions and data points in many different styles (points, lines, error bars); and three-dimensional data points and surfaces in many different styles (contour plot, mesh). It supports {complex} arithmetic and user-defined functions and can label title, axes, and data points. It can output to several different graphics file formats and devices. Command line editing and history are supported and there is extensive on-line help. Gnuplot is {copyright}ed, but freely distributable. It was written by Thomas Williams, Colin Kelley, Russell Lang, Dave Kotz, John Campbell, Gershon Elber, Alexander Woo and many others. Despite its name, gnuplot is not related to the {GNU} project or the {FSF} in any but the most peripheral sense. It was designed completely independently and is not covered by the {General Public License}. However, the {FSF} has decided to distribute gnuplot as part of the {GNU} system, because it is useful, redistributable software. Gnuplot is available for: {Unix} ({X11} and {NEXTSTEP}), {VAX}/{VMS}, {OS/2}, {MS-DOS}, {Amiga}, {MS-Windows}, {OS-9}/68k, {Atari ST} and {Macintosh}. E-mail: . {FAQ} - {Germany (http://fg70.rz.uni-karlsruhe.de/~ig25/gnuplot-faq/)}, {UK (ftp://src.doc.ic.ac.uk/usenet/news-info/comp.graphics.gnuplot)}, {USA (http://www.cis.ohio-state.edu/hypertext/faq/usenet/graphics/gnuplot-faq/faq.html)}. {Usenet} newsgroup: {news:comp.graphics.gnuplot}. (1995-05-04) GNU public licence Properly known as the {General Public License}. Improperly known as the {General Public Virus}. (1995-05-04) GNUS GNU news. A {GNU} {Emacs} subsystem for reading and sending {Usenet} {news}, written by Masanobu Umeda . You can use GNUS to browse through news groups, look at summaries of articles in a specific group, and read articles of interest. You can respond to authors or write articles or replies to all the readers of a news group. GNUS can be configured to use the {NNTP} {protocol} to get news from a remove {server} or it can read it from local news {spool} files. {Usenet} newsgorup: {news:gnu.emacs.gnus}. (1995-05-04) GNU sed A {GNU} version of the standard {Unix} {Sed} stream editor. GNU sed was written by Tom Lord . Version 2.03. FTP from your nearest {GNU archive site}. E-mail: (bugs). (1993-08-09) GNU Smalltalk A {GNU} version of {Smalltalk}, by Steven Byrne . Version 1.1.1, {FTP} from your nearest {GNU archive site}. {msgGUI} is a {graphical user interface} library for GNU Smalltalk. (1991-09-15) GNUStep A {GNU} implementation of {OpenStep}. Work has started on an implementation using an existing library written in {Objective-C}. Much work remains to be done to bring this library close to the OpenStep specifications. Adam Fedor is head of the project. {Home (http://www.gnustep.org/)}. [Current status? Newsgroup?] (1999-11-25) GNU superoptimiser (GSO) A function sequence generator that uses an exhaustive generate-and-test approach to find the shortest instruction sequence for a given function. Written by Torbjorn Granlund and Tom Wood. You have to tell the superoptimiser which function and which {CPU} you want to get code for. This is useful for compiler writers. FTP superopt-2.2.tar.Z from a {GNU archive site}. Generates code for {DEC} {Alpha}, {SPARC}, {Intel 80386}, {88000}, {RS/6000}, {68000}, {29000} and {Pyramid} (SP, AP and XP). (1993-02-16) Go A thinking game with an oriental origin estimated to be around 4000 years old. Nowadays, the game is played by millions of people in (most notably) China, Japan, Korea and Taiwan. In the Western world the game is practised by a yearly increasing number of players. On the {Internet} Go players meet, play and talk 24 hours/day on the {Internet Go Server} (IGS). {(http://www.cwi.nl/~jansteen/go/go.html)} {Usenet} newsgroup: {news:rec.games.go}. (1995-03-17) goal In {logic programming}, a {predicate} applied to its {arguments} which the system attempts to prove by matching it against the {clauses} of the program. A goal may fail or it may succeed in one or more ways. (1997-07-14) Go Back N A {data link layer} {protocol}. gobble 1. To consume, usually used with "up". "The output spy gobbles characters out of a {tty} output buffer." 2. To obtain, usually used with "down". "I guess I'll gobble down a copy of the documentation tomorrow." See also {snarf}. [{Jargon File}] Godzillagram /god-zil'*-gram/ [Japan's national hero and {datagram}] 1. A network packet that in theory is a broadcast to every machine in the universe. The typical case is an IP datagram whose destination IP address is [255.255.255.255]. Fortunately, few gateways are foolish enough to attempt to implement this case! 2. A network packet of maximum size. An {IP} Godzillagram has 65,536 {octets}. Compare {super source quench}. Goedel (After the mathematician {Kurt Gödel}) A {declarative}, general-purpose language for {artificial intelligence} based on {logic programming}. It can be regarded as a successor to {Prolog}. The {type system} is based on {many-sorted logic} with {parametric polymorphism}. Modularity is supported, as well as {infinite precision arithmetic} and {finite set}s. Goedel has a rich collection of system {modules} and provides {constraint} solving in several domains. It also offers {metalogical} facilities that provide significant support for {metaprogram}s that do analysis, transformation, compilation, verification, and debugging. A significant subset of Goedel has been implemented on top of {SISCtus Prolog} by Jiwei Wang . {FTP Bristol, UK (ftp://ftp.cs.bris.ac.uk/goedel)}, {FTP K U Leuven (ftp://ftp.cs.kuleuven.ac.be/pub/logic-prgm/goedel)}. E-mail: . (1995-05-02) go-faster stripes {chrome}. Mainstream in some parts of UK. [{Jargon File}] (1998-07-05) Gofer A {lazy} {functional language} designed by Mark Jones at the {Programming Research Group}, Oxford, UK in 1991. It is very similar to {Haskell} 1.2. It has {lazy evaluation}, {higher order function}s, {pattern matching}, and {type class}es, lambda, case, conditional and let expressions, and wild card, "as" and {irrefutable patterns}. It lacks {modules}, {arrays} and standard {classes}. Gofer comes with an {interpreter} (in C), a {compiler} which compiles to {C}, documentation and examples. Unix Version 2.30 (1994-06-10) Mac_Gofer version 0.16 beta. Ported to {Sun}, {Acorn} {Archimedes}, {IBM PC}, {Macintosh}, {Atari}, {Amiga}. Version 2.30 added support for contexts in datatype and member function definitions, Haskell style {arrays}, an external function calling mechanism for gofc, an experimental implementation of Launchbury/Peyton Jones style lazy functional state threads, an experimental implementation of "do" notation for {monad comprehensions}. Latest version: {HUGS}. ["Introduction to Gofer 2.20", M.P. Jones.] [The implementation of the Gofer functional programming system, Mark P. Jones, Research Report YALEU/DCS/RR-1030, Yale University, Department of Computer Science, May 1994. FTP: nebula.cs.yale.edu/pub/yale-fp/reports]. {(http://www.cs.nott.ac.uk/Department/Staff/mpj/)} {FTP Yale (ftp://nebula.cs.yale.edu/)}, {FTP Glasgow (ftp://ftp.dcs.glasgow.ac.uk/)}, {FTP Chalmers (ftp://ftp.cs.chalmers.se/pub/haskell/gofer/)}. (1995-02-14) Goffin A {definitional constraint language} for {declarative} parallel programming. Goffin systematically integrates {equational constraint}s and functions within a uniform framework of {concurrent} programming. Goffin is an embedding of a functional language kernel ({Haskell}) into a layer of constraint logic, which allows {logical variable}s inside functional expressions. In order to preserve {referential transparency}, functional {reduction} suspends until logical variables become bound. Logical variables are bound by equational constraints, which impose relations over expressions. Hence, constraints are the means to structure the concurrent reduction of functional expressions. (1995-02-21) go flatline [{Cyberpunk} SF, refers to flattening of EEG traces upon brain-death] also "flatlined". 1. To {die}, terminate, or fail, especially irreversibly. In hacker parlance, this is used of machines only, human death being considered somewhat too serious a matter to employ jargon-jokes about. 2. To go completely quiescent; said of machines undergoing controlled shutdown. "You can suffer file damage if you shut down Unix but power off before the system has gone flatline." 3. Of a video tube, to fail by losing vertical scan, so all one sees is a bright horizontal line bisecting the screen. [{Jargon File}] GO-GO {ALPS} GOL General Operating Language. Subsystem of {DOCUS}. [Sammet 1969, p.678]. golden [Probabaly from folklore's "golden egg"] When used to describe a magnetic medium (e.g. "golden disk", "golden tape"), describes one containing a tested, up-to-spec, ready-to-ship software version. Compare {platinum-iridium}. [{Jargon File}] golf ball printer The IBM 2741, a slow but letter-quality printing device and terminal based on the IBM Selectric typewriter. The "golf ball" was a little spherical frob bearing reversed embossed images of 88 different characters arranged on four parallels of latitude; one could change the font by swapping in a different golf ball. This was the technology that enabled {APL} to use a non-{EBCDIC}, non-{ASCII}, and in fact completely non-standard {character set}. This put it 10 years ahead of its time - where it stayed, firmly rooted, for the next 20, until {character displays} gave way to programmable {bit-mapped} devices with the flexibility to support other character sets. (1994-12-15) GOM Good Old MAD. Don Boettner, U Mich. MAD for the IBM 360. Parts of the MTS {time-sharing} system were written in GOM. gonk /gonk/ 1. To prevaricate or to embellish the truth beyond any reasonable recognition. In German the term is (mythically) "gonken"; in Spanish the verb becomes "gonkar". "You're gonking me. That story you just told me is a bunch of gonk." In German, for example, "Du gonkst mir" (You're pulling my leg). See also {gonkulator}. 2. (British) To grab some sleep at an odd time. Compare {gronk out}. [{Jargon File}] (1995-03-07) gonkulator /gon'kyoo-lay-tr/ (From "Hogan's Heroes", the TV series) A pretentious piece of equipment that actually serves no useful purpose. Usually used to describe one's least favourite piece of computer hardware. See {gonk}. [{Jargon File}] (1995-03-07) GOOD {Graph-Oriented Object Database} Good Thing (From the 1930 Sellar and Yeatman parody "1066 And All That") Often capitalised; always pronounced as if capitalised. 1. Self-evidently wonderful to anyone in a position to notice: "The {Trailblazer}'s 19.2 K{baud} {PEP} mode with {on-the-fly} {Lempel-Ziv compression} is a Good Thing for sites relaying {netnews}". 2. Something that can't possibly have any ill side-effects and may save considerable grief later: "Removing the {self-modifying code} from that {shared library} would be a Good Thing". 3. When said of software tools or libraries, as in "{Yacc} is a Good Thing", specifically connotes that the thing has drastically reduced a programmer's work load. Opposite: {Bad Thing}, compare {big win}. [{Jargon File}] (1995-05-07) Google A {World-Wide Web} site featuring a very large and fast {Web} {search engine}. The site's name is apparently derived from "{googol}", but note the difference in spelling. {Home (http://www.google.com/)}. (2001-03-29) googol The number represented in base-ten by a one with a hundred zeroes after it. See also {googolplex}. [Origin?] (2001-03-29) googolplex The number represented in base-ten by a one with a {googol} zeroes after it. (2001-03-29) gopher A {distributed} document retrieval system which started as a {Campus Wide Information System} at the {University of Minnesota}, and which was popular in the early 1990s. Gopher is defined in {RFC 1436}. The protocol is like a primitive form of {HTTP} (which came later). Gopher lacks the {MIME} features of HTTP, but expressed the equivalent of a document's {MIME type} with a one-character code for the "{Gopher object type}". At time of writing (2001), all Web browers should be able to access gopher servers, although few gopher servers exist anymore. {Tim Berners-Lee}, in his book "Weaving The Web" (pp.72-73), related his opinion that it was not so much the protocol limitations of gopher that made people abandon it in favor of HTTP/{HTML}, but instead the legal missteps on the part of the university where it was developed: "It was just about this time, spring 1993, that the University of Minnesota decided that it would ask for a license fee from certain classes of users who wanted to use gopher. Since the gopher software being picked up so widely, the university was going to charge an annual fee. The browser, and the act of browsing, would be free, and the server software would remain free to nonprofit and educational institutions. But any other users, notably companies, would have to pay to use gopher server software. "This was an act of treason in the academic community and the Internet community. Even if the university never charged anyone a dime, the fact that the school had announced it was reserving the right to charge people for the use of the gopher protocols meant it had crossed the line. To use the technology was too risky. Industry dropped gopher like a hot potato." (2001-03-31) Gopher client A program which runs on your local computer and provides a {user interface} to the {Gopher} {protocol} and to gopher servers. {Web browsers} can act as Gopher clients and simple Gopher-only clients are available for ordinary terminals, the {X Window System}, {GNU Emacs}, and other systems. {(ftp://boombox.micro.umn.edu/)} (2001-03-31) Gopher object type A character specifying how to display a {Gopher} document. Current types are: 0 document 1 menu 2 CSO phone book entity 3 error 4 binhex binary 5 DOS binary (deprecated) 6 UU binary (deprecated) 7 index search 8 telnet connection 9 binary + duplicate server for previous object I image M MIME document T tn3270 based telnet connection c cal g GIF image h HTML s binary u {Usenet} newsgroup (1999-10-14) gorets /gor'ets/ The unknown ur-noun, fill in your own meaning. Found especially on the {Usenet} newsgroup alt.gorets, which seems to be a running contest to redefine the word by implication in the funniest and most peculiar way, with the understanding that no definition is ever final. [A correspondent from the Former Soviet Union informs me that "gorets" is Russian for "mountain dweller" - ESR] Compare {frink}. [{Jargon File}] gorilla arm The side-effect that destroyed touch-screens as a mainstream input technology despite a promising start in the early 1980s. It seems the designers of all those {spiffy} touch-menu systems failed to notice that humans aren't designed to hold their arms in front of their faces making small motions. After more than a very few selections, the arm begins to feel sore, cramped, and oversized - the operator looks like a gorilla while using the touch screen and feels like one afterwards. This is now considered a classic cautionary tale to human-factors designers; "Remember the gorilla arm!" is shorthand for "How is this going to fly in *real* use?". go root [Unix] To temporarily enter {root mode} in order to perform a privileged operation. This use is deprecated in Australia, where the verb "root" refers to animal sex. See {su}. [{Jargon File}] gorp /gorp/ (CMU, perhaps from the canonical hiker's food, Good Old Raisins and Peanuts) Another {metasyntactic variable}, like {foo} and {bar}. GOSIP {Government OSI Profile} Gosling, James {James Gosling} GOSMACS /goz'maks/ Gosling Emacs. The first {Emacs} implementation in {C}, predating but now largely eclipsed by {GNU} {Emacs}. Originally {freeware}; a commercial version is now modestly popular as {UniPress Emacs}. The author (James Gosling) went on to invent {NeWS}. [{Jargon File}] Gosperism /gos'p*r-izm/ A hack, invention, or saying due to arch-hacker R. William (Bill) Gosper. This notion merits its own term because there are so many of them. Many of the entries in {HAKMEM} are Gosperisms. See also {life}. GOSPL Graphics-Oriented Signal Processing Language. A graphical DSP language for simulation. ["Graphic Oriented Signal Processing Language - GOSPL", C.D. Covington et al, Proc ICASSP-87, 1987]. gotcha A {misfeature} of a system, especially a programming language or environment, that tends to breed {bug}s or mistakes because it both enticingly easy to invoke and completely unexpected and/or unreasonable in its outcome. For example, a classic gotcha in {C} is the fact that if (a=b) {code;} is syntactically valid and sometimes even correct. It puts the value of "b" into "a" and then executes "code" if "a" is non-zero. What the programmer probably meant was if (a==b) {code;} which executes "code" if "a" and "b" are equal. [{Jargon File}] (1995-04-17) goto (Or "GOTO", "go to", "GO TO", "JUMP", "JMP") A construct and {keyword} found in several higher-level programming languages (e.g. {Fortran}, {COBOL}, {BASIC}, {C}) to cause an {unconditional jump} or transfer of {control} from one point in a program to another. The destination of the jump is usually indicated by a {label}. In some languages, a label is a line number, in which case every statement may be labelled, in others a label is an optional alphanumeric {identifier}. In any case, the destination label usually follows the GOTO keyword. Use of the GOTO instruction in {high level language} programming fell into disrepute with the development and general acceptance of {structured programming}, and especially following the famous article "GOTO statement {considered harmful}". Since a GOTO is effectively an {assignment} to the {program counter}, it is tempting to make the generalisation "assignment considered harmful" and indeed, this is the basis of {functional programming}. Nearly(?) all {machine language} {instruction sets} include a GOTO instruction, though in this context it is usually called branch or jump or some {mnemonic} based on these. See also {COME FROM}. (2000-12-13) Gottlob Frege (1848-1925) A mathematician who put mathematics on a new and more solid foundation. He purged mathematics of mistaken, sloppy reasoning and the influence of Pythagoras. Mathematics was shown to be a subdivision of {formal logic}. [Where?] (1997-07-14) gov The {top-level domain} for US government bodies. (1999-01-26) Government OSI Profile (GOSIP) A subset of {OSI} {standards} specific to US Government procurements, designed to maximize {interoperability} in areas where plain OSI standards are ambiguous or allow excessive options. (1995-12-13) go voice When two or more parties stop communicating digitally and resuming the conversation via voice communication over the telephone. Prototypically this is used (e.g., "Wanna go voice?") between two modem users to denote the action of picking up the phone while shutting off the modem, in order to use the same line for voice communication as had was being used for data transmission. Compare: {Voice-Net}. (1997-01-31) GP Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). gp The {country code} for Guadeloupe. (1999-01-27) GPF {General Protection failure}/fault GPIB {IEEE 488} GPL 1. {General Purpose Language}. 2. ["A Sample Management Application Program in a Graphical Data-driven Programming language", A.L. Davis et al, Digest of Papers, Compcon Spring 81, Feb 1981, pp. 162-167]. 3. {Genken Programming Language}. 4. {General Public License}. [{Jargon File}] GPM {General Purpose Macro-generator} GPRS {General Packet Radio Service} GPS {Global Positioning System} GPSS General Purpose Systems Simulator. Geoffrey Gordon, 1960. Discrete simulations. "The Application of GPSS V to Discrete System Simulation", G. Gordon, P-H 1975. Versions include GPSS II (1963), GPSS III (1965), GPS/360 (1967), and GPSS V (1970). GPV {General Public Virus} GPX Early system on UNIVAC II. Listed in CACM 2(5):16 (May 1959). gq The {country code} for Equatorial Guinea. (1999-01-27) gr The {country code} for Greece. (1999-01-27) GRAAL ("Grail") General Recursive Applicative and Algorithmic Language. FP with polyadic combinators. "Graal: A Functional Programming System with Uncurryfied Combinators and its Reduction Machine", P. Bellot in ESOP 86, G. Goos ed, LNCS 213, Springer 1986. Grace Hopper US Navy Rear Admiral Grace Brewster Hopper (1906-12-09 to 1992-01-01), née Grace Brewster Murray. Hopper is believed to have concieved the concept of the {compiler} with the {A-0} in 1952. She also developed the first commercial {high-level language}, which eventually evolved into {COBOL}. She worked on the {Mark I} computer with Howard Aiken and with {BINAC} in 1949. She is credited with having coined the term "debug", and the adage "it is always easier to ask forgiveness than it is to get permission" (with various wordings), which has been the guiding principle in {sysadmin} decisions ever since. See also the entries {debug} and {bug}. Hopper is buried at Arlington National Cemetery. In 1994, the US Navy named a new ship, the guided-missile destroyer {USS Hopper (http://www.hopper.navy.mil/)}, after her. (1999-06-29) GRAF GRaphic Additions to Fortran. {Fortran} plus graphic data types. ["GRAF: Graphic Additions to Fortran", A. Hurwitz et al, Proc SJCC 30 (1967)]. [Sammet 1969, p. 674]. (1995-01-23) Graffiti Handwriting recognition software for the {Newton} and {Zoomer} which recognises symbols that aren't necessarily letters. This gives greater speed and accuracy. It was written by {Berkeley Softworks}. (1995-01-24) GRAIL Graphical Input Language. A {flow chart} language entered on a graphics tablet. The graphical follow-on to {JOSS}. ["The GRAIL Language and Operations", T.O. Ellis et al, RM-6001-ARPA, RAND, Sept 1969]. (1995-01-23) GRAIN A pictorial {query language}. ["Pictorial Information Systems", S.K. Chang et al eds, Springer 1980]. (1995-01-23) grain {granularity} GRAM An extension of {BNF} used by the {SIS} compiler generator. ["SIS - Semantics Implementation System", P.D. Mosses, TR DAIMI MD-30, Aarhus U, Denmark]. (1995-01-23) grammar A formal definition of the syntactic structure of a language (see {syntax}), normally given in terms of {production rule}s which specify the order of constituents and their sub-constituents in a {sentence} (a well-formed string in the language). Each rule has a left-hand side symbol naming a syntactic category (e.g. "noun-phrase" for a {natural language} grammar) and a right-hand side which is a sequence of zero or more symbols. Each symbol may be either a {terminal symbol} or a non-terminal symbol. A terminal symbol corresponds to one "{lexeme}" - a part of the sentence with no internal syntactic structure (e.g. an identifier or an operator in a computer language). A non-terminal symbol is the left-hand side of some rule. One rule is normally designated as the top-level rule which gives the structure for a whole sentence. A grammar can be used either to parse a sentence (see {parser}) or to generate one. Parsing assigns a terminal syntactic category to each input token and a non-terminal category to each appropriate group of tokens, up to the level of the whole sentence. Parsing is usually preceded by {lexical analysis}. Generation starts from the top-level rule and chooses one alternative production wherever there is a choice. See also {BNF}, {yacc}, {attribute grammar}, {grammar analysis}. grammar analysis A program written in {ABC} for answering such questions as "what are the start symbols of all rules", "what symbols can follow this symbol", "which rules are left recursive", and so on. Includes a grammar of {ISO Pascal}. Version 1 by Steven Pemberton . Ports to {Unix}, {MS-DOS}, {Atari}, {Macintosh}. FTP: ftp.eu.net, ftp.nluug.net programming/languages/abc/examples/grammar/. (1993-07-05) grammatical inference Deducing a {grammar} from given examples. Also known as "inductive inference" and recently as "computational learning". granularity The size of the units of {code} under consideration in some context. The term generally refers to the level of detail at which code is considered, e.g. "You can specify the granularity for this profiling tool". The most common computing use is in parallelism where "fine grain parallelism" means individual tasks are relatively small in terms of code size and execution time, "coarse grain" is the opposite. You talk about the "granularity" of the parallelism. The smaller the granularity, the greater the potential for parallelism and hence speed-up but the greater the overheads of synchronisation and communication. (1997-05-08) Grapes A {Modula}-like system description language. E-mail: . ["GRAPES Language Description. Syntax, Semantics and Grammar of GRAPES-86", Siemens Nixdorf Inform, Berlin 1991, ISBN 3-8009-4112-0]. Grapevine A distributed system project. [Who? Where? Why?] graph 1. A collection of {nodes} and {edges}. See also {connected graph}, {degree}, {directed graph}, {Moore bound}, {regular graph}, {tree}. 2. A visual representation of algebraic equations or data. (1996-09-22) Graph Algorithm and Software Package (GASP) A {PL/I} extension for programming graph {algorithms}. ["GASP - Gprah Algorithm Software Package", S. Chase, TR CS Dept, U Illinois, Dec 1969]. (1998-02-27) graph coloring {graph colouring} graph colouring A {constraint-satisfaction} problem often used as a test case in research, which also turns out to be equivalent to certain real-world problems (e.g. {register allocation}). Given a {connected graph} and a fixed number of colours, the problem is to assign a colour to each node, subject to the constraint that any two connected nodes cannot be assigned the same colour. This is an example of an {NP-complete} problem. See also {four colour map theorem}. Graphic ALGOL Generation of shaded perspective picures in real time. ["An Extended ALGOL 60 for Shaded Computer Graphics", B. Jones, Proc ACM Symp on Graphic Languages, Apr 1976]. Graphical Kernel System (GKS) The widely recognised standard {ANSI} X3.124 for graphical input/output. GKS is worked on by the {ISO}/{IEC} group {JTC1/SC24}. It provides applications programmers with standard methods of creating, manipulating, and displaying or printing computer graphics on different types of computer graphics output devices. It provides an abstraction to save programmers from dealing with the detailed capabilities and interfaces of specific hardware. GKS defines a basic two-dimensional graphics system with: uniform input and output {primitives}; a uniform interface to and from a {GKS metafile} for storing and transferring graphics information. It supports a wide range of graphics output devices including such as {printers}, {plotters}, {vector graphics} devices, {storage tubes}, {refresh displays}, {raster displays}, and {microfilm recorders}. (1999-04-01) Graphical User Interface (GUI) The use of pictures rather than just words to represent the input and output of a program. A program with a GUI runs under some {windowing system} (e.g. The {X Window System}, {Microsoft Windows}, {Acorn} {RISC OS}, {NEXTSTEP}). The program displays certain {icons}, {buttons}, {dialogue boxes} etc. in its {windows} on the screen and the user controls it mainly by moving a {pointer} on the screen (typically controlled by a {mouse}) and selecting certain objects by pressing buttons on the mouse while the pointer is pointing at them. Though {Apple Computer} would like to claim they invented the GUI with their {Macintosh} {operating system}, the concept originated in the early 1970s at {Xerox}'s {PARC} laboratory. Compare {command line interface}. (1996-01-12) Graphic Display Interface (GDI) {graphics adaptor}. (1995-03-16) Graphic Language For specifying graphic operations. ["A Problem Oriented Graphic Language", P.J. Schwinn, proc ACM 22nd Natl Conf, 1967]. [Sammet 1969, p. 677]. graphics accelerator {Hardware} (often an extra circuit board) to perform tasks such as plotting lines and surfaces in two or three dimensions, filling, shading and hidden line removal. (1997-07-14) graphics adapter {graphics adaptor} graphics adaptor (Or "graphics adapter", "graphics card", "video adaptor", etc.) A circuit board fitted to a computer, especially an {IBM PC}, containing the necessary {video memory} and other electronics to provide a {bitmap display}. Adaptors vary in the {resolution} (number of {pixels}) and number of colours they can display, and in the {refresh rate} they support. These parameters are also limited by the {monitor} to which the adaptor is connected. A number of such {display standards}, e.g. {SVGA}, have become common and different {software} requires or supports different sets. (1996-09-16) graphics card {graphics adaptor} Graphics Interchange Format /gif/, occasionally /jif/ (GIF, GIF 89A) A standard for digitised {images} compressed with the {LZW} {algorithm}, defined in 1987 by {CompuServe} (CIS). Graphics Interchange Format and GIF are service marks of {CompuServe} Incorporated. This only affects use of GIF within Compuserve, and pass-through licensing for software to access them, it doesn't affect anyone else's use of GIF. It followed from a 1994 legal action by {Unisys} against CIS for violating Unisys's {LZW} {software patent}. The CompuServe Vice President has stated that "CompuServe is committed to keeping the GIF 89A specification as an open, fully-supported, non-proprietary specification for the entire on-line community including the {World-Wide Web}". {Filename extension}: .gif. {File format (ftp://peipa.essex.ac.uk/ipa/info/file-formats)}. {GIF89a specification (http://asterix.seas.upenn.edu/~mayer/lzw_gif/gif89a.html)}. See also {progressive coding}, {animated GIF}. (2000-09-12) Graphics Interface Format You mean "{Graphics Interchange Format}". (1999-10-11) Graphics Language Object System (GLOS) A language with statements for describing[?] graphics objects (line, circle, polygon, etc), written by Dan Johnston and Brian Hicks at the University of Queensland, St. Lucia in 1978. New objects are defined using {procedures}. 2-D transformations are context dependent and may be nested. [Reference?] (2000-09-28) graphic workstation A {workstation} specifically configured for graphics works such as {image manipulation}, {bitmap graphics} ("paint"), and {vector graphics} ("draw") type applications. Such work requires a powerful {CPU} and a high {resolution} display. A graphic workstation is very similar to a {CAD} workstation and, given the typical specifications of personal computers currently available in 1999, the distinctions are very blurred and are more likely to depend on availability of specific {software} than any detailed hardware requirements. (1999-05-04) Graph-Oriented Object Database (GOOD) A graph manipulation language for use as a {database query language}. ["A Graph-Oriented Object Database Model", M. Gyssens et al, Proc ACM Symp Princs of Database Sys, Mar 1990]. (1995-03-07) graph plotter {plotter} graph reduction A technique invented by Chris Wadsworth where an expression is represented as a {directed graph} (usually drawn as an inverted tree). Each node represents a function call and its subtrees represent the arguments to that function. Subtrees are replaced by the expansion or value of the expression they represent. This is repeated until the tree has been reduced to a value with no more function calls (a {normal form}). In contrast to {string reduction}, graph reduction has the advantage that common subexpressions are represented as pointers to a single instance of the expression which is only reduced once. It is the most commonly used technique for implementing {lazy evaluation}. graph rewriting system An extension of a {term rewriting system} which uses {graph reduction} on terms represented by {directed graph}s to avoid duplication of work by sharing expressions. GRAPPLE GRAPh Processing LanguagE. 1968. ["A Directed Graph Representation for Computer Simulation of Belief Systems", L.G. Tesler et al, Math Biosciences 2:19-40 (1968)]. GRAS A {public domain} {graph-oriented database} system for {software engineering} applications from {RWTH Aachen}. GRASP/Ada Graphical Representation of Algorithms, Structures and Processes. ["A Graphically Oriented Specification Language for Automatic Code Generation", J.H. Cross, Auburn U, NASA CR-183212, 1989]. GRASPIN An Esprit project to develop a personal software engineering environment to support the construction and verification of distributed and non-sequential software systems. grault /grawlt/ Yet another {metasyntactic variable}, invented by Mike Gallaher and propagated by the {GOSMACS} documentation. See {corge}. [{Jargon File}] Gray A {parser generator} written in {Forth} by Martin Anton Ertl . Gray takes grammars in an {extended BNF} and produces executable Forth code for {recursive descent parser}s. There is no special support for error handling. Version 3 runs under {Tile Forth} Release 2 by Mikael Patel. (1992-05-22) graybar land The place you go while you're staring at a computer that's processing something very slowly (while you watch the grey bar creep across the screen). "I was in graybar land for hours, waiting for that CAD rendering". (1997-04-17) gray code A binary sequence used to convert the angular position of a disk to digital form. Gray code has the property that only one bit changes between any two positions (the two positions' codes have a {Hamming distance} of one). A radial line of sensors reads the code off the surface of the disk and if the disk is half-way between two positions each sensor might read its bit from both positions at once but since only one bit differs between the two, the value read is guaranteed to be one of the two valid values rather than some third (invalid) combination (a {glitch}). One possible {algorithm} for generating a gray code sequence is to toggle bits in the order 0, 1, 0, 2, 0, 1, 0, 3, ... This can also be stated as "toggle the lowest numbered bit that results in a new code". Here is a four bit gray code sequence generated in this way: 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 [Why "Gray"?] (1994-11-09) gray-scale US spelling of "{grey-scale}". Grinning, running and ducking. See {emoticon}. (1995-03-17) GRE {Generic Routing Encapsulation} greater than ">" {ASCII} character 62. Common names: {ITU-T}: greater than; ket ("<" = bra); right angle; right angle bracket; right broket. Rare: into, towards; write to; blow ("<" = suck); gozinta; out; zap (all from {Unix} {I/O redirection}); {INTERCAL}: right angle. See also {less than}. (1995-03-17) greatest common divisor (GCD) A function that returns the largest positive {integer} that both arguments are integer multiples of. See also {Euclid's Algorithm}. Compare: {lowest common multiple}. (1999-11-02) greatest lower bound (glb, meet, infimum) The greatest lower bound of two elements, a and b is an element c such that c <= a and c <= b and if there is any other lower bound c' then c' <= c. The greatest lower bound of a set S is the greatest element b such that for all s in S, b <= s. The glb of mutually comparable elements is their minimum but in the presence of incomparable elements, if the glb exists, it will be some other element less than all of them. glb is the dual to {least upper bound}. (In {LaTeX} "<=" is written as {\sqsubseteq}, the glb of two elements a and b is written as a {\sqcap} b and the glb of set S as \bigsqcap S). (1995-02-03) Great Renaming The {flag day} in 1986 on which all of the non-local groups on the {Usenet} had their names changed from the net.- format to the current multiple-hierarchies scheme. Used especially in discussing the history of newsgroup names. "The oldest sources group is comp.sources.misc; before the Great Renaming, it was net.sources." {FAQ (http://www.vrx.net/usenet/history/rename.html)}. [{Jargon File}] (2000-07-14) Great Runes Uppercase-only text or display messages. Some archaic {operating system}s still emit these. See also {runes}, {smash case}, {fold case}. Decades ago, back in the days when it was the sole supplier of long-distance hardcopy transmittal devices, the Teletype Corporation was faced with a major design choice. To shorten code lengths and cut complexity in the printing mechanism, it had been decided that teletypes would use a monocase font, either ALL UPPER or all lower. The Question Of The Day was therefore, which one to choose. A study was conducted on readability under various conditions of bad ribbon, worn print hammers, etc. Lowercase won; it is less dense and has more distinctive letterforms, and is thus much easier to read both under ideal conditions and when the letters are mangled or partly obscured. The results were filtered up through {management}. The chairman of Teletype killed the proposal because it failed one incredibly important criterion: "It would be impossible to spell the name of the Deity correctly." In this way (or so, at least, hacker folklore has it) superstition triumphed over utility. Teletypes were the major input devices on most early computers, and terminal manufacturers looking for corners to cut naturally followed suit until well into the 1970s. Thus, that one bad call stuck us with Great Runes for thirty years. (1994-12-02) Great Worm {Internet Worm} greek 1. To display text as abstract dots and lines in order to give a preview of layout without actually being legible. This is faster than drawing the characters correctly which may require scaling or other transformations. Greeking is particularly useful when displaying a reduced image of a document where the text would be too small to be legible on the display anyway. 2. {lorem ipsum}. (1999-06-27) greeking {greek} Green A language proposed by Cii {Honeywell-Bull} to meet the DoD {Ironman} requirements which led to {Ada}. This language won in 1979. ["On the GREEN Language Submitted to the DoD", E.W. Dijkstra, SIGPLAN Notices 13(10):16-21 (Oct 1978)]. (1994-12-02) Green Book 1. Informal name for one of the four standard references on {PostScript}. The other three official guides are known as the {Blue Book}, the {Red Book}, and the {White Book}. ["PostScript Language Program Design", Adobe Systems, Addison-Wesley, 1988 (ISBN 0-201-14396-8)]. 2. Informal name for one of the three standard references on {SmallTalk}. Also associated with blue and red books. ["Smalltalk-80: Bits of History, Words of Advice", by Glenn Krasner (Addison-Wesley, 1983; QA76.8.S635S58; ISBN 0-201-11669-3)]. 3. The "X/Open Compatibility Guide", which defines an international standard {Unix} environment that is a proper superset of {POSIX}/SVID. It also includes descriptions of a standard utility toolkit, systems administrations features, and the like. This grimoire is taken with particular seriousness in Europe. See {Purple Book}. 4. The {IEEE} 1003.1 {POSIX} Operating Systems Interface standard has been dubbed "The Ugly Green Book". 5. Any of the 1992 standards issued by the {ITU-T}'s tenth plenary assembly. These include, among other things, the dreadful {X.400} {electronic mail} standard and the Group 1 through 4 fax standards. 6. {Green Book CD-ROM}. See also {book titles}. [{Jargon File}] (1996-12-03) Green Book CD-ROM A standard {CD-ROM} format developed by {Philips} for {CD-i}. It is {ISO 9660} compliant and uses mode 2 form 2 addressing. It can only be played on drives which are XA ({Extended Architecture}) compatible. Many Green Book discs contain {CD-i} applications which can only be played on a {CD-i} player but many others contain films or music videos. Video CDs in Green Book format are normally labelled "Digital Video on CD" Green Book was obsoleted by {White book CD-ROM} in March 1994. (1994-11-02) green bytes (Or "green words") Meta-information embedded in a file, such as the length of the file or its name; as opposed to keeping such information in a separate description file or record. The term comes from an {IBM} user's group meeting (ca. 1962) at which these two approaches were being debated and the diagram of the file on the blackboard had the "green bytes" drawn in green. By extension, the non-data bits in any self-describing format. "A GIF file contains, among other things, green bytes describing the packing method for the image". Compare {out-of-band}, {zigamorph}, {fence}. [{Jargon File}] (1994-11-02) green card [after the "IBM System/360 Reference Data" card] A summary of an assembly language, even if the colour is not green. Less frequently used now because of the decrease in the use of assembly language. "I'll go get my green card so I can check the {addressing mode} for that instruction." Some green cards are actually booklets. The original green card became a yellow card when the System/370 was introduced, and later a yellow booklet. An anecdote from IBM refers to a scene that took place in a programmers' terminal room at Yorktown in 1978. A luser overheard one of the programmers ask another "Do you have a green card?" The other grunted and passed the first a thick yellow booklet. At this point the luser turned a delicate shade of olive and rapidly left the room, never to return. [{Jargon File}] green lightning [IBM] 1. Apparently random flashing streaks on the face of 3278-9 terminals while a new symbol set is being downloaded. This hardware bug was left deliberately unfixed, as some genius within IBM suggested it would let the user know that "something is happening". That, it certainly does. Later microprocessor-driven IBM colour graphics displays were actually *programmed* to produce green lightning! 2. [proposed] Any bug perverted into an alleged feature by adroit rationalisation or marketing. "Motorola calls the CISC cruft in the 88000 architecture "compatibility logic", but I call it green lightning". See also {feature}. green machine A computer or peripheral device that has been designed and built to military specifications for field equipment (that is, to withstand mechanical shock, extremes of temperature and humidity, and so forth). Comes from the olive-drab "uniform" paint used for military equipment. [{Jargon File}] green monitor {Advanced Power Management} Green's Theorem (TMRC) For any story, in any group of people there will be at least one person who has not heard the story. A refinement of the theorem states that there will be *exactly* one person (if there were more than one, it wouldn't be as bad to re-tell the story). The name of this theorem is a play on a fundamental theorem in calculus. [{Jargon File}] (1994-12-16) Greenwich Mean Time {Coordinated Universal Time} Greg Olson President and CEO of {Sendmail Inc.}. Olson is an industry veteran who worked on {distributed systems} at {Summit Systems Inc.} then at {Britton Lee Inc.}, {Sybase Inc.} and {Integrated Systems Inc.}. (1998-08-25) grep A {Unix} command for searching files for lines matching a given {regular expression} (RE). Named after the {qed}/{ed} editor subcommand "g/re/p", where re stands for a regular expression, to Globally search for the Regular Expression and Print the lines containing matches to it. There are two other variants, fgrep which searches only for fixed strings and {egrep} which accepts extended REs but is usually the fastest of the three. Used by extension to mean "to look for something by pattern". When browsing through a large set of files, one may speak of "grepping around". "Grep the bulletin board for the system backup schedule, would you?" See also {vgrep}. [{Jargon File}] grey-scale (US "gray-scale") 1. Composed of (discrete) shades of grey. If the {pixels} of a grey-scale {image} have N {bit}s, they may take values from zero, representing black up to 2^N-1, representing white with intermediate values representing increasingly light shades of grey. If N=1 the image is not called grey-scale but could be called {monochrome}. 2. A range of acurately known shades of grey printed out for use in calibrating those shades on a display or printer. (1995-03-17) Greystone Technologies The producers of the {GT/M} {MUMPS} compiler and {GT/SQL} {pre-processor} for {VAX} and {DEC Alpha}. [Address?] (1995-01-10) GRG A computer algebra system for differential geometry, gravitation and field theory. Version 3.1 works with PSL-based REDUCE 3.3 or 3.4. E-mail: V.V. Zhytnikov . (1994-12-16) GRIB GRid In Binary. The World Meteorological Organization's data format. (1995-01-10) grick /grik/ ({WPI}, first used by Tim Haven to describe "grick trigonometry", a shortcut method of determing attack angles in grid-based games like Star Trek) Any integral increment of measurement. E.g. "Please turn the stereo up a few gricks". (1995-01-31) grilf Girl-friend. Like {newsfroup} and {filk}, a typo incarnated as a new word. Seems to have originated sometime in 1992. [{Jargon File}] (1995-01-31) Grim File Reaper (GFR) An {ITS} and {LISP Machine} utility to remove files according to some program-automated or semi-automatic manual procedure, especially one designed to reclaim mass storage space or reduce name-space clutter (the original GFR actually moved files to tape). See also {prowler}, {reaper}. Compare {GC}, which discards only provably worthless stuff. (1996-06-20) GRIND GRaphical INterpretive Display. A graphics input language for the {PDP-9}. ["GRIND: A Language and Translator for Computer Graphics", A.P. Conn, Dartmouth, June 1969]. [{Jargon File}] (1995-01-31) grind 1. (MIT and Berkeley) To prettify hardcopy of code, especially LISP code, by reindenting lines, printing keywords and comments in distinct fonts (if available), etc. This usage was associated with the MacLISP community and is now rare; {prettyprint} was and is the generic term for such operations. 2. (Unix) To generate the formatted version of a document from the {nroff}, {troff}, {TeX}, or Scribe source. 3. To run seemingly interminably, especially (but not necessarily) if performing some tedious and inherently useless task. Similar to {crunch} or {grovel}. Grinding has a connotation of using a lot of CPU time, but it is possible to grind a disk, network, etc. See also {hog}. 4. To make the whole system slow. "Troff really grinds a PDP-11." 5. "grind grind" excl. Roughly, "Isn't the machine slow today!" [{Jargon File}] (1994-12-16) grind crank A mythical accessory to a {terminal}. A crank on the side of a monitor, which when operated makes a zizzing noise and causes the computer to run faster. Usually one does not refer to a grind crank out loud, but merely makes the appropriate gesture and noise. See {grind} and {wugga wugga}. Historical note: At least one real machine actually had a grind crank - the R1, a research machine built toward the end of the days of the great vacuum tube computers, in 1959. R1 (also known as "The Rice Institute Computer" (TRIC) and later as "The Rice University Computer" (TRUC)) had a {single-step}/free-run switch for use when debugging programs. Since single-stepping through a large program was rather tedious, there was also a crank with a cam and gear arrangement that repeatedly pushed the single-step button. This allowed one to "crank" through a lot of code, then slow down to single-step for a bit when you got near the code of interest, poke at some registers using the console typewriter, and then keep on cranking. [{Jargon File}] GRIP Graph Reduction In Parallel. Simon Peyton Jones's GRIP machine built at {UCL}, now at the {University of Glasgow}. It has many processors ({Motorola 68020} or other) on {Futurebus} with intelligent memory units. (1994-12-14) gripenet [IBM] A wry (and thoroughly unofficial) name for {IBM}'s internal {VNET} system, deriving from its common use by IBMers to voice pointed criticism of IBM management that would be taboo in more formal channels. [{Jargon File}] gritch /grich/ 1. A complaint (often caused by a {glitch}). 2. To complain. Often verb-doubled: "Gritch gritch". 3. A synonym for {glitch} (as verb or noun). (1995-01-31) grix /griks/ ({WPI}) A meta-number, said to be an integer between 6 and 7. Used either alone or with {flib} or suffixes such as -ty, -teen, etc. to denote an arbitrary integer (see {N}). "This system will {bomb} if there are grixty-flib users on it." (1995-01-31) groff GNU roff. {GNU}'s implementation of {roff} in {C++}. See also {nroff}, {troff}. Version 1.07 by James J. Clark . FTP groff-1.07.tar.z from a {GNU archive site}. (1993-03-03) grok /grok/, /grohk/ (From the novel "Stranger in a Strange Land", by Robert A. Heinlein, where it is a Martian word meaning literally "to drink" and metaphorically "to be one with") 1. To understand, usually in a global sense. Connotes intimate and exhaustive knowledge. Contrast {zen}, which is similar supernal understanding experienced as a single brief flash. See also {glark}. 2. Used of programs, may connote merely sufficient understanding. "Almost all C compilers grok the "void" type these days." [{Jargon File}] (1995-01-31) gronk /gronk/ Popularised by Johnny Hart's comic strip "B.C." but the word apparently predates that. 1. To clear the state of a {wedged} device and restart it. More severe than "to {frob}" (sense 2). 2. [TMRC] To cut, sever, smash, or similarly disable. 3. The sound made by many 3.5-inch diskette drives. In particular, the microfloppies on a Commodore {Amiga} go "grink, gronk". [{Jargon File}] gronked 1. Broken. "The teletype scanner was gronked, so we took the system down." 2. Of people, the condition of feeling very tired or (less commonly) sick. "I've been chasing that bug for 17 hours now and I am thoroughly gronked!" Compare {broken}, which means about the same as {gronk} used of hardware, but connotes depression or mental/emotional problems in people. group A group G is a non-empty {set} upon which a {binary} operator * is defined with the following properties for all a,b,c in G: Closure: G is closed under *, a*b in G Associative: * is associative on G, (a*b)*c = a*(b*c) Identity: There is an identity element e such that a*e = e*a = a. Inverse: Every element has a unique inverse a' such that a * a' = a' * a = e. The inverse is usually written with a superscript -1. (1998-10-03) Group 3 (G3) The {CCITT} fax {protocol} which uses data {compression} and allows a variety of file types (e.g. {electronic mail}, pictures, {PostScript}) to be transmitted over {analogue} telephone lines. The Group 3 protocol was published by {CCITT} in 1993. Full details of the protocol are available from {ITU-T}. See also {Group 4}. (1998-10-03) Group 4 (G4) The {CCITT} fax {protocol} which uses data {compression} and allows a variety of file types (e-mail, pictures, {PostScript}, etc.) to be transmitted over digital ({ISDN}) telephone lines. The Group 4 protocol was published by {CCITT} in 1993. Full details of the protocol are available from {ITU-T}. See also {Group 3}. (1998-09-10) Group Code Recording (GCR) A recording method used for 6250 BPI {magnetic tapes}. GCR typically uses a group of five bits of code to represent four bits of data, where the encoding ensures no more than two or three zeros occur in a row, and no more than eight or so ones occur in a row, where zeros represent an absense of magnetic change. GCR is also used on {Commodore Business Machines} {diskette} drives; the 4040, 8050, 154x, 157x and 158x series of 5.25" and 3.5" low and high density diskette drives used with 8-bit home computers circa 1977 to 1992. Also used on {Amiga} internal and external drives. Compare {NRZI}, {PE}. (1997-08-29) group identifier (gid) A unique number, between 0 an 32767, identifying a set of {users} under {Unix}. Gids are found in the /etc/{passwd} and /etc/group databases (or their {NIS} equivalents) and one is also associated with each file, indicating the group to which its group {permissions} apply. (1996-12-01) Group Separator (GS) {ASCII} character 29. (1996-06-28) Group-Sweeping Scheduling (GSS) A disk scheduling strategy in which requests are served in cycles, in a round-robin manner. To reduce disk arm movements ("{seek}ing"), the set of streams is divided into groups that are served in fixed order. Streams within a group are served according to "{SCAN}". If all clients are assigned to one group, GSS reduces to SCAN, and if all clients are assigned to separate groups, GSS effectively becomes round-robin scheduling. The service order within one group is not fixed, and a stream may in fact be first in one cycle while last in the next. This variation has to be masked by extra buffering but whereas SCAN requires buffer space for all streams, GSS can reuse the buffer for each group and effect a trade-off between {seek optimisation} and buffer requirements. (1995-11-12) Groupware See {CSCW}. Groupwise A {workgroup} application suite offering {electronic mail} and diary scheduling from {Novell, Inc.}. It can operate on a number of {platforms}. Groupwise was previously known as {WordPerfect Office}, and is an extensible system suitable for {LAN} or {WAN} operation. {Mail gateway} software is available for a number of {protocol}s including {SMTP}, allowing the exchange of mail with the {Internet}. (1995-09-23) grovel 1. To work interminably and without apparent progress. Often used transitively with "over" or "through". "The file scavenger has been groveling through the /usr directories for 10 minutes now." Compare {grind} and {crunch}. Emphatic form: "grovel obscenely". 2. To examine minutely or in complete detail. "The compiler grovels over the entire source program before beginning to translate it." "I grovelled through all the documentation, but I still couldn't find the command I wanted." [{Jargon File}] grunge /gruhnj/ 1. That which is grungy, or that which makes it so. 2. [Cambridge] Code which is inaccessible due to changes in other parts of the program. The preferred term in North America is {dead code}. gry "Angry" and "hungry" are two words that end in "gry". There are three words in the English language. What is the third word? Everyone knows what it means and everyone uses it every day. Look closely and I have already given you the third word. What is it? Answer: "language". This puzzle has circulated widely on the Internet for some years, but usually in an abbreviated form such as "Name three common English words ending in 'gry'", which has no good third answer. {(http://www.word-detective.com/gry.html)}. (2001-04-09) GS {Group Separator} gs The {country code} for South Georgia and the South Sandwich Islands. (1999-01-27) GSBL "GSBL: An Algebraic Specification Language Based on Inheritance", S. Clerici et al in in ECOOP '88, S. Gjessing et al eds, LNCS 322, Springer 1988, pp.78-92. GSI {Gensym Standard Interface} GSL Grenoble System Language. M. Berthaud, IBM, Grenoble. "GSL Language Reference Manual", M. Berthaud et al, March 1973. "A MOL-Based Software Construction System", M. Berthaud et al, in Machine Oriented Higher Level Languages, W. van der Poel, N-H 1974, pp.151-157. GSM {Global System for Mobile Communications} GSPL {Greenberg's System Programming Language}. Bernard Greenberg. (1995-05-09) GSS {Group-Sweeping Scheduling}. (1995-11-12) GSS-API {Generic Security Service Application Programming Interface} gt The {country code} for Guatemala. (1999-01-27) gtg Got to go. The user is about to stop chatting. (1999-06-07) GTL {Gunning Transceiver Logic} GT/SQL An {SQL} {pre-processor} from {Greystone Technologies} which combines {MUMPS} code with {SQL} code and generates code that can work with a {database} from both the MUMPS and SQL perspectives. This is often done when a database is to be made available in a {client/server} environment, where the MUMPS database serves one or more SQL {client}s. (1995-01-10) gu The {country code} for Guam. (1999-01-27) guaranteed scheduling A scheduling {algorithm} used in {multitasking} {operating systems} that guarantees fairness by monitoring the amount of {CPU time} spent by each user and allocating resources accordingly. [How does it allocate resources?] (1998-04-26) guard 1. In {functional programming}, a {Boolean} expression attached to a function definition specifying when (for what arguments) that definition is appropriate. 2. In (parallel) {logic programming}, a Boolean expression which is used to select a {clause} from several alternative matching clauses. See {Guarded Horn Clauses}. 3. In {parallel} languages, a {Boolean} expression which specifies when an message may be sent or received. (1995-05-09) Guarded Horn Clauses (GHC) A parallel dialect of {Prolog} by K. Ueda in which each {clause} has a {guard}. GHC is similar to {Parlog}. When several clauses match a {goal}, their guards are evaluated in parallel and the first clause whose guard is found to be true is used and others are rejected. It uses {committed-choice nondeterminism}. See also {FGHC}, {KL1}. (1995-05-09) gubbish /guhb'*sh/ (A portmanteau of "garbage" and "rubbish" which may have originated with SF author Philip K. Dick) Garbage; crap; nonsense. "What is all this gubbish?" The opposite portmanteau "rubbage" is also reported. [{Jargon File}] (1995-05-09) GUI {Graphical User Interface} GUIDE {Graphical User Interface} Development Environment from {Sun}. Guide A {hypertext} system from the University of Kent (GB) and {OWL} for displaying on-line documentation. Guide to Available Mathematical Software {Home (http://gams.nist.gov/)} (1995-04-28) guiltware /gilt'weir/ 1. A piece of {freeware} decorated with a message telling one how long and hard the author worked on it and intimating that one is a no-good freeloader if one does not immediately send the poor suffering martyr gobs of money. 2. {Shareware} that works. [{Jargon File}] gun ({ITS}, from the ":GUN" command) To forcibly terminate a program or job (computer, not career). "Some idiot left a background process running soaking up half the cycles, so I gunned it." Compare {can}. (1995-02-27) gunch /guhnch/ ({TMRC}) To push, prod, or poke at a device that has almost (but not quite) produced the desired result. Implies a threat to {mung}. [{Jargon File}] (1995-02-27) Gunning Transceiver Logic (GTL) A {standard} for electrical signals in {CMOS} circuits used to provide higher data transfer speeds with smaller voltage swings [compared with what?]. The GTL signal swings between 0.4 volts and 1.2 volts with a reference voltage of about 0.8 volts. Only a small deviation of 0.4 volts (or thereabouts) from the reference voltage is required to switch between on and off states. Therefore, a GTL signal is said to be a low voltage swing logic signal. Gunning Transceiver Logic has several advantages. The {resistive termination} of a GTL signal provides a clean signalling environment [what?]. Moreover, the low terminating voltage of 1.2 volts results in reduced voltage drops across the resistive elements. GTL has low power dissipation and can operate at high frequency and causes less {electromagnetic interference} (EMI). {GTL/BTL: A Low-Swing Solution for High-Speed Digital Logic (http://www.edtn.com/scribe/reference/appnotes/md003ecc.htm)}. (2000-01-16) gunzip The decompression utility corresponding to {gzip}. In operating systems with links, gunzip is just a link to gzip and its function can be invoked by passing a "-d" flag to gzip. (1996-01-03) Gupta Corporation The vendor of {SQLWindows}. Gupta Corporation provides application development and deployment software for {client-server} {applications}, consisting of a {relational database}, application development tools and transparent connectivity software. Gupta employs 400 people in 15 offices worldwide, including the United States, Europe and Asia. Gupta's 1993 fiscal year income was $5.6 million and their revenue was $56.1 million. Gupta sells client-server system components for networks of {personal computers}. {Home (http://www.wji.com/gupta/htmls/homepage.html)}. Address: 1060 Marsh Road, Menlo Park, CA 94025, USA. Telephone: +1 (415) 321 9500. Fax: +1 (415) 321 5471. (1997-04-28) gurfle /ger'fl/ An expression of shocked disbelief. "He said we have to recode this thing in {Fortran} by next week. Gurfle!" Compare {weeble}. [{Jargon File}] (1996-06-01) guru An expert, especially in "{Unix} guru". Implies not only {wizard} skill but also a history of being a knowledge resource for others. Less often, used (with a qualifier) for other experts on other systems, as in "VMS guru". See {source of all good bits}. [{Jargon File}] (1996-06-01) guru meditation {Amiga} equivalent of {panic} in {Unix} (sometimes just called a "guru" or "guru event"). When the system crashes, a cryptic message of the form "GURU MEDITATION #XXXXXXXX.YYYYYYYY" may appear, indicating what the problem was. An Amiga guru can figure things out from the numbers. Generally a {guru} event must be followed by a {Vulcan nerve pinch}. This term is (no surprise) an in-joke from the earliest days of the Amiga. There used to be a device called a "Joyboard" which was basically a plastic board built onto a joystick-like device; it was sold with a skiing game cartridge for the Atari game machine. It is said that whenever the prototype OS crashed, the system programmer responsible would calm down by concentrating on a solution while sitting cross-legged on a Joyboard trying to keep the board in balance. This position resembled that of a meditating guru. Sadly, the joke was removed in AmigaOS 2.04. [{Jargon File}] Guy Lewis Steele, Jr. (GLS) A software engineer whose most notable contributions to the art of computing include the design of {Scheme} (in cooperation with {Gerald Sussman}) and the design of the original command set of {Emacs}. He is also known for his contribution to the {Jargon File} and for being the first to port {TeX} (from {WAITS} to {ITS}). He wrote the book "Common Lisp", which virtually defines the language. He was working at {Sun Microsystems, Inc.} from 1996 to the present (June 2001). (2001-06-14) Guy Steele {Guy Lewis Steele, Jr.} GVL Graphical View Language. A visual language for specifying interactive graphical output by T.C.N. Graham & J.R. Cordy, Queen's University, Canada. ["GVL: A Graphical, Functional Language for the Specification of Output in Programming Languages", J.R. Cordy & T.C.N. Graham, Proc IEEE Intl Conf on Comp Lang ICCL'90 (March 1990)]. gw The {country code} for Guinea-Bissau. (1999-01-27) GW-Ada A new version of {Ada/Ed}? {MS-DOS version (ftp://wuarchive.wustl.edu/languages/ada/compiler/adaed/gwu/9309/dos)}, {Macintosh version (ftp://wuarchive.wustl.edu/languages/ada/compilers/adaed/gwu/mac)}. (1993-09-01) GW-BASIC An early version of {MS-BASIC}. (1995-05-12) gweep /gweep/ To {hack}, usually at night, or one who does so. At {WPI}, from 1977 onwards, gweeps could often be found at the College Computing Center punching cards or crashing the {PDP-10} or, later, the {DEC-20}. The term has survived the demise of those technologies, however, and is still alive in late 1991. "I'm going to go gweep for a while. See you in the morning." "I gweep from 8 PM till 3 AM during the week." "Gweep" originated as an onomatopeiac term, evoking the sound of the (once-ubiquitous) {Hazeltine 9000} terminals' bell on WPI campus. A gweep is one step above a {fweep}. [{Jargon File}] (1995-01-31) GWHIS A commercial version of {NCSA} {Mosaic} for {MS Windows} 3.x and {Windows for Workgroups}. GWHIS was released by {Quadralay} Corporation on 30 September 1994. GWHIS Viewer for {Microsoft Windows} differs from {NCSA} {Mosaic} for {Microsoft Windows} in several ways including: A {hotlist} similiar to the {X Window System} version. Edit Annotation and Delete Annotation work. All Buttons and Menu Items are "greyed out" while files are being retreived and processed. This prevents the user from queing up requests to the {TCP/IP} stack which causes many crashes. {Look and Feel} are similiar to the X version. On-line help is complete. Functional Setup program. Greater overall stability. (1994-12-16) GWM Generic Window Manager. An extensible window manager for the {X Window System}. It is built on top of an {interpreter} for the {WOOL} language. {(ftp://export.lcs.mit.edu/contrib/gwm)}, {(ftp://avahi.inria.fr/contrib/gwm)}. gy The {country code} for Guyana. (1999-01-27) Gypsy Specification and verification of {concurrent} systems software. {Message} passing using named {mailbox}es. Separately compilable units: routine (procedure, function, or process), type and constant definition, each with a list of access rights. ["Report on the Language Gypsy", A.L. Ambler et al, UT Austin ICSCS-CMP-1976-08-1]. gz {gzip} gzip {GNU} compression utility. Gzip reduces the size of the named files using {Lempel-Ziv} {LZ77 compression}. Whenever possible, each file is replaced by one with the {filename extension} ".gz". Compressed files can be restored to their original form using gzip -d or gunzip or zcat. The Unix "{compress}" utility is patented (by two separate patents, in fact) and is thus shunned by the GNU Project since it is not {free software}. They have therefore chosen gzip, which is free of any known {software patent}s and which tends to compress better anyway. All compressed files in the {GNU} {anonymous FTP} area (gnu.org/pub/gnu) are in gzip format and their names end in ".gz" (as opposed to "compress"-compressed files, which end in ".Z"). Gzip can uncompress "compress"-compressed files and "pack" files (which end in ".z"). The decompression algorithms are not patented, only compression is. The gzip program is available from any {GNU archive site} in {shar}, {tar}, or gzipped tar format (for those who already have a prior version of gzip and want faster data transmission). It works on virtually every {Unix} system, {MS-DOS}, {OS/2} and {VMS}. h 1. A simple {markup} language intended for quick conversion of existing text to {hypertext}. 2. A method of marking common words to call attention to the fact that they are being used in a nonstandard, ironic, or humorous way. Originated in the fannish catchphrase "Bheer is the One True Ghod!" from decades ago. H-infix marking of "Ghod" and other words spread into the 1960s counterculture via underground comix, and into early hackerdom either from the counterculture or from SF fandom (the three overlapped heavily at the time). More recently, the h infix has become an expected feature of benchmark names (Dhrystone, Rhealstone, etc.); this follows on from the original Whetstone (the name of a laboratory) but may have been influenced by the fannish/counterculture h infix. [{Jargon File}] (1994-11-04) H.261 A {video compression} {standard} developed by {ITU-T} before 1992 to work with {integrated service digital network}. Data is compressed at the rate of 64P kilobits per second, where P can range from 1 to 30 depending on the number of ISDN channels used. This standard was developed primarily to support {video phones} and {video conferencing}. See also {ivs}. {(http://www.crs4.it/~luigi/MPEG/mpeggloss-h.html#H.261)} [Date? Details?] (1994-11-03) H.323 The {ITU-T standard} for sending {voice} ({audio}) and {video} using {IP} on the {Internet} and within {intranets}. H.323 is sponsored[?] by the {IMTC}'s {Conferencing over IP} Activity Group. (1999-04-26) Habitat The original term for on-line graphical {virtual communities} or worlds. Created at Lucasfilm in 1985 by Randy Farmer and Chip Morningstar. {(http://www.communities.com/habitat.html)}. (1996-06-12) hack 1. Originally, a quick job that produces what is needed, but not well. 2. An incredibly good, and perhaps very time-consuming, piece of work that produces exactly what is needed. 3. To bear emotionally or physically. "I can't hack this heat!" 4. To work on something (typically a program). In an immediate sense: "What are you doing?" "I'm hacking TECO." In a general (time-extended) sense: "What do you do around here?" "I hack TECO." More generally, "I hack "foo"" is roughly equivalent to ""foo" is my major interest (or project)". "I hack solid-state physics." See {Hacking X for Y}. 5. To pull a prank on. See {hacker}. 6. To interact with a computer in a playful and exploratory rather than goal-directed way. "Whatcha up to?" "Oh, just hacking." 7. Short for {hacker}. 8. See {nethack}. 9. (MIT) To explore the basements, roof ledges, and steam tunnels of a large, institutional building, to the dismay of Physical Plant workers and (since this is usually performed at educational institutions) the Campus Police. This activity has been found to be eerily similar to playing adventure games such as {Dungeons and Dragons} and {Zork}. See also {vadding}. See also {neat hack}, {real hack}. [{Jargon File}] (1996-08-26) hack attack (Possibly by analogy with "Big Mac Attack" from advertisements for the McDonald's fast-food chain; the variant "big hack attack" is reported) Nearly synonymous with {hacking run}, though the latter more strongly implies an all-nighter. [{Jargon File}] (1996-08-26) hacked off (Analogous to "pissed off") Said of {system administrators} who have become annoyed, upset, or touchy owing to suspicions that their sites have been or are going to be victimised by {crackers}, or used for inappropriate, technically illegal, or even overtly criminal activities. For example, having unreadable files in your home directory called "worm", "lockpick", or "goroot" would probably be an effective (as well as impressively obvious and stupid) way to get your sysadmin hacked off at you. [{Jargon File}] (1996-08-26) hacked up Sufficiently {patched}, {kluge}d, and {tweaked} that the surgical scars are beginning to crowd out normal tissue (compare {critical mass}). Not all programs that are hacked become "hacked up"; if modifications are done with some eye to coherence and continued maintainability, the software may emerge better for the experience. Contrast {hack up}. [{Jargon File}] (1996-08-26) hacker (Originally, someone who makes furniture with an axe) 1. A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary. 2. One who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming. 3. A person capable of appreciating {hack value}. 4. A person who is good at programming quickly. 5. An expert at a particular program, or one who frequently does work using it or on it; as in "a {Unix} hacker". (Definitions 1 through 5 are correlated, and people who fit them congregate.) 6. An expert or enthusiast of any kind. One might be an astronomy hacker, for example. 7. One who enjoys the intellectual challenge of creatively overcoming or circumventing limitations. 8. (Deprecated) A malicious meddler who tries to discover sensitive information by poking around. Hence "password hacker", "network hacker". The correct term is {cracker}. The term "hacker" also tends to connote membership in the global community defined by the net (see {The Network} and {Internet address}). It also implies that the person described is seen to subscribe to some version of the {hacker ethic}. It is better to be described as a hacker by others than to describe oneself that way. Hackers consider themselves something of an elite (a meritocracy based on ability), though one to which new members are gladly welcome. Thus while it is gratifying to be called a hacker, false claimants to the title are quickly labelled as "{bogus}" or a "{wannabee}". 9. (University of Maryland, rare) A programmer who does not understand proper programming techniques and principles and doesn't have a Computer Science degree. Someone who just bangs on the keyboard until something happens. For example, "This program is nothing but {spaghetti code}. It must have been written by a hacker". [{Jargon File}] (1996-08-26) hacker ethic 1. The belief that information-sharing is a powerful positive good, and that it is an ethical duty of hackers to share their expertise by writing free software and facilitating access to information and to computing resources wherever possible. 2. The belief that system-cracking for fun and exploration is ethically OK as long as the cracker commits no theft, vandalism, or breach of confidentiality. Both of these normative ethical principles are widely, but by no means universally, accepted among hackers. Most hackers subscribe to the hacker ethic in sense 1, and many act on it by writing and giving away free software. A few go further and assert that *all* information should be free and *any* proprietary control of it is bad; this is the philosophy behind the {GNU} project. Sense 2 is more controversial: some people consider the act of cracking itself to be unethical, like breaking and entering. But the belief that "ethical" cracking excludes destruction at least moderates the behaviour of people who see themselves as "benign" crackers (see also {samurai}). On this view, it may be one of the highest forms of hackerly courtesy to (a) break into a system, and then (b) explain to the sysop, preferably by e-mail from a {superuser} account, exactly how it was done and how the hole can be plugged - acting as an unpaid (and unsolicited) {tiger team}. The most reliable manifestation of either version of the hacker ethic is that almost all hackers are actively willing to share technical tricks, software, and (where possible) computing resources with other hackers. Huge cooperative networks such as {Usenet}, {FidoNet} and Internet (see {Internet address}) can function without central control because of this trait; they both rely on and reinforce a sense of community that may be hackerdom's most valuable intangible asset. (1995-12-18) hacker humour A distinctive style of shared intellectual humour found among hackers, having the following marked characteristics: 1. Fascination with form-vs.-content jokes, paradoxes, and humour having to do with confusion of metalevels (see {meta}). One way to make a hacker laugh: hold a red index card in front of him/her with "GREEN" written on it, or vice-versa (note, however, that this is funny only the first time). 2. Elaborate deadpan parodies of large intellectual constructs, such as specifications (see {write-only memory}), standards documents, language descriptions (see {INTERCAL}), and even entire scientific theories (see {quantum bogodynamics}, {computron}). 3. Jokes that involve screwily precise reasoning from bizarre, ludicrous, or just grossly counter-intuitive premises. 4. Fascination with puns and wordplay. 5. A fondness for apparently mindless humour with subversive currents of intelligence in it - for example, old Warner Brothers and Rocky & Bullwinkle cartoons, the Marx brothers, the early B-52s, and Monty Python's Flying Circus. Humour that combines this trait with elements of high camp and slapstick is especially favoured. 6. References to the symbol-object antinomies and associated ideas in Zen Buddhism and (less often) Taoism. See {has the X nature}, {Discordianism}, {zen}, {ha ha only serious}, {AI koan}. See also {filk} and {retrocomputing}. If you have an itchy feeling that all 6 of these traits are really aspects of one thing that is incredibly difficult to talk about exactly, you are (a) correct and (b) responding like a hacker. These traits are also recognizable (though in a less marked form) throughout {science-fiction fandom}. (1995-12-18) hacking run (Analogy with "bombing run" or "speed run") A hack session extended long outside normal working times, especially one longer than 12 hours. May cause you to "change {phase} the hard way". [{Jargon File}] (1996-08-26) Hacking X for Y [ITS] Ritual phrasing of part of the information which ITS made publicly available about each user. This information (the INQUIR record) was a sort of form in which the user could fill out various fields. On display, two of these fields were always combined into a project description of the form "Hacking X for Y" (e.g. ""Hacking perceptrons for Minsky""). This form of description became traditional and has since been carried over to other systems with more general facilities for self-advertisement (such as Unix {plan file}s). [{Jargon File}] Hackintosh 1. An {Apple Lisa} that has been hacked into emulating a {Macintosh} (also called a "Mac XL"). 2. A {Macintosh} assembled from parts theoretically belonging to different models in the line. (1995-03-08) hackish /hak'ish/ 1. Said of something that is or involves a {hack}. 2. Of or pertaining to {hacker}s or the hacker subculture. See also {true-hacker}. [{Jargon File}] (1995-03-08) hackishness The quality of being or involving a {hack}. This term is considered mildly silly. Synonym {hackitude}. [{Jargon File}] (1995-03-08) hackitude An even sillier word for {hackishness}. [{Jargon File}] (1995-03-08) hack mode Engaged in {hack}ing. A Zen-like state of total focus on The Problem that may be achieved when one is hacking (this is why every good hacker is part mystic). Ability to enter such concentration at will correlates strongly with wizardliness; it is one of the most important skills learned during {larval stage}. Sometimes amplified as "deep hack mode". Being yanked out of hack mode (see {priority interrupt}) may be experienced as a physical shock, and the sensation of being in hack mode is more than a little habituating. The intensity of this experience is probably by itself sufficient explanation for the existence of hackers, and explains why many resist being promoted out of positions where they can code. See also {cyberspace}. Some aspects of hackish etiquette will appear quite odd to an observer unaware of the high value placed on hack mode. For example, if someone appears at your door, it is perfectly okay to hold up a hand (without turning one's eyes away from the screen) to avoid being interrupted. One may read, type, and interact with the computer for quite some time before further acknowledging the other's presence (of course, he or she is reciprocally free to leave without a word). The understanding is that you might be in {hack mode} with a lot of delicate state in your head, and you dare not {swap} that context out until you have reached a good point to pause. See also {juggling eggs}. [{Jargon File}] (1996-07-31) hack on To {hack}; implies that the subject is some pre-existing hunk of code that one is evolving, as opposed to something one might {hack up}. [{Jargon File}] hack together To throw something together so it will work. Unlike "kluge together" or {cruft together}, this does not necessarily have negative connotations. hack up To {hack}, but generally implies that the result is a quick hack. Contrast this with {hack on}. To "hack up on" implies a {quick-and-dirty} modification to an existing system. Contrast {hacked up}; compare {kluge up}, {monkey up}, {cruft together}. [{Jargon File}] hack value Often adduced as the reason or motivation for expending effort toward a seemingly useless goal, the point being that the accomplished goal is a hack. For example, MacLISP had features for reading and printing Roman numerals, which were installed purely for hack value. See {display hack} for one method of computing hack value, but this cannot really be explained, only experienced. As Louis Armstrong once said when asked to explain jazz: "Man, if you gotta ask you'll never know." (Feminists please note Fats Waller's explanation of rhythm: "Lady, if you got to ask you ain't got it.") ha ha only serious (SF fandom, originally as mutation of HHOK, "Ha Ha Only Kidding") A phrase (often seen abbreviated as HHOS) that aptly captures the flavour of much hacker discourse. Applied especially to parodies, absurdities, and ironic jokes that are both intended and perceived to contain a possibly disquieting amount of truth, or truths that are constructed on in-joke and self-parody. The {Jargon File} contains many examples of ha-ha-only-serious in both form and content. Indeed, the entirety of hacker culture is often perceived as ha-ha-only-serious by hackers themselves; to take it either too lightly or too seriously marks a person as an outsider, a {wannabee}, or in {larval stage}. For further enlightenment on this subject, consult any Zen master. See also {AI koan}. [{Jargon File}] hair [back-formation from {hairy}] The complications that make something hairy. "Decoding {TECO} commands requires a certain amount of hair." Often seen in the phrase "infinite hair", which connotes extreme complexity. Also in "hairiferous" (tending to promote hair growth): "GNUMACS elisp encourages {lusers} to write complex editing modes." "Yeah, it's pretty hairiferous all right." (Or just: "Hair squared!") hairy 1. Annoyingly complicated. "{DWIM} is incredibly hairy." 2. Incomprehensible. "{DWIM} is incredibly hairy." 3. Of people, high-powered, authoritative, rare, expert, and/or incomprehensible. Hard to explain except in context: "He knows this hairy lawyer who says there's nothing to worry about." See also {hirsute}. The adjective "long-haired" is well-attested to have been in slang use among scientists and engineers during the early 1950s; it was equivalent to modern "hairy" and was very likely ancestral to the hackish use. In fact the noun "long-hair" was at the time used to describe a hairy person. Both senses probably passed out of use when long hair was adopted as a signature trait by the 1960s counterculture, leaving hackish "hairy" as a sort of stunted mutant relic. 4. {hairy ball}. [{Jargon File}] (2001-03-29) hairy ball A well-known result in {topology} stating that there is no nowhere-zero continuous {vector field} on the sphere. An immediate corollary to this theorem is that for any {continuous map} f of the sphere into itself there is a point x such that f(x)=x or f(x) is the {antipode} of x. Another corollary is that at any moment somewhere on the Earth there is no wind. (2001-03-29) HAKMEM /hak'mem/ MIT AI Memo 239 (February 1972). A legendary collection of neat mathematical and programming hacks contributed by many people at MIT and elsewhere. (The title of the memo really is "HAKMEM", which is a 6-letterism for "hacks memo".) Some of them are very useful techniques, powerful theorems, or interesting unsolved problems, but most fall into the category of mathematical and computer trivia. Here is a sampling of the entries (with authors), slightly paraphrased: Item 41 (Gene Salamin): There are exactly 23,000 prime numbers less than 2^18. Item 46 (Rich Schroeppel): The most *probable* suit distribution in bridge hands is 4-4-3-2, as compared to 4-3-3-3, which is the most *evenly* distributed. This is because the world likes to have unequal numbers: a thermodynamic effect saying things will not be in the state of lowest energy, but in the state of lowest disordered energy. Item 81 (Rich Schroeppel): Count the magic squares of order 5 (that is, all the 5-by-5 arrangements of the numbers from 1 to 25 such that all rows, columns, and diagonals add up to the same number). There are about 320 million, not counting those that differ only by rotation and reflection. Item 154 (Bill Gosper): The myth that any given programming language is machine independent is easily exploded by computing the sum of powers of 2. If the result loops with period = 1 with sign +, you are on a sign-magnitude machine. If the result loops with period = 1 at -1, you are on a twos-complement machine. If the result loops with period greater than 1, including the beginning, you are on a ones-complement machine. If the result loops with period greater than 1, not including the beginning, your machine isn't binary - the pattern should tell you the base. If you run out of memory, you are on a string or bignum system. If arithmetic overflow is a fatal error, some fascist pig with a read-only mind is trying to enforce machine independence. But the very ability to trap overflow is machine dependent. By this strategy, consider the universe, or, more precisely, algebra: Let X = the sum of many powers of 2 = ...111111 (base 2). Now add X to itself: X + X = ...111110. Thus, 2X = X - 1, so X = -1. Therefore algebra is run on a machine (the universe) that is two's-complement. Item 174 (Bill Gosper and Stuart Nelson): 21963283741 is the only number such that if you represent it on the {PDP-10} as both an integer and a {floating-point} number, the bit patterns of the two representations are identical. Item 176 (Gosper): The "banana phenomenon" was encountered when processing a character string by taking the last 3 letters typed out, searching for a random occurrence of that sequence in the text, taking the letter following that occurrence, typing it out, and iterating. This ensures that every 4-letter string output occurs in the original. The program typed BANANANANANANANA.... We note an ambiguity in the phrase, "the Nth occurrence of." In one sense, there are five 00's in 0000000000; in another, there are nine. The editing program TECO finds five. Thus it finds only the first ANA in BANANA, and is thus obligated to type N next. By Murphy's Law, there is but one NAN, thus forcing A, and thus a loop. An option to find overlapped instances would be useful, although it would require backing up N - 1 characters before seeking the next N-character string. Note: This last item refers to a {Dissociated Press} implementation. See also {banana problem}. HAKMEM also contains some rather more complicated mathematical and technical items, but these examples show some of its fun flavour. HAKMEM is available from MIT Publications as a {TIFF} file. {(ftp://ftp.netcom.com/pub/hb/hbaker)} (1996-01-19) hakspek /hak'speek/ A shorthand method of spelling found on many British academic bulletin boards and {chat} systems. Syllables and whole words in a sentence are replaced by single {ASCII} characters the names of which are phonetically similar or equivalent, while multiple letters are usually dropped. Hence, "for" becomes "4"; "two", "too", and "to" become "2"; "ck" becomes "k". "Before I see you tomorrow" becomes "b4 i c u 2moro". First appeared in London about 1986, and was probably caused by the slowness of available {talk} systems, which operated on archaic machines with outdated {operating systems} and no standard methods of communication. Has become rarer since. See also {chat}, {B1FF}, {ASCIIbonics}. [{Jargon File}] (1998-01-25) HAL 1. HAL 9000, the murdering computer on the spaceship in the science fiction classic "2001, A Space Odyssey" by Arthur C. Clark. "HAL" is "{IBM}" with each letter changed to the one before and there is an unconfirmed rumour that 9000 is the sum of the various IBM computer numbers that were in service at the time. However, in the sequel "2010", Clarke emphatically denies that HAL's name is supposed to be "one step ahead of IBM". It is, rather, short for "heuristic algorithm". 2. {Hardware Abstraction Layer}. (1995-11-09) half-duplex (hdx, from {telegraphy}) 1. A type of communication channel using a single circuit which can carry data in either direction but not both directions at once. Compare: {full-duplex}. 2. An obsolete term for {local echo}. (2000-04-02) halftone The reproducion of {greyscale} {images} using dots of a single shade but varying size to simulate the different shades of grey. {Laser printers} that cannot print different sized dots, halftones are produced by varying the numbers of dots in a given area. This process is also used to produce a black and white version of a colour original using shades of grey in place of colours. See also {device independent bitmap}. (1996-09-20) HALGOL A simple language from {Hewlett-Packard} for communicating with devices such as {modem}s and {X.25} {PAD}s. (1995-04-12) HALMAT Intermediate language used by {HAL/S}. HAL/S A {real-time} language used by {NASA} for onboard shuttle software. ["Two-Dimensional Characteristics of HAL, A Language for Spaceflight Applications", J.S. Miller, SIGPLAN Notices 7(10) (Oct 1972)]. (1994-10-20) Halt and Catch Fire (HCF) Any of several undocumented and semi-mythical {machine instructions} with destructive side-effects, supposedly included for test purposes on several well-known architectures going as far back as the {IBM 360}. The {Motorola} {6800} {microprocessor} was the first for which an HCF {opcode} became widely known. This instruction caused the processor to {toggle} a subset of the {bus} lines as rapidly as it could; in some configurations this could actually cause lines to burn up. [Confirm?] (1995-12-14) halting problem The problem of determining in advance whether a particular program or {algorithm} will terminate or run forever. The halting problem is the {canonical} example of a {provably unsolvable} problem. Obviously any attempt to answer the question by actually executing the algorithm or simulating each step of its execution will only give an answer if the algorithm under consideration does terminate, otherwise the algorithm attempting to answer the question will itself run forever. Some special cases of the halting problem are partially solvable given sufficient resources. For example, if it is possible to record the complete state of the execution of the algorithm at each step and the current state is ever identical to some previous state then the algorithm is in a loop. This might require an arbitrary amount of storage however. Alternatively, if there are at most N possible different states then the algorithm can run for at most N steps without looping. A program analysis called {termination analysis} attempts to answer this question for limited kinds of input algorithm. (1994-10-20) Hamilton {William Hamilton} Hamiltonian cycle {Hamiltonian problem} Hamiltonian path {Hamiltonian problem} Hamiltonian problem (Or "Hamilton's problem") A problem in {graph theory} posed by {William Hamilton}: given a {graph}, is there a path through the graph which visits each {vertex} precisely once (a "Hamiltonian path")? Is there a Hamiltonian path which ends up where it started (a "Hamiltonian cycle" or "Hamiltonian tour")? Hamilton's problem is {NP-complete}. It has numerous applications, sometimes completely unexpected, in computing. {Home (http://www.ing.unlp.edu.ar/cetad/mos/Hamilton.html)}. (1997-07-18) Hamiltonian tour {Hamiltonian problem} Hamilton's problem {Hamiltonian problem} hammer Commonwealth hackish synonym for {bang on}. [{Jargon File}] (1995-02-16) Hamming code Extra, redundant bits added to stored or transmitted data for the purposes of {error detection and correction}. Hamming codes provide a great improvement in the reliability of data from distant space probes, where it is impractical, because of the long transmission delay, to correct errors by requesting retransmission. [Detail?] (1995-03-14) Hamming distance The minimum number of {bits} that must be changed in order to convert one {bit string} into another. [Any connection with {Hamming code}?]. (1999-11-21) hamster 1. ({Fairchild}) A particularly slick little piece of code that does one thing well; a small, self-contained hack. The image is of a hamster {happily} spinning its exercise wheel. 2. A tailless mouse; that is, one with an infrared link to a receiver on the machine, as opposed to the conventional cable. 3. (UK) Any item of hardware made by {Amstrad}, a company famous for its cheap plastic PC-almost-compatibles. [{Jargon File}] (1995-02-16) Han character (From the Han dynasty, 206 B.C.E to 25 C.E.) One of the set of {glyphs} common to Chinese (where they are called "hanzi"), Japanese (where they are called {kanji}), and Korean (where they are called {hanja}). Han characters are generally described as "ideographic", i.e., picture-writing; but see the reference below. Modern Korean, Chinese and Japanese {fonts} may represent a given Han character as somewhat different glyphs. However, in the formulation of {Unicode}, these differences were {folded}, in order to conserve the number of {code positions} necessary for all of {CJK}. This unification is referred to as "Han Unification", with the resulting character repertoire sometimes referred to as "Unihan". {Unihan reference at the Unicode Consortium (http://charts.unicode.org/unihan.html)} [John DeFrancis, "The Chinese Language: Fact and Fantasy", University of Hawaii Press, 1984]. (1998-10-18) HAND Have A Nice Day. Often used sarcastically and in connection with {HTH}, as in: > Where's the point of alt.stupidity? Between the 't' and the 's'. HTH. HAND. (1998-03-06) hand cruft A pun on "hand craft". See {cruft}. [{Jargon File}] (1995-02-16) Handel An {imperative language} with {primitives} for controlling {parallel programs}. Used by Wayne Luk for work in compilation of programs to hardware ({FPGA}s). (1995-02-28) hand-hacking 1. The practice of translating a {hot spot} of a program in a {HLL} into hand-tuned {assembly language}, as opposed to trying to coerce the {compiler} into generating better code. Both the term and the practice are becoming uncommon. See {tune}, {bum}, {by hand}; synonym with {cruft}. 2. More generally, manual construction or patching of data sets that would normally be generated by a translation utility and interpreted by another program, and aren't really designed to be read or modified by humans. [{Jargon File}] (1995-02-16) Hand-held Personal Computer {palmtop} handle 1. (From Citizen's Band amateur radio slang) An electronic pseudonym or "nom de guerre" intended to conceal the user's true identity. Network and BBS handles function as the same sort of simultaneous concealment and display one finds on CB. Use of grandiose handles is characteristic of {cracker}s, {weenie}s, {spod}s, and other lower forms of network life; true hackers travel on their own reputations rather than invented legendry. Compare {nick}. 2. (Macintosh) A pointer to a pointer to dynamically-allocated memory. The extra level of indirection allows on-the-fly memory compaction (to cut down on {fragmentation}) or garbage collection of unused resources, with minimal impact on the (possibly multiple) parts of the larger program containing references to the allocated memory. Compare {snap} (to snap a handle would defeat its purpose). See also {aliasing bug}, {dangling pointer}. [{Jargon File}] (1995-02-28) hand-roll (From mainstream slang "hand-rolled cigarette" in opposition to "ready-made") To perform a normally automated software installation or configuration process {by hand}; implies that the normal process failed due to bugs or was defeated by something exceptional in the local environment. "The worst thing about being a gateway between four different nets is having to hand-roll a new sendmail configuration every time any of them upgrades." [{Jargon File}] (1995-02-28) handshake {handshaking} handshaking 1. Predetermined hardware or software activity designed to establish or maintain two machines or programs in synchronisation. Handshaking often concerns the exchange of messages or {packet}s of data between two systems with limited {buffer}s. A simple handshaking {protocol} might only involve the receiver sending a message meaning "I received your last message and I am ready for you to send me another one." A more complex handshaking {protocol} might allow the sender to ask the receiver if he is ready to receive or for the receiver to reply with a negative acknowledgement meaning "I did not receive your last message correctly, please resend it" (e.g. if the data was corrupted en route). {Hardware handshaking} uses voltage levels or pulses on wires to carry the handshaking signals whereas {software handshaking} uses data units (e.g. {ASCII} characters) carried by some underlying communication medium. {Flow control} in bit-serial data transmission such as {EIA-232} may use either hardware or software handshaking. 2. The method used by two {modem}s to establish contact with each other and to agreee on {baud rate}, {error correction} and {compression} {protocol}s. 3. The exchange of predetermined signals between agents connected by a communications channel to assure each that it is connected to the other (and not to an imposter). This may also include the use of passwords and codes by an operator. [{Jargon File}] (1995-01-13) handwave [possibly from gestures characteristic of stage magicians] To gloss over a complex point; to distract a listener; to support a (possibly actually valid) point with blatantly faulty logic. If someone starts a sentence with "Clearly..." or "Obviously..." or "It is self-evident that...", it is a good bet he is about to handwave (alternatively, use of these constructions in a sarcastic tone before a paraphrase of someone else's argument suggests that it is a handwave). The theory behind this term is that if you wave your hands at the right moment, the listener may be sufficiently distracted to not notice that what you have said is {bogus}. Failing that, if a listener does object, you might try to dismiss the objection with a wave of your hand. The use of this word is often accompanied by gestures: both hands up, palms forward, swinging the hands in a vertical plane pivoting at the elbows and/or shoulders (depending on the magnitude of the handwave); alternatively, holding the forearms in one position while rotating the hands at the wrist to make them flutter. In context, the gestures alone can suffice as a remark; if a speaker makes an outrageously unsupported assumption, you might simply wave your hands in this way, as an accusation, far more eloquent than words could express, that his logic is faulty. [{Jargon File}] hang 1. To wait for an event that will never occur. "The system is hanging because it can't read from the crashed drive". See {wedged}, {hung}. 2. To wait for some event to occur; to hang around until something happens. "The program displays a menu and then hangs until you type a character." Compare {block}. 3. To attach a peripheral device, especially in the construction "hang off": "We're going to hang another tape drive off the file server." Implies a device attached with cables, rather than something that is strictly inside the machine's chassis. hanja {Han characters} Hanoi {Towers of Hanoi} Han Unification {Han character} hanzi {Han characters} happily Of software, used to emphasise that a program is unaware of some important fact about its environment, either because it has been fooled into believing a lie, or because it doesn't care. The sense of "happy" here is not that of elation, but rather that of blissful ignorance. "The program continues to run, happily unaware that its output is going to /dev/null." [{Jargon File}] Happy A dyslexic acronym for "A Yacc-like Haskell Parser generator". An {LALR1 grammar} {parser generator} for {Haskell}. Happy is written in Haskell, uses a parser generated by itself, and can be compiled using {ghc}, {hbc} or {gofer}. Happy uses an implementation of {monadic IO} built on top of stream IO, but this should change when the {Haskell 1.3} {standard} has been implemented. Version: 0.9 (1996-02-28). Happy is covered by the {General Public License}. {Home (http://www.dcs.gla.ac.uk/fp/software/happy.html)} {(ftp://ftp.dcs.gla.ac.uk/pub/haskell/happy/)} E-mail: , . (1996-03-21) haque /hak/ ({Usenet}) A variant spelling of {hack}, used only for the noun form and connoting an {elegant} hack. [{Jargon File}] (1995-02-22) hard boot A {boot} which resets the entire {system}. The phrase has connations of hostility towards, or frustration with, the computer being booted. For example, "I'll have to hard boot this {losing} {Sun}", or "I recommend booting it hard". Hard boots are often performed with a {power cycle}. Contrast {soft boot}. See also {cold boot} and {reboot} [{Jargon File}] (1995-11-27) hard-coded (By analogy with "{hard-wired}") Said of a data value or behaviour written directly into a program, possibly in multiple places, where it cannot be easily modified. There are several alternatives, depending on how often the value is likely to change. It may be replaced with a {compile-time} constant, such as a {C} "#define" {macro}, in which case a change will still require recompilation; or it may be read at {run-time} from a {profile}, resource (see {de-rezz}), or {environment variable} that a {user} can easily modify; or it may be read as part of the program's input data. To change something hard-coded requires recompilation (if using a compiled language of course) but, more seriously, it requires sufficient understanding of the implementation to be sure that the change will not introduce inconsistency and cause the program to fail. For example, "The line terminator is hard-coded as newline; who in their right mind would use anything else?" See {magic number}. [{Jargon File}] (1999-10-18) hardcopy A paper printout of data displayed on a screen. Contrast {softcopy}. (1995-08-31) hard disk (In contrast to {floppy disk}). One or more rigid {magnetic disks} rotating about a central axle with associated read/write heads and electronics, used to store data. Most hard disks are permanently connected to the drive (fixed disks) though there are also {removable disks}. High speed disks have an {access time} of 28 milliseconds or less, and low-speed disks run 65 milliseconds or more. The higher speed disks also transfer their data faster than the slower speed units. Each surface of each disk is divided into a number of evenly spaced concentric circular {tracks}. The set of all tracks at a given radius on all surfaces (the tracks which can be accessed without moving the heads) are known as a {cylinder}. Each track is divided into {sectors}. Disk drives are commonly characterised by the kind of interface used to connect to the computer, e.g. {ATA}, {IDE}, {SCSI}. See also {winchester}. {Suchanka's PC-DISK library (http://www.pc-disk.de/)}. (1999-01-07) hard disk drive (HDD) A {disk drive} used to read and write {hard disk}s. (1995-03-14) hard drive {hard disk drive} hard link One of several directory entries which refer to the same {Unix} {file}. A hard link is created with the "ln" (link) command: ln where and are {pathnames} within the same {file system}. Hard links to the same file are indistinguishable from each other except that they have different pathnames. They all refer to the same {inode} and the inode contains all the information about a file. The standard ln command does not usually allow you to create a hard link to a directory, chiefly because the standard {rm} and {rmdir} commands do not allow you to delete such a link. Some systems provide link and {unlink} commands which give direct access to the {system calls} of the same name, for which no such restrictions apply. Normally all hard links to a file must be in the same {file system} because a directory entry just relates a pathname to an inode within the same file system. The only exception is a {mount point}. The restrictions on hard links to directories and between file systems are very common but are not mandated by {POSIX}. {Symbolic links} are often used instead of hard links because they do not suffer from these restrictions. The space associated with a file is not freed until all the hard links to the file are deleted. This explains why the system call to delete a file is called "unlink". (1997-10-22) hard sector An archaic {floppy disk} format employing multiple synchronisation holes in the media to define the {sectors}. (1995-01-24) hardware The physical, touchable, material parts of a computer or other system. The term is used to distinguish these fixed parts of a system from the more changable {software} or {data} components which it executes, stores, or carries. Computer hardware typically consists chiefly of electronic devices ({CPU}, {memory}, {display}) with some electromechanical parts (keyboard, {printer}, {disk drives}, {tape drives}, loudspeakers) for input, output, and storage, though completely non-electronic (mechanical, electromechanical, hydraulic, biological) computers have also been conceived of and built. See also {firmware}, {wetware}. (1997-01-23) Hardware Abstraction Layer (HAL) The layer of {Microsoft} {Windows NT} where they have isolated their {assembly language} code. (1995-04-17) hardware circular buffer {digital signal processors} which support hardware {circular buffers} automatically generate and increment {pointers} for {memory} accesses which wrap to the beginning of the {buffer} when its end is reached, thus saving the time and instructions otherwise needed to ensure that the address pointer stays within the boundary of the buffer, and speeding the execution of repetitive DSP algorithms. {Digital Signal Processor For Digital Audio Applications (http://www.analog.com/publications/documentation/21065L_Audio_Tutorial.PDF)} (2000-06-17) Hardware Description Language (HDL) A kind of language used for the conceptual design of {integrated circuit}s. Examples are {VHDL} and {Verilog}. (1995-04-18) hardware handshaking A technique for regulating the flow of data across an interface by means of signals carried on separate wires. A common example is the RTS (Request to Send) and CTS (Clear to Send) signals on an {EIA-232} {serial line}. The alternative, {software handshaking}, uses two special characters inserted into the data stream to carry the same information. (1995-01-23) hardwarily /hard-weir'*-lee/ In a way pertaining to hardware. "The system is hardwarily unreliable." The adjective "hardwary" is *not* traditionally used, though it has recently been reported from the U.K. See {softwarily}. [{Jargon File}] (1995-01-23) hard-wired 1. An aspect of an electronic circuit which is determined by the wiring of the hardware, as opposed to being programmable in software or controlled by a switch. 2. In software, a synonym for {hard-coded}. 3. By extension, anything that is not modifiable, especially in the sense of customisable to one's particular needs or tastes. [{Jargon File}] (1999-10-18) Harris Semiconductor Ltd. Address: Riverside Way, Camberley, Surrey, CU15 3YQ, UK. Telephone: +44 (1276) 686 886. Fax: +44 (1276) 682 323. (1995-11-21) Harvard Graphics A presentation graphics product by {Software Publishing Corporation} (SPC) for creating presentations, speeches, slides, etc.. (1998-07-20) Harvest A highly scalable, customisable system for discovering resources on the {Internet}. Version: 1.3. {Home (http://www.tardis.ed.ac.uk/harvest/)}. (1999-01-16) Harvest C A {C} compiler, assembler and linker for the {Macintosh} by Eric W. Sink. The parts of the system are integrated in a single application, which manages a "project" composed by several C source files and resource files (which contain data). Version 1.3. {(ftp://archive.umich.edu/mac/development/languages/)} (1992-05-26) hash 1. "#", {ASCII} code 35. Common names: number sign; pound; pound sign; hash; sharp; {crunch}; hex; {INTERCAL}: mesh. Rare: grid; crosshatch; octothorpe; flash; {ITU-T}: square, pig-pen; tictactoe; scratchmark; thud; thump; {splat}. The pronunciation of "#" as "pound" is common in the US but a bad idea; {Commonwealth Hackish} has its own, rather more apposite use of "pound sign" (confusingly, on British keyboards the pound graphic happens to replace "#"; thus Britishers sometimes call "#" on a US-ASCII keyboard "pound", compounding the American error). The US usage derives from an old-fashioned commercial practice of using a "#" suffix to tag pound weights on bills of lading. The character is usually pronounced "hash" outside the US 2. {hash coding}. 3. The preferred term for a {Perl} {associative array}. (1995-03-06) hash bucket {hash coding} hash coding (Or "hashing") A scheme for providing rapid access to data items which are distinguished by some {key}. Each data item to be stored is associated with a key, e.g. the name of a person. A {hash function} is applied to the item's key and the resulting hash value is used as an index to select one of a number of "hash buckets" in a hash table. The table contains pointers to the original items. If, when adding a new item, the hash table already has an entry at the indicated location then that entry's key must be compared with the given key to see if it is the same. If two items' keys hash to the same value (a "{hash collision}") then some alternative location is used (e.g. the next free location cyclically following the indicated one). For best performance, the table size and {hash function} must be tailored to the number of entries and range of keys to be used. The hash function usually depends on the table size so if the table needs to be enlarged it must usually be completely rebuilt. When you look up a name in the phone book (for example), you typically hash it by extracting its first letter; the hash buckets are the alphabetically ordered letter sections. See also: {btree}, {checksum}, {CRC}, {pseudorandom number}, {random}, {random number}, {soundex}. (1997-08-03) hash collision (Or "hash clash") When two different keys hash to the same value, i.e. to the same location in a {hash table}. {ESR} once asked a friend what he expected Berkeley to be like. The friend replied, "Well, I have this mental picture of naked women throwing Molotov cocktails, but I think that's just a collision in my hash tables." [{Jargon File}] (1995-01-23) hash function A {hash coding} {function} which assigns a data item distinguished by some "key" into one of a number of possible "hash buckets" in a hash table. The hash function is usually combined with another more precise function. For example a program might take a string of letters and put it in one of of twenty six lists depending on its first letter. Ideally, a hash function should distribute items evenly between the buckets to reduce the number of {hash collisions}. If, for example, the strings were names beginning with "Mr.", "Miss" or "Mrs." then taking the first letter would be a very poor hash function because all names would hash the same. (1997-08-03) hashing {hash coding} hash table {hash coding} Haskell (Named after the logician {Haskell Curry}) A {lazy} {purely functional} language largely derived from {Miranda} but with several extensions. Haskell was designed by a committee from the {functional programming} community in April 1990. It features static {polymorphic} typing, {higher-order function}s, user-defined {algebraic data type}s, and {pattern-matching} {list comprehension}s. Innovations include a {class} system, systematic operator {overloading}, a {functional I/O} system, functional {arrays}, and {separate compilation}. Haskell 1.3 added many new features, including {monadic I/O}, standard libraries, {constructor classes}, {labeled fields} in datatypes, {strictness} {annotations}, an improved {module} system, and many changes to the Prelude. {Gofer} is a cut-down version of Haskell with some extra features. {Filename extension}: .hs, .lhs ({literate programming}). {Home (http://haskell.org/)}. ["Report on the Programming Language Haskell Version 1.1", Paul Hudak & P. Wadler eds, CS Depts, U Glasgow and Yale U., Aug 1991]. [Version 1.2: SIGPLAN Notices 27(5), Apr 1992]. {Haskell 1.3 Report (http://haskell.cs.yale.edu/haskell-report/haskell-report.html)}. Mailing list: . Yale Haskell - Version 2.0.6, Haskell 1.2 built on {Common Lisp}. {(ftp://nebula.cs.yale.edu/pub/haskell/yale/)}. Glasgow Haskell (GHC) - Version 2.04 for {DEC Alpha}/{OSF}2; {HPPA1.1}/{HPUX}9,10; {SPARC}/{SunOs} 4, {Solaris} 2; {MIPS}/{Irix} 5,6; {Intel 80386}/{Linux},{Solaris} 2,{FreeBSD},{CygWin} 32; {PowerPC}/{AIX}. GHC generates {C} or {native code}. {(ftp://ftp.dcs.glasgow.ac.uk/pub/haskell/glasgow/)} E-mail: . Haskell-B - Haskell 1.2 implemented in {LML}, generates {native code}. {(ftp://ftp.cs.chalmers.se/pub/haskell/chalmers/)} E-mail: . (1997-06-06) Haskell B An early version of {Haskell} by Lennart Augustsson from {Chalmers}. Haskell B evolved into a full-featured implementation of Haskell 1.2, with quite a few extensions. Ports exist for many {platforms} including {Sun}, {DEC}, {Sequent}, {IBM PC}, {Symmetry} and unsupported versions for {NS32000}, {IBM RT/PC}, {Cray}, {Sun-3}, {Vax}, {ARM}, and {RS/6000}. Version 0.999.5 included a compiler, interpreter, library, documentation, and examples. {(ftp://ftp.cs.chalmers.se/pub/haskell/chalmers/)}. Mailing list: . E-mail: . (1996-08-21) Haskell Curry Haskell Brooks Curry (1900-09-12 - 1982-09-01). The logician who re-invented and developed {combinatory logic}. The {functional programming} language {Haskell} was named after him. {Biography (http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Curry.html)}. (1999-01-08) Haskell User's Gofer System (HUGS) An implementation of {Haskell} derived from {Gofer} 2.30b with an interactive development environment much like Gofer's. Almost all of the features of Haskell 1.2 are implemented with the exception of the {module} system. Hugs supports Haskell style {type class}es, a full prelude, {derived instance}s, defaults, {overloaded} numeric {literal}s and {pattern matching}, and {bignum} arithmetic. {Home (http://www.cs.nott.ac.uk/Department/Staff/mpj/hugs.html)}. {(ftp://ftp.cs.nott.ac.uk/pub/haskell/hugs)} E-mail: Mark P. Jones . (1995-02-14) HASL {SASL} plus {conditional unification}. ["A Prological Definition of HASL, A Purely Functional Language with Unification Based Conditional Binding Expressions", H. Abramson in Logic Programming: Functions, Relations and Equations, D. DeGroot et al eds, P-H 1986]. (1996-08-21) HASP {Houston Automatic Spooling Program} has the X nature (From Zen Buddhist koans of the form "Does an X have the Buddha-nature?") Common hacker construction for "is an X", used for humorous emphasis. "Anyone who can't even use a program with on-screen help embedded in it truly has the {loser} nature!" See also {the X that can be Y is not the true X}. [{Jargon File}] (1995-01-11) hat A common (spoken) name for the circumflex ("^", ASCII 94) character. See {ASCII} for other synonyms. [{Jargon File}] Hayes A {modem} manufacturer. {(gopher://leapfrog.almac.co.uk:70/00/business/comms/hayes/corporat.txt)} Address: Atlanta, Georgia, USA. (1995-01-30) Hayes-compatible A description of a {modem} which understands the same set of commands as one made by {Hayes}. [What are the commands?] (1996-12-08) HBOOK A histogramming package in the CERN program library. hc The compiler for the {h} {hyperbook} language. HCF 1. {Host Command Facility}. 2. {Halt and Catch Fire}. [{Jargon File}] (1999-01-24) HCI 1. {Human-Computer Interaction}. 2. {Human-Computer Interface}. (1999-06-11) HCLP Hierarchical {CLP}. ["Constraint Hierarchies and Logic Programming", A. Borning et al, in Proc Sixth Intl Logic Prog Conf, June 1989, pp. 149-164]. HCPRVR "HCPRVR: An Interpreter for Logic Programs", D. Chester in Proc First Natl Conf on AI, Stanford, 1980. HCS {Heterogeneous Computer System} A {distributed system} project. [Where? When? What?] (1995-02-01) HD {high density} HD6309 {Hitachi 6309} HDA {Head Disk Assembly} HDC {Disk Controller} HDD {hard disk drive} HDF Hierarchical Data Format from NCSA. [What is it?] (1999-03-21) HDFL A {single assignment} language. ["Methods for Handling Structures in Data-Flow Systems", J.L. Gaudiot, Proc 12th Intl Symp Comp Arch, June 1985]. HDL {Hardware Description Language} HDLC {High-level Data Link Control} HDM See SPECIAL. HDSL {High bit-rate Digital Subscriber Line} HDTV {High Definition Television} hdx {half-duplex} Head Disk Assembly (HDA) A sealed, high capacity {mainframe} {hard disk} with integral heads, as opposed to a {removable disk}. (1999-01-13) header 1. The portion of a {packet}, preceding the actual data, containing source and destination addresses, error checking and other fields. 2. The part of an {electronic mail} message or {news} article that precedes the body of a message and contains, among other things, the sender's name and e-mail address and the date and time the message was sent. head normal form (HNF) A lambda expression is in head normal form if its top level is either a variable, a data value, a built-in function applied to too few arguments or a lambda abstraction whose body is not reducible. I.e. the top level is neither a redex nor a lambda abstraction with a reducible body. An expression in HNF may contain redexes in argument postions whereas a normal form may not. See also Weak head normal form. head normalisation theorem Under the typed lambda-calculus, beta/delta reduction of the left-most redex (normal order reduction) is guaranteed to terminate with a head normal form if one exists. See also Church-Rosser theorem. heads down [Sun] Concentrating, usually so heavily and for so long that everything outside the focus area is missed. See also {hack mode} and {larval stage}, although this mode is hardly confined to fledgling hackers. [{Jargon File}] head-strict A head-strict function will not necessarily evaluate every {cons} cell of its (list) argument, but whenever it does evaluate a cons cell it will also evaluate the element in the head of that cell. An example of a head-strict function is beforeZero :: [Int] -> [Int] beforeZero [] = [] beforeZero (0:xs) = [] beforeZero (x:xs) = x : beforeZero xs which returns a list up to the first zero. This pattern of evaluation is important because it is common in functions which operate on a list of inputs. See also {tail-strict}, {hyperstrict}. (1995-05-11) heap 1. An area of memory used for {dynamic memory allocation} where blocks of memory are allocated and freed in an arbitrary order and the pattern of allocation and size of blocks is not known until {run-time}. Typically, a program has one heap which it may use for several different purposes. Heap is required by languages in which functions can return arbitrary data structures or functions with {free variables} (see {closure}). In {C} functions {malloc} and {free} provide access to the heap. Contrast {stack}. See also {dangling pointer}. 2. A data structure with its elements partially ordered (sorted) such that finding either the minimum or the maximum (but not both) of the elements is computationally inexpensive (independent of the number of elements), while both adding a new item and finding each subsequent smallest/largest element can be done in O(log n) time, where n is the number of elements. Formally, a heap is a {binary tree} with a key in each {node}, such that all the {leaves} of the tree are on two adjacent levels; all leaves on the lowest level occur to the left and all levels, except possibly the lowest, are filled; and the key in the {root} is at least as large as the keys in its children (if any), and the left and right subtrees (if they exist) are again heaps. Note that the last condition assumes that the goal is finding the minimum quickly. Heaps are often implemented as one-dimensional {arrays}. Still assuming that the goal is finding the minimum quickly the {invariant} is heap[i] <= heap[2*i] and heap[i] <= heap[2*i+1] for all i, where heap[i] denotes the i-th element, heap[1] being the first. Heaps can be used to implement {priority queues} or in {sort} algorithms. (1996-02-26) heartbeat 1. The signal emitted by a Level 2 Ethernet transceiver at the end of every {packet} to show that the collision-detection circuit is still connected. 2. A periodic synchronisation signal used by software or hardware, such as a {bus} clock or a periodic {interrupt}. 3. The "natural" oscillation frequency of a computer's clock crystal, before frequency division down to the machine's clock rate. 4. A signal emitted at regular intervals by software to demonstrate that it is still alive. Sometimes hardware is designed to reboot the machine if it stops hearing a heartbeat. See also {breath-of-life packet}, {watchdog}. [{Jargon File}] (1996-03-12) heatseeker (IBM) A customer who can be relied upon to buy, without fail, the latest version of an existing product (not quite the same as a member of the {lunatic fringe}). A 1993 example of a heatseeker is someone who, owning a 286 PC and Windows 3.0, goes out and buys {Windows 3.1} (which offers no worthwhile benefits unless you have a 386). If all customers were heatseekers, vast amounts of money could be made by just fixing the bugs in each release (n) and selling it to them as release (n+1). [{Jargon File}] (1996-03-12) heat sink /heet sink/ (from "sink", electronics jargon for something which takes in current) A piece of thermally conductive metal attached to a {semiconductor} or other electronic device and designed to prevent it from overheating by conducting heat away from it and radiating it to the environment. Heat sinks often have fins to increase their surface area. They occasionally have fans attached. Heat sink compound can be smeared between the device and the heat sink to improve thermal conduction. (1997-06-10) heat slug A metal plate that helps dissipate heat away from the {silicon} {core} of a {processor} to the packaging or {heat-sink}. (2000-08-26) heavy metal {big iron} heavyweight High-overhead; {baroque}; code-intensive; featureful, but costly. Especially used of communication protocols, language designs, and any sort of implementation in which maximum generality and/or ease of implementation has been pushed at the expense of mundane considerations such as speed, memory use and startup time. {Emacs} is a heavyweight editor; {X} is an *extremely* heavyweight window system. This term isn't pejorative, but one hacker's heavyweight is another's {elephantine} and a third's monstrosity. Opposite: "lightweight". Usage: now borders on technical especially in the compound "heavyweight process". (1994-12-22) heavy wizardry Code or designs that trade on a particularly intimate knowledge or experience of a particular operating system or language or complex application interface. Distinguished from {deep magic}, which trades more on arcane *theoretical* knowledge. Writing device drivers is heavy wizardry; so is interfacing to {X} (sense 2) without a toolkit. Especially found in source-code comments of the form "Heavy wizardry begins here". Compare {voodoo programming}. [{Jargon File}] Hebbian Refers to the most common way for a neural network to learn, namely supervised learning. Using a training sample which should produce known responses, the connection weights are adjusted so as to minimise the differences between the desired and actual outputs for the training sample. heisenbug /hi:'zen-buhg/ (From Heisenberg's Uncertainty Principle in quantum physics) A bug that disappears or alters its behaviour when one attempts to probe or isolate it. (This usage is not even particularly fanciful; the use of a debugger sometimes alters a program's operating environment significantly enough that buggy code, such as that which relies on the values of uninitialised memory, behaves quite differently.) In {C}, nine out of ten heisenbugs result from uninitialised auto variables, {fandango on core} phenomena (especially lossage related to corruption of the malloc {arena}) or errors that {smash the stack}. Opposite: {Bohr bug}. See also {mandelbug}, {schroedinbug}. [{Jargon File}] (1995-02-28) Helen Keller mode 1. State of a hardware or software system that is deaf, dumb, and blind, i.e. accepting no input and generating no output, usually due to an infinite loop or some other excursion into {deep space}. (Unfair to the real Helen Keller, whose success at learning speech was triumphant.) See also {go flatline}, {catatonic}. 2. On {IBM PCs} under {MS-DOS}, refers to a specific failure mode in which a screen saver has kicked in over an {ill-behaved} application which bypasses the very interrupts the screen saver watches for activity. Your choices are to try to get from the program's current state through a successful save-and-exit without being able to see what you're doing, or to {re-boot} the machine. This isn't (strictly speaking) a crash. [{Jargon File}] Helix A {hardware description language} from {Silvar-Lisco}. hello packet An {OSPF} {packet} sent periodically on each {network interface}, real or {virtual}, to discover and test connections to neighbours. Hello packets are multicast on physical networks capable of {multicasting} or {broadcasting} to enable dynamic {router} discovery. They include the parameters that routers connected to a common network must agree on. Hello packets increase network resilience by, e.g., allowing a router to establish a secondary connection when a primary connection fails. (1999-11-02) hello, sailor! Occasional West Coast equivalent of {hello, world}; seems to have originated at SAIL, later associated with the game {Zork} (which also included "hello, aviator" and "hello, implementor"). Originally from the traditional hooker's greeting to a swabbie fresh off the boat, of course. [{Jargon File}] hello, world The canonical minimal test message in the {C}/{Unix} universe or any of the minimal programs that emit this message. Traditionally, the first program a C coder writes in a new environment is one that just prints "hello, world" to standard output (and indeed it is the first example program in {K&R}). Environments that generate an unreasonably large executable for this trivial test or which require a {hairy} compiler-linker invocation to generate it are considered bad (see {X}). HELP 1. {DEA}. A Language for industrial robots. 2. (Help Est un Lisp Paresseux - Help Is a Lazy Lisp). A {lazy} version of {Scheme} with strictness {annotation}s, by Thomas Schiex . henry (H) The {SI} unit of inductance: one henry is the inductance of a closed loop in which the induced voltage is one volt if the current flowing through it changes by one ampere each second, i.e., 1 H = 1 Vs/A. Named after the American physicist Joseph Henry (1797-1878). (1997-03-16) HENSA {Higher Education National Software Archive} HEP High Energy (Particle) Physics. HEPDB A {database management system} for {HEP}. HEPiX A recently formed collaboration among various HEP institutes aiming at providing "compatible" versions of the Unix operating system at their sites. HEPnet An association concerned with networking requirements for high energy physicists. HEPVM A collaboration among various HEP institutes to implement "compatible" versions of IBM's VM-CMS operating system at their sites. HEQS E. Derman. Constraint language for financial modelling. Uses an extension of the equation solver in IDEAL. "A Simple Equation Solver and Its Application to Financial Modeling", E. Derman et al, Soft Prac & Exp 14(12):1169-1181 (Dec 1984). HERA An electron-proton collider at DESY, W. Germany. HERAKLIT A distributed {object-oriented} language. ["Definition einer objektorientierten Programmiersprache mit hierarchischem Typkonzept", B. Hindel, diss U Erlangen-Nuernberg, Dec 1987]. (1995-03-16) here document Data included in a {Unix} {shell script} or {Perl} script using the "<<" syntax. (1995-04-19) Herman Hollerith The promulgator of the {punched card}. Hollerith was born on 1860-02-29 and died on 1929-11-17. He graduated from Columbia University, NewYork, NY, USA. He joined the US Census Bureau as a statistician where he used a punched card device to help analyse the 1880 US census data. This punched card system stored data in 80 columns. This "80-column" concept has carried forward in various forms into modern applications. In 1896, Hollerith founded the {Tabulating Machine Company} to exploit his invention and in 1924 his firm became part of {IBM}. The Hollerith system was used for the 1911 UK census. (1996-01-02) Hermes An experimental, very high level, integrated language and system from the {IBM} {Watson Research Centre}, produced in June 1990. It is designed for implementation of large systems and distributed applications, as well as for general-purpose programming. It is an {imperative}, {strongly typed} and {process-oriented} successor to {NIL}. Hermes hides distribution and heterogeneity from the programmer. The programmer sees a single {abstract machine} containing processes that communicate using calls or sends. The {compiler}, not the programmer, deals with the complexity of data structure layout, local and remote communication, and interaction with the {operating system}. As a result, Hermes programs are portable and easy to write. Because the programming paradigm is simple and high level, there are many opportunities for optimisation which are not present in languages which give the programmer more direct control over the machine. Hermes features {threads}, {relational table}sHermes is, {typestate} checking, {capability}-based access and {dynamic configuration}. Version 0.8alpha patchlevel 01 runs on {RS/6000}, {Sun-4}, {NeXT}, {IBM-RT}/{BSD4.3} and includes a {bytecode compiler}, a bytecode->C compiler and {run-time support}. {0.7alpha for Unix (ftp://software.watson.ibm.com/pub/hermes)}. E-mail: , Andy Lowry . {Usenet} newsgroup: {news:comp.lang.hermes}. ["Hermes: A Language for Distributed Computing". Strom, Bacon, Goldberg, Lowry, Yellin, Yemini. Prentice-Hall, Englewood Cliffs, NJ. 1991. ISBN: O-13-389537-8]. (1992-03-22) Hesiod The {name server} of the {Athena} project. [Details?] (1997-10-27) heterogeneous Composed of unrelated parts, different in kind. Often used in the context of {distributed systems} that may be running different {operating systems} or network {protocols} (a {heterogeneous network}). For examples see: {interoperable database}, {middleware}. Constrast {homogeneous}. (1999-05-06) heterogeneous network A {network} running multiple {network layer} {protocols} such as {DECnet}, {IP}, {IPX}, {XNS}. (1997-10-27) heterogenous It's spelled {heterogeneous}. (1999-06-10) heuristic 1. A rule of thumb, simplification, or educated guess that reduces or limits the search for solutions in domains that are difficult and poorly understood. Unlike {algorithms}, heuristics do not guarantee optimal, or even {feasible}, solutions and are often used with no theoretical guarantee. 2. {approximation algorithm}. (2001-04-12) heuristics testing {failure-directed testing} Hewlett-Packard (HP) Hewlett-Packard designs, manufactures and services electronic products and systems for measurement, computation and communications. The company's products and services are used in industry, business, engineering, science, medicine and education in approximately 110 countries. HP was founded in 1939 and employs 96600 people, 58900 in the USA. They have manufacturing and R&D establishments in 54 cities in 16 countries and approximately 600 sales and service offices in 110 countries. Their revenue (in 1992/1993?) was $20.3 billion. The Chief Executive Officer is Lewis E. Platt. HP's stock is traded on the New York Stock Exchange and the Pacific, Tokyo, London, Frankfurt, Zurich and Paris exchanges. Quarterly sales $6053M, profits $347M (Aug 1994). {(http://www.hp.com/home.html)} (1994-09-26) Hewlett-Packard Graphics Language (HP-GL) A {vector graphics} language used by {HP} plotters. [Details? On-line spec?] (1994-10-27) Hewlett-Packard Interface Bus {IEEE 488} Hewlett Packard Multi Processing Executive (HP-MPE) The standard {operating system} on all {HP3000} {minicomputers}, in the same way that HP9000 computers run {HP-UX}. Current version: MPE/IX Version 5.5.04, as of 1998-02-17. (1998-02-17) Hewlett Packard Precision Architecture (HP-PA) {Hewlett Packard}'s range of RISC processors. [Details?] (1995-02-22) Hewlett-Packard Visual Engineering Environment (HP VEE) A package similar in intention to {LabVIEW}, running on {Unix} {workstations} under {OSF}/{Motif}. (1997-05-12) hex 1. {hexadecimal}. 2. A 6-pack of anything (compare {quad}). Neither usage has anything to do with {magic} or {black art}, though the pun is appreciated and occasionally used by hackers. True story: As a joke, some hackers once offered some surplus ICs for sale to be worn as protective amulets against hostile magic. The chips were, of course, hex inverters. 3. The {hash} character, used to introduce {hexadecimal} constants in some {assembly language}s. [{Jargon File}] (1995-03-06) hexadecimal (Or "hex") {Base} 16. A number representation using the digits 0-9, with their usual meaning, plus the letters A-F (or a-f) to represent hexadecimal digits with values of (decimal) 10 to 15. The right-most digit counts ones, the next counts multiples of 16, then 16^2 = 256, etc. For example, hexadecimal BEAD is decimal 48813: digit weight value B = 11 16^3 = 4096 11*4096 = 45056 E = 14 16^2 = 256 14* 256 = 3584 A = 10 16^1 = 16 10* 16 = 160 D = 13 16^0 = 1 13* 1 = 13 ----- BEAD = 48813 There are many conventions for distinguishing hexadecimal numbers from decimal or other bases in programs. In {C} for example, the prefix "0x" is used, e.g. 0x694A11. Hexadecimal is more succinct than {binary} for representing {bit-masks}, machines addresses, and other low-level constants but it is still reasonably easy to split a hex number into different bit positions, e.g. the top 16 bits of a 32-bit word are the first four hex digits. The term was coined in the early 1960s to replace earlier "sexadecimal", which was too racy and amusing for stuffy {IBM}, and later adopted by the rest of the industry. Actually, neither term is etymologically pure. If we take "binary" to be paradigmatic, the most etymologically correct term for base ten, for example, is "denary", which comes from "deni" (ten at a time, ten each), a Latin "distributive" number; the corresponding term for base sixteen would be something like "sendenary". "Decimal" is from an ordinal number; the corresponding prefix for six would imply something like "sextidecimal". The "sexa-" prefix is Latin but incorrect in this context, and "hexa-" is Greek. The word {octal} is similarly incorrect; a correct form would be "octaval" (to go with decimal), or "octonary" (to go with binary). If anyone ever implements a base three computer, computer scientists will be faced with the unprecedented dilemma of a choice between two *correct* forms; both "ternary" and "trinary" have a claim to this throne. [{Jargon File}] (1996-03-09) hexidecimal Mis-spelling of "{hexadecimal}". (1998-03-03) hexit /hek'sit/ A {hexadecimal} digit (0-9, and A-F or a-f). Used by people who claim that there are only *ten* digits, sixteen-fingered human beings being rather rare, despite what some keyboard designs might seem to imply (see {space-cadet keyboard}). [{Jargon File}] (1996-03-09) HFC 1. {Hybrid Fiber Coax}. 2. {hydrofluorocarbon}. (1999-11-02) HHCP {Host Host Copy} HHOJ ha ha only joking. Contrast {ha ha only serious}. (1998-01-18) HHOK ha ha only kidding. See {ha ha only serious}. [{Jargon File}] HHOS {ha ha only serious} HIBOL A variant of {DIBOL}, used in {Infotec} computers. (1994-11-24) HID {Human Interface Device} hidden flag (scientific computation) An extra option added to a routine without changing the calling sequence. For example, instead of adding an explicit input variable to instruct a routine to give extra diagnostic output, the programmer might just add a test for some otherwise meaningless feature of the existing inputs, such as a negative mass. The use of hidden flags can make a program very hard to debug and understand, but is all too common wherever programs are hacked in a hurry. [{Jargon File}] (1994-11-24) hierarchical database A kind of {database management system} that links records together like a family tree such that each record type has only one owner, e.g. an order is owned by only one customer. Hierarchical structures were widely used in the first {mainframe} database management systems. However, due to their restrictions, they often cannot be used to relate structures that exist in the real world. hierarchical file system A {file system} in which the {files} are organised into a {hierarchy}. The nodes of the hierarchy are called {directories} while the leaves are the files themselves. See also {root directory}. Compare {flat file system}. (1996-11-21) Hierarchical Music Specification Language (HMSL) A programming language for experimental music composition and performance. It is a set of {object-oriented} extensions to {Forth}. (Its near-total unintelligibility to people unfamiliar with {Forth} has led some to expand "HMSL" as "Her Majesty's Secret Language".) Phil Burk (who also later developed {pForth}), Larry Polansky, and David Rosenboom started developing HMSL in 1980 while working at the {Mills College Center for Contemporary Music (http://www.mills.edu/LIFE/CCM/CCM.homepage.html)}. As of June 1998, development is ongoing. {(http://www.softsynth.com/hmsl/)}. (1998-09-07) hierarchical routing The complex problem of routing on large networks can be simplified by breaking a network into a hierarchy of smaller networks, where each level is responsible for its own routing. The Internet has, basically, three levels: the backbones, the mid-levels, and the stub networks. The backbones know how to route between the mid-levels, the mid-levels know how to route between the sites, and each site (being an autonomous system) knows how to route internally. See also Exterior Gateway Protocol, Interior Gateway Protocol, transit network. hierarchy An organisation with few things, or one thing, at the top and with several things below each other thing. An inverted tree structure. Examples in computing include a directory hierarchy where each directory may contain files or other directories; a hierarchical {network} (see {hierarchical routing}), a {class hierarchy} in {object-oriented programming}. (1994-10-11) high bit [high-order bit] The most significant bit in a {byte}. See also {meta bit}, {hobbit}, {dread high bit disease}. [{Jargon File}] High bit-rate Digital Subscriber Line (HDSL) A form of {Digital Subscriber Line}, providing {T1} or {E1} connections over two or three {twisted-pair} copper lines, respectively. Unlike most other forms of DSL HDSL is not a typical consumer service, it's used mostly to replace traditional T1/E1 connections, such as connecting {PBXes} to {telco} offices. The advantage of HDSL over the {Alternate Mark Inversion} line coding scheme traditionally used on T1/E1 lines is that it requires about an order of magnitude lower bandwidth to carry the same traffic. (1998-05-18) high colour A {colour depth} of 16 (or 15) {bits per pixel}. Compare {true colour}. (1999-08-01) high density {floppy disk} Higher Education National Software Archive (HENSA) {Home (http://www.hensa.ac.uk/)} (1995-01-06) higher-order function (HOF) A function that can take one or more functions as argument and/or return a function as its value. E.g. map in (map f l) which returns the list of results of applying function f to each of the elements of list l. See also {curried function}. higher-order macro A means of expressing certain {higher-order function}s in a first order language. Proposed by Phil Wadler. Higher-order macros cannot be recursive at the top level but they may contain recursive definitions. E.g. map f l = m l where m [] = [] m (x:xs) = f x : m xs Expanding a call to this macro is equivalent to specialising a call to map in its first argument. See {partial evaluation}. High-level Data Link Control (HDLC) A general-purpose {data link} control {protocol} defined by {ISO} for use on both point-to-point and {multipoint} (multidrop) data links. It supports {full-duplex}, {transparent-mode} operation. It is used extensively in both multipoint and computer networks. Some manufacturers and other standards bodies still use their own acronyms, e.g. {IBM}'s SDLC ({Synchronous Data Link Control}), the forerunner of HDLC and {ANSI}'s ADCCP ({Advanced Data Communications Control Procedure}). [Fred Halsall, "Data Communications, Computer Networks and Open Systems" 4th edition, 1996, p.237, Addison-Wesley Publishing Co. Reading, Mass., USA]. (1997-11-09) high-level language (HLL) A programming language which provides some level of abstraction above {assembly language}. These normally use statements consisting of English-like keywords such as "FOR", "PRINT" or "GOTO", where each statement corresponds to several {machine language} instructions. It is much easier to program in a high-level language than in {assembly language} though the efficiency of execution depends on how good the {compiler} or {interpreter} is at optimising the program. Rarely, the variants "{VHLL}" and "{MLL}" are found. See also {languages of choice}, {generation}. (1994-12-07) high memory area (HMA) The first 64 {kilobytes} (minus 16 byte) of the {extended memory} on an {IBM PC}. By a strange design glitch the {Intel 80x86} processors can actually address 17*64 kbyte minus 16 byte of memory (from 0000:0000 to ffff:ffff) in real mode. In the {Intel 8086} and {Intel 8088} processors, unable to handle more than 1 {megabyte} of memory, addressing wrapped around, that is, address ffff:0010 was equivalent to 0000:0000. For compatibility reasons, later processors still wrapped around by default, but this feature could be switched off. Special programs called {A20 handlers} can control the addressing mode dynamically, thereby allowing programs to load themselves into the 1024--1088 kbyte region and run in {real mode}. From version 5.0 parts of {MS-DOS} can be loaded into HMA as well freeing up to 46 kbytes of {conventional memory}. (1995-01-10) high moby /hi:' mohb'ee/ The high half of a 512K {PDP-10}'s physical address space; the other half was of course the low moby. This usage has been generalised in a way that has outlasted the {PDP-10}; for example, at the 1990 Washington D.C. Area Science Fiction Conclave (Disclave), when a miscommunication resulted in two separate wakes being held in commemoration of the shutdown of MIT's last {ITS} machines, the one on the upper floor was dubbed the "high moby" and the other the "low moby". All parties involved {grok}ked this instantly. See {moby}. [{Jargon File}] High Performance Computing and Communications (HPCC) High performance computing includes scientific workstations, supercomputer systems, high speed networks, special purpose and experimental systems, the new generation of large scale parallel systems, and application and systems software with all components well integrated and linked over a high speed network. ["Grand Challenges 1993: High Performance Computing and Communications", Committee on Physical, Mathematical and Engineering Sciences of the Federal Coordinating Council for Science, Engineering and Technology.] High Performance File System (HPFS) The {native} {file system} for {IBM}'s {OS/2}. (1995-03-06) High Performance Fortran (HPF) A {data parallel} language extension to {Fortran 90} which provides a portable programming interface for a wide variety of target {platforms}. The original HPF language specification was produced by the High Performance Fortran Forum, a broad consortium of industry and academia, which met regularly throughout 1992 and early 1993. HPF {compilers} are now available on most commonly-used computing systems, and users are beginning to gain first hand experience with this language. The Forum has continued to meet in order to address advanced topics. {HPF+ at Vienna (http://www.par.univie.ac.at/hpf+/)}. ["High Performance Fortran: Status Report", G.L. Steele Jr , SIGPLAN Notices 28(1):1-4 (Jan 1993)]. (1996-09-09) High Performance Parallel Interface (HIPPI, previously HPPI) A {connection-oriented}, point-to-point networking {standard} using {circuit-switching} technology at a speed of 800 Mbits/s or 1.6 Gbits/s (simplex or full-duplex). HIPPI is often used for short distances (up to 10km depending on cable type) to connect a {supercomputer} to {routers}, {frame buffers}, {mass-storage} peripherals and other computers. HIPPI was developed at {Los Alamos National Laboratory} and is now {ANSI} standard X3T9/88-127. Standards for interconnecting with {ATM}, {SONet}, and {fibre channel} are in development. {HIPPI Networking Forum (http://www.esscom.com/hnf)}. (1997-06-29) High Performance Routing (HPR) Routing designed to work in conjunction with {APPN} {Intermediate Session Routing} (ISR) network nodes. HPR nodes perform many of the same functions as ISR nodes. For example, HPR nodes use the same method of calculating routes based on the {Topology} Routing Service database and {class of service} tables. HPR nodes also supports such APPN features as connection networks and support for parallel {transmission groups} (TGs). In the HPR architecture, both partner nodes must support HPR for {RTP} connections to take place between the nodes. If one node supports HPR and the partner node does not, then the link will support ISR functionality only. ["APPN Architecture and Product Implementations Tutorial", IBM, GG24-3669-92]. (1997-05-08) High Performance Serial Bus (Or "{IEEE} 1394", "FireWire", "I-Link") A 1995 {Macintosh}/{IBM PC} serial bus interface standard offering high-speed communications and {isochronous} {real-time} data services. 1394 can transfer data between a computer and its {peripherals} at 100, 200, or 400 {Mbps}, with a planed increase to 2 {Gbps}. Cable length is limited to 4.5 m but up to 16 cables can be daisy-chained yielding a total length of 72 m. It can {daisy-chain} together up to 63 peripherals in a tree-like structure (as opposed to {SCSI}'s linear structure). It allows peer-to-peer device communication, such as communication between a {scanner} and a {printer}, to take place without using system memory or the {CPU}. It is designed to support {plug-and-play} and {hot swapping}. Its six-wire cable is not only more convenient than SCSI cables but can supply up to 60 watts of power, allowing low-consumption devices to operate without a separate power cord. Some expensive camcorders have included this bus since Autumn 1995. It is expected to be used to carry {SCSI}, with possible application to {home automation} using {repeaters}. See also {Universal Serial Bus}, {FC-AL}. (2000-09-03) High Speed Circuit Switched Data (HSCSD) A planned feature of {GSM Phase 2} defining a standard for {circuit switched} data transmission over a {GSM} link at up to 57.6 (78.8?) {kbps}. This is achieved by concatenating up to four consecutive GSM {timeslots}, each of which is capable of 14.4 kbit/s. It uses {multiplexing} and {compression} or filtering. The following services towards the fixed network are supported: {V.34} up to 28.8 kbps and {V.110} with rate adaptation up to 38.4 kbps. HSCSD is aimed at {mobile workstation} users. As it is circuit switched, it is suited to {streaming} applications such as {video conferencing} and {multimedia}. {Bursty} applications like {electronic mail}, are more suited to {packet switched} data (as in {GPRS}). {Ericsson (http://www.ericsson.com/wireless/products/mobsys/gsm/subpages/wise/subpages/hscsd.shtml)}. {(http://www.gsmworld.com/)}. (1999-12-04) High Speed Connect (HSC) A {Hewlett-Packard} bus like {EISA}. [HP9000 Configuration Guide, January 1996]. [Details?] (1996-06-06) high speed serial interface (HSSI) A {serial port} which supports serial transmit speeds of up to 52 megabits per second. It is typically used for leased lines such as {DS3} (44.736 Mbps) and {E3} (34 Mbps) and for {Wide Area Network} devices such as {routers}. (1995-11-20) High Voltage Differential (HVD) {Differential SCSI} scheme that has been in use for years. The {terminators} run on 5 Volts DC. See also {LVD}. (1999-02-16) HIGZ High Level Interface to Graphics and Zebra. Part of the {PAW} system. hill climbing A {graph} search {algorithm} where the current path is extended with a successor node which is closer to the solution than the end of the current path. In simple hill climbing, the first closer node is chosen whereas in steepest ascent hill climbing all successors are compared and the closest to the solution is chosen. Both forms fail if there is no closer node. This may happen if there are local maxima in the {search space} which are not solutions. Steepest ascent hill climbing is similar to {best first search} but the latter tries all possible extensions of the current path in order whereas steepest ascent only tries one. (1995-12-09) HiLog A {higher-order logic} programming language. An extension of normal {logic programming} where {predicate} symbols may be variable or structured. This allows {unification} to be performed on the predicate symbols themselves in addition to their arguments. {(ftp://sbcs.sunysb.edu/SB-hilog)} ["HiLog as a Platform for Database Languages (Or Why Predicate Calculus is Not Enough)", W. Chen et al, Stony Brook, 2nd Intl Workshop on Database Prog Langs, Morgan Kaufmann, 1989]. (1994-12-07) HIMEM An {IBM PC} {extended memory manager}, part of {MS-DOS} version 5.00 or higher. HIMEM can also act as an {A20 handler}. (1996-01-10) hing ({IRC}) Fortuitous typo for "hint", now in wide intentional use among players of {initgame}. Compare {newsfroup}, {filk}. [{Jargon File}] (1994-12-07) HINT Hierarchical Information NeTs. A language for the {CDC 3600}. ["HINT: A Graph Processing Language", R.D. Hart, Michigan State U, Apr 1970]. (1994-12-07) HiPAC An active DBMS from Xerox Advanced Information Technology. HIPPI {High Performance Parallel Interface} hiragana The cursive formed Japanese {kana} syllabary. Hiragana is mostly used for grammatical particles, verb-inflection, and Japanese words which are not written in {kanji} or which are too difficult for an educated person to read or write in {kanji}. Hiragana are also used for {furigana}. (2001-03-18) hirsute Occasionally used as a humorous synonym for {hairy}. [{Jargon File}] HISTORIAN A {source code management} system sold by {OPCODE, Inc.} history 1. A record of previous user inputs (e.g. to a {command interpreter}) which can be re-entered without re-typing them. The major improvement of the {C shell} (csh) over the {Bourne shell} (sh) was the addition of a command history. This was still inferior to the history mechanism on {VMS} which allowed you to recall previous commands as the current input line. You could then edit the command using cursor motion, insert and delete. These sort of history editing facilities are available under {tcsh} and {GNU Emacs}. 2. {The history of computing (http://ei.cs.vt.edu/~history/index.html)}. 3. See {Usenet} newsgroups {news:soc.history} and {news:alt.history} for discussion of the history of the world. (1995-04-05) hit 1. {cache hit}. 2. A request to a {web server} from a {web browser} or other {client} (e.g. a {robot}). The number of hits on a server may be important for determining advertising revenue. In the course of loading a single {web page}, a browser may hit a web server many times e.g. to retrieve the page itself and each {image} on the page. In contrast, caching by browsers and {web proxies} reduces the number of hits on the server because some requests are satisfied from the cache. 3. To press and release a key on the keyboard. Some prefer the less aggressive "tap". (2000-02-20) Hitachi 6309 (HD6309) {Hitachi}'s version of the {Motorola 6809} {microprocessor}. Compatible with the 6809, it added two new eight-bit {registers} that could be added to form a second 16-bit register, and all four eight-bit registers could form a 32-bit register. It also featured division, and some 32-bit arithmetic and was generally 30% faster in native mode. This information, surprisingly, was never published by Hitachi. {Technical reference (http://www.sandelman.ottawa.on.ca/People/Alan_DeKok/interests/6309.techref)}. (1997-03-21) Hitachi HD64180 A processor family which adds peripherals and an {MMU} to the {Zilog Z80}. (1995-10-06) HITL {Human Interface Technology Laboratory} hit rate The fraction of all memory reads which are satisfied from the {cache}. (1997-01-21) hk The {country code} for Hong Kong. (1999-01-27) HL7 An information exchange {protocol} used in medicine, and possibly elsewhere. It is different from {DICOM}. [Details?] (1998-12-23) HLISP "Monocopy and Associative Algorithms in an Extended Lisp", E. Goto, U Tokyo May 1974. HLL {high-level language} HLLAPI {High Level Language Application Programming Interface} hlp A {Microsoft Windows} {filename extension} for {hypertext} {WinHelp} files. These are in a {proprietary} format, and are compiled from {source files} written in a dialect of {RTF}. See also {gid}. {Usenet} newsgroup: {news:comp.os.ms-windows.programmer.winhelp}. (1997-01-30) hm The {country code} for the Heard and McDonald Islands. (1999-01-27) HMA {High Memory Area} HMAC {Keyed-Hashing Message Authentication} HMP {hybrid multiprocessing} HMSL {Hierarchical Music Specification Language} HMTL Do you mean {HTML}? (1998-06-30) hn The {country code} for Honduras. (1999-01-27) Hoare powerdomain {powerdomain} Hobbit A {Scheme} to {C} compiler by Tanel Tammet . Hobbit attempts to retain most of the original Scheme program structure, making the output C program readable and modifiable. Hobbit is written in Scheme and is able to self-compile. Hobbit release 1 works together with the {scm} release scm4b3. Future releases of scm and hobbit will be coordinated. Current version: release 2. {(ftp://altdorf.ai.mit.edu/archive/scm/hobbit2.tar.Z)} (1993/04/25) 2. The non-{ITS} name of (*Hobbit*), master of lasers. hobbit High order bit. The most significant bit (of a byte). Also known as the {meta bit} or {high bit}. [{Jargon File}] hog 1. Favoured term to describe programs or hardware that seem to eat far more than their share of a system's resources, especially those which noticeably degrade interactive response. *Not* used of programs that are simply extremely large or complex or that are merely painfully slow themselves (see {pig, run like a}). More often than not encountered in qualified forms, e.g. "memory hog", "core hog", "hog the processor", "hog the disk". "A controller that never gives up the I/O bus gets killed after the bus-hog timer expires." 2. Also said of *people* who use more than their fair share of resources (particularly disk, where it seems that 10% of the people use 90% of the disk, no matter how big the disk is or how many people use it). Of course, once disk hogs fill up one file system, they typically find some other new one to infect, claiming to the sysadmin that they have an important new project to complete. HOL Higher Order Logic. A proof-generating system for {higher order logic} based on {LCF}. Implementations include {HOL-88} and {HOL-90}. {(ftp://ted.cs.uidaho.edu/pub/hol)}. Mailing list: info-hol@ted.cs.uidaho.edu. ["HOL: A Machine Oriented Formulation of Higher Order Logic", M.J.C. Gordon, Report 68, Comp Lab U Cambridge (1985)]. ["Introduction to HOL", M.J.C. Gordon et al, Cambridge U Press 1993 ISBN 0-521-441897]. HOL-88 An implementation of {HOL} built on {ML} by Mike Gordon . HOL-90 An implementation of {HOL} built on {SML/NJ} by Brian Graham . Runs on {Sun-4}. {(ftp://fsa.cpsc.ucalgary.ca/pub/hol90.tar.Z)}. Mailing list: info-hol@clover.ucdavis.edu. hole The absence of an {electron} in a {semiconductor} material. In the {electron model}, a hole can be thought of as an incomplete outer electron shell in a doping substance. Holes can also be thought of as positive charge carriers; while this is in a sense a fiction, it is a useful abstraction. (1995-10-06) hole model A {model} of semiconductor behaviour in which {donors} contribute a positive charge equal in magnitude to the charge of an {electron}, and {acceptors} contribute space for such a charge within the crystal lattice. Honored by history well before electrons were discovered and described, much of {electronics}, especially at the engineering level, continues to consider {current} as flowing from positive to negative. (1995-10-05) Hollerithabetical order Sorted into the order a standard {Hollerith} {card sorting machine} produces, with special characters interleaved within the alphabet. (1997-02-11) Hollerith, Herman {Herman Hollerith} Hollywired {Siliwood} HOL-UNITY A verification tool for {UNITY}? Version 2.1. E-mail: Flemming Andersen ? holy wars [{Usenet}, but may predate it] {flame war}s over {religious issues}. The paper by Danny Cohen that popularised the terms {big-endian} and {little-endian} was entitled "On Holy Wars and a Plea for Peace". Other perennial Holy Wars have included {Emacs} vs. {vi}, my personal computer vs. everyone else's personal computer, {ITS} vs. {Unix}, {Unix} vs. {VMS}, {BSD} Unix vs. {USG Unix}, {C} vs. {Pascal}, {C} vs. Fortran, etc., ad nauseam. The characteristic that distinguishes holy wars from normal technical disputes is that in a holy wars most of the participants spend their time trying to pass off personal value choices and cultural attachments as objective technical evaluations. See also {theology}. [{Jargon File}] home box A hacker's personal machine, especially one he or she owns. "Yeah? Well, *my* home box runs a full {4.2BSD}, so there!" home machine 1. Synonym {home box}. 2. The machine that receives your e-mail. These senses might be distinct, for example, for a hacker who owns one computer at home, but reads e-mail at work. [{Jargon File}] home page 1. The top-level entry point {web page} relating to an individual or institution, or possibly a subject area. This often has a {URL} consisting of just a {hostname}, e.g. http://www.ncsa.uiuc.edu/. All other pages on a {web site} are usually accessible by following {links} from the home page. 2. The {web page} a user's {web browser} is configured to load each time it is started. This will typically default to the {home page} (sense 1) of the organisation that produced or distributed the browser. (1999-03-21) Home Phoneline Networking Alliance (HomePNA) A non-profit association of more than 100 technology companies working together to ensure adoption of a phone line {networking} standard which should provide high-speed, affordable home networking. The Home Phoneline Networking Alliance (HomePNA) was founded in June 1998 by {3Com}, {AMD}, {AT&T Wireless Services}, {Compaq}, Conexant, Epigram, {Hewlett-Packard}, {IBM}, {Intel}, {Lucent Technologies}, Rockwell Semiconductor Systems, and Tut Systems. The membership now spans the networking, telecommunications, {hardware}, {software}, and consumer electronics industries. The alliance was originally formed because of the increasing demand for home networking caused by the growing number of homes with multiple PCs (and other devices) to connect together to provide facilities such as shared {Internet} access, {networked gaming}, and sharing of {peripherals}, {files} and {applications}. The member companies aimed to develop {open standards} to ensure compatibility between different manufacturers' products. They also decided that this should be done using the phone wiring that already existed in people's homes. The concept of "no new wires" networking meant installation was simpler. HomePNA's original specifications could be used to create a 1 {Mbps} (megabits per second) {Ethernet}-compatible {LAN} with no {hubs}, {routers}, {splitters} or {terminations}. Adapters would allow any computer (or other device) with an Ethernet port to be linked to the home network. Up to 25 PCs, peripherals and network devices can be connected to such a network. On 1999-12-01, the HomePNA announced a new release of its networking technology specification, called Home PNA 2.0. Like the first specification, it uses existing phone lines, but it can operate at speeds up to 10 Mbps. The new version is {backwardly compatible} with the original 1 Mbps HomePNA technology, and is designed to provide faster networks suitable for future voice, video and data applications. {HomePNA.org (http://www.homepna.org/)}. {HomePNA.Com (http://www.HomePNA.com/)}. (2000-03-24) HomePNA {Home Phoneline Networking Alliance} homogeneous (Or "homogenous") Of uniform nature, similar in kind. 1. In the context of {distributed systems}, {middleware} makes {heterogeneous} systems appear as a homogeneous entity. For example see: {interoperable network}. Constrast {heterogeneous}. 2. (Of a {polynomial}) containing terms of the same degree with respect to all the variables, as in x^2 + 2xy + y^2. 3. (Of a {function}) containing a set of variables such that when each is multiplied by a constant, this constant can be eliminated without altering the value of the function, as in cos x/y + x/y. 4. (of an equation) containing a homogeneous function made equal to 0. (1999-05-06) homogenous {homogeneous} homomorphism A map f between groups A and B is a homomorphism of A into B if f(a1 * a2) = f(a1) * f(a2) for all a1,a2 in A. where the *s are the respective group operations. Honeywell-800 Business Compiler Another name for FACT. Sammet 1969, p.327. HOOD Hierarchical Object Oriented Design: a method for Architectural Design primarily for software to be developed in Ada, leading to automated checking, documentation and source code generation. HOOK ? Object Oriented Kernel. Delphia. An object-oriented extension of Delphia Prolog. [{Jargon File}] hook A {software} or {hardware} feature included in order to simplify later additions or changes by a user. For example, a simple program that prints numbers might always print them in base 10, but a more flexible version would let a variable determine what base to use; setting the variable to 5 would make the program print numbers in base 5. The variable is a simple hook. An even more flexible program might examine the variable and treat a value of 16 or less as the base to use, but treat any other number as the address of a user-supplied routine for printing a number. This is a {hairy} but powerful hook; one can then write a routine to print numbers as Roman numerals, say, or as Hebrew characters, and plug it into the program through the hook. Often the difference between a good program and a superb one is that the latter has useful hooks in judiciously chosen places. Both may do the original job about equally well, but the one with the hooks is much more flexible for future expansion of capabilities. {Emacs}, for example, is *all* hooks. The term "user exit" is synonymous but much more formal and less hackish. (1997-06-25) hop 1. One point-to-point transmission in a series required to get a message from point A to point B on a {store and forward} network. On such networks (including {UUCPNET} and {FidoNet}), an important inter-machine metric is the hop count of the shortest path between them. This can be more significant than their geographical separation. Each {exclamation mark} in a {bang path} represents one hop. 2. One direct host-to-host connection forming part of the route between two hosts in a {routed} {network} such as the {Internet}. Some {protocols} place an upper limit on the hop count in order to detect routing loops. 3. To {log in} to a {remote} computer, especially via {rlogin} or {telnet}. "I'll hop over to foovax to FTP that." [{Jargon File}] (1997-06-25) Hope A {functional programming} language designed by R.M. Burstall, D.B. MacQueen and D.T. Sanella at {University of Edinburgh} in 1978. It is a large language supporting user-defined {prefix}, {infix} or {distfix} operators. Hope has {polymorphic} typing and allows {overloading} of operators which requires explicit type declarations. Hope has {lazy lists} and was the first language to use {call-by-pattern}. It has been ported to {Unix}, {Macintosh}, and {IBM PC}. See also {Hope+}, {Hope+C}, {Massey Hope}, {Concurrent Massey Hope}. {(ftp://brolga.cc.uq.oz.au/pub/hope)}. [R.M.Burstall, D.B.MacQueen, D.T.Sanella, "HOPE: An experimental applicative language", Proc. 1980 Lisp conf., Stanford, CA, p.136-143, Aug 1980]. ["A HOPE Tutorial", R. Bailey, BYTE Aug 1985, pp.235-258]. ["Functional Programming with Hope", R. Bailey, Ellis Horwood 1990]. (1992-11-27) Hope+ An extension of {Hope} implemented in the Alvey {Flagship} project at {Imperial College}. Hope+ has vectors, real numbers, best fit {pattern matching}, lazy data constructors, absolute {set abstractions} and {constraints}. It has a {continuation}-based I/O system which posesses {referential transparency} and is capable of handling all common I/O tasks such as terminal and file I/O, {signal} handling and interprocess communications. It has {modules} and {separate compilation}. See also {Hope+C}, {Massey Hope}, {Concurrent Massey Hope}. ["Hope+", N. Perry, Imperial College, IC/FPR/LANG/2.5.1/7, 1988.] (1999-08-24) Hope+C A further evolution of {Hope+} with {continuation-based I/O}, {coroutines}, and {RFC}s. Hope+C was developed as part of the {Flagship} project at {Imperial College}. It has been implemented for {Sun-3}s with {Motorola} {FPU}s. See also {Massey Hope}, {Concurrent Massey Hope}. E-mail: John Darlington . [What kind of RFCs?] (1999-06-23) Hopfield model {Hopfield network} Hopfield network (Or "Hopfield model") A kind of {neural network} investigated by John Hopfield in the early 1980s. The Hopfield network has no special input or output neurons (see {McCulloch-Pitts}), but all are both input and output, and all are connected to all others in both directions (with equal weights in the two directions). Input is applied simultaneously to all neurons which then output to each other and the process continues until a stable state is reached, which represents the network output. (1997-10-11) horizontal application An {application program} common to different business processes, e.g. {office automation}. Compare {vertical application}. (1994-12-12) horizontal encoding An {instruction set} where each field (a bit or group of bits) in an instruction word controls some {functional unit} or {gate} directly, as opposed to {vertical encoding} where instruction fields are decoded (by {hard-wired} {logic} or {microcode}) to produce the control signals. Horizontal encoding allows all possible combinations of control signals (and therefore operations) to be expressed as instructions whereas vertical encoding uses a shorter instruction word but can only encode those combinations of operations built into the decoding logic. An {instruction set} may use a mixture of horizontal and vertical encoding within each instruction. Because an architecture using horizontal encoding typically requires more instruction word bits it is sometimes known as a {very long instruction word} (VLIW) architecture. (1995-04-23) horizontal loop combination See {tupling}. horizontal microcode {Microcode} using {horizontal encoding}. (1995-04-23) horizontal scan rate (HSR) The measure of how many {scan lines} of {pixels} a {monitor} can display in one second, expressed in kHz (generally somewhere between 20 and 100 kHz). The HSR is controlled by the horizontal sync signal generated by the {video controller}, but is limited by the speed with which the monitor can scan the electron beam horizontally across the screen and then return it to the beginning of the next line. (1996-02-09) horizontal tabulation (tab, Control-I, HT, {ASCII 9}) A character which when displayed or printed causes the following character to be placed at the next "tabstop" - the column whose number is a multiple of the current tab width. Commonly (especially in Unix(?)) the tab width is eight, so, counting from the left margin (column zero), the tab stops are at columns 8, 16, 24, up to the width of the screen or page. A tab width of four or two is often preferred when indenting program {source code} to conserve indentation. Represented as "\t" in {C}, {Unix}, and derivatives. (1999-07-05) Horn clause A set of {atomic literals} with at most one {positive literal}. Usually written L <- L1, ..., Ln or <- L1, ..., Ln where n>=0. If L is false the clause is regarded as a goal. Horn clauses can express a subset of statements of {first order logic}. The name "Horn Clause" comes from the logician Alfred Horn, who first pointed out the significance of such clauses in 1951, in the article "On sentences which are true of direct unions of algebras", Journal of Symbolic Logic, 16, 14-21. A {definite clause} is a Horn clause that has exactly one positive literal. (2000-01-24) hose 1. To make non-functional or greatly degraded in performance. "That big ray-tracing program really hoses the system." See {hosed}. 2. A narrow channel through which data flows under pressure. Generally denotes data paths that represent performance bottlenecks. 3. Cabling, especially {thick Ethernet cable}. This is sometimes called "bit hose" or "hosery" (a play on "hosiery") or "etherhose". See also {washing machine}. [{Jargon File}] hosed A somewhat humorous variant of "{down}", used primarily by {Unix} {hackers}. "Hosed" implies a condition thought to be relatively easy to reverse. It is also widely used of people in the mainstream sense of "in an extremely unfortunate situation". The term was popularised by fighter pilots refering to being hosed by machine gun fire (date?). Usage in hackerdom dates back to {CMU} in the 1970s or earlier. {"Acronyms and Abbreviations" from UCC, Ireland (http://www.ucc.ie/cgi-bin/acronym)} expands it as "Hardware Or Software Error Detected", though this is probably a back-formation. The {Jargon File} version 4.1.4 1999-06-17 says that it was probably derived from the Canadian slang "hoser" (meaning "a man, esp. one who works at a job that uses physical rather than mental skills and whose habits are slightly offensive but amusing"). One correspondant speculates about an allusion to a hose-like body part. Once upon a time, a {Cray} that had been experiencing periodic difficulties crashed, and it was announced to have been hosed. It was discovered that the crash was due to the disconnection of some coolant hoses. The problem was corrected, and users were then assured that everything was OK because the system had been rehosed. See also {dehose}. See also: {hose}. (1999-10-28) HOS-STPL Hospital Operating System - STructured Programming Language. A {Fortran}-like language with structured extensions. ["HOS-STPL User Manual", Health Services Research, US Public Health Service (Jan 1975)]. host 1. A computer connected to a {network}. The term {node} includes devices such as routers and printers which would not normally be called "hosts". 2. A computer to which one connects using a {terminal emulator}. (1995-02-16) host adaptor {SCSI adaptor} Host Command Facility (HCF) Used to access {IBM S/36} and {AS/400} computers from a {mainframe}. [What is it?] (1999-01-24) host-host layer {transport layer} hostname 1. (Or "sitename"). The unique name by which a computer is known on a {network}, used to identify it in {electronic mail}, {Usenet} {news}, or other forms of electronic information interchange. On {Internet} the hostname is an {ASCII} string, e.g. "foldoc.doc.ic.ac.uk" which, consists of a local part (foldoc) and a {domain} name (doc.ic.ac.uk). The hostname is translated into an {Internet address} either via the /etc/hosts file, {NIS} or by the {Domain Name System} (DNS) or {resolver}. It is possible for one computer to have several hostnames (aliases) though one is designated as its {canonical} name. It is often possible to guess a hostname for a particular institution. This is useful if you want to know if they operate network services like {anonymous FTP}, {World-Wide Web} or {finger}. First try the institution's name or obvious abbreviations thereof, with the appropriate {domain} appended, e.g. "mit.edu". If this fails, prepend "ftp." or "www." as appropriate, e.g. "www.data-io.com". You can use the {ping} command as a quick way to test whether a hostname is valid. The folklore interest of hostnames stems from the creativity and humour they often display. Interpreting a sitename is not unlike interpreting a vanity licence plate; one has to mentally unpack it, allowing for mono-case and length restrictions and the lack of whitespace. Hacker tradition deprecates dull, institutional-sounding names in favour of punchy, humorous, and clever coinages (except that it is considered appropriate for the official public gateway machine of an organisation to bear the organisation's name or acronym). Mythological references, cartoon characters, animal names, and allusions to SF or fantasy literature are probably the most popular sources for sitenames (in roughly descending order). The obligatory comment is Harris's Lament: "All the good ones are taken!" See also {network address}. 2. {Berkeley} {Unix} command to set and get the application level name used by the host. {Unix manual page}: hostname(1). (1995-02-16) host number The host part of an {Internet address}. The rest is the {network number}. (1994-10-27) Hot Fix {Novell, Inc.}'s term for the feature of their network {file server} {operating system}, {Novell NetWare}, which handles errors in disk write operations. The OS re-reads every block it writes to disk while it holds the data to be written in memory. In the case of an error, the data block is written to a spare area on the disk. The feature lost much of its importance with the widespread use of hard disk drives with built-in {error correction} and {bad block} re-mapping. (1997-05-27) HotJava A modular, extensible {World-Wide Web} {browser} from {Sun Microsystems} that can execute programs written in the {Java} programming language. These programs, known as "{applets}", can be included (like images) in {HTML} pages. Because Java programs are compiled into machine independent {bytecodes}, applets can run on any {platform} on which HotJava runs - currently (December 1995) {SPARC}/{Solaris} 2 and {Intel 80x86}/{Windows 95}, {Windows NT}. {Home (http://java.sun.com/hotjava.html)} (1995-12-10) Hotline 1. {Hotline Communications Ltd.}. 2. {Hotline Connect}. (1999-12-07) Hotline Communications Ltd. The company that developes and distributes {Hotline Connect}. {Home (http://www.BigRedH.com/index2.html)}. (1999-12-07) Hotline Connect A suite of communication products developed by {Hotline Communications Ltd.} Hotline Connect is a {real-time}, {multi-platform Internet}/{Intranet} communication suite, that operates independent of the {World-Wide Web}. It provides easy-to-use private and public {virtual community} building and live interaction with real-time {chat}, conferencing, {messaging}, {data warehousing}, {file transfer}, and viewing. Version: 1.7.2, as of 1999-12-07. (1999-12-07) hotlink A mechanism for sharing data between two {application program}s where changes to the data made by one application appear instantly in the other's copy. Under {System 7} on the {Macintosh} the users establishes a hotlink by doing a "Create Publisher" on the server and "Subscribe" on the client. Under {Windows 3} it's "Cut Special"(?) and "Paste Special" (as opposed to the normal Cut and Paste). (1995-02-16) hotlist (From {hypertext} "{hot spot}") A {document} on the {World-Wide Web} or a user's {browser} configuration file containing {hypertext} {link}s, often unorganised and undocumented, to notable pages on the Web. Compare the 19th century notion of a {commonplace book (http://c.gp.cs.cmu.edu:5103/prog/webster?commonplace+book)}. (1995-04-16) hot spot 1. (primarily used by {C}/{Unix} programmers, but spreading) It is received wisdom that in most programs, less than 10% of the code eats 90% of the execution time; if one were to graph instruction visits versus code addresses, one would typically see a few huge spikes amidst a lot of low-level noise. Such spikes are called "hot spots" and are good candidates for heavy optimisation or {hand-hacking}. The term is especially used of tight loops and recursions in the code's central algorithm, as opposed to (say) initial set-up costs or large but infrequent I/O operations. See {tune}, {bum}, {hand-hacking}. 2. The active location of a cursor on a bit-map display. "Put the mouse's hot spot on the "ON" widget and click the left button." 3. A screen region that is sensitive to mouse clicks, which trigger some action. {Hypertext} help screens are an example, in which a hot spot exists in the vicinity of any word for which additional material is available. 4. In a {massively parallel} computer with {shared memory}, the one location that all 10,000 processors are trying to read or write at once (perhaps because they are all doing a {busy-wait} on the same lock). 5. More generally, any place in a hardware design that turns into a performance {bottleneck} due to resource contention. [{Jargon File}] (1995-02-16) Hot Swapable Routing Protocol (HSRP) A mirrored {router} in passive mode sending {hello packets}, waiting for a lead router to die and, without dropping a {packet}, take over from that router. [Specification?] (1997-04-25) hot swapping The connection and disconnection of {peripherals} or other components without interrupting system operation. This facility may have design implications for both hardware and software. [More detail?] (1997-03-15) HOTT (Hot Off The Tree) An {Internet}-based electronic magazine edited by David Scott Lewis and distributed by {electronic mail}. (1994-12-23) house wizard (Probably from ad-agency tradetalk, "house freak") A hacker occupying a technical-specialist, R&D, or systems position at a commercial shop. A really effective house wizard can have influence out of all proportion to his/her ostensible rank and still not have to wear a suit. Used especially of {Unix} {wizard}s. The term "house guru" is equivalent. [{Jargon File}] (1995-02-16) Houston Automatic Spooling Program (HASP) A program developed [by ?] in the 1960s to {SPOOL} output on {OS/MFT} and {OS/MVT}. (1999-01-12) HP {Hewlett-Packard} hp2ps An {HP-GL} {interpreter} written in {PostScript} by Alun Jones. hp2ps runs on the printer itself. Version 1.9c. (1999-11-23) H/PC {Hand-held Personal Computer} HPCC {High Performance Computing and Communications} HPcode Stack-based intermediate language used by {HP} in many of its compilers for {RISC} and stack-based architectures. Supports {Fortran}, {Ada}, {Pascal}, {COBOL} and {C++}. Descended from Stanford's {U-code}. HPCode-Plus A descendant of {HPcode} with {data type}s, developed to be an {ANDF} language. ["ANDF: Finally an UNCOL After 30 Years", M.E. Benitez, Jack Davidson et al, CS TR-91-05 U Virginia (Mar 1991)]. (1995-03-16) HPF {High Performance Fortran} HPFS {High Performance File System} HP-GL {Hewlett-Packard Graphics Language} HP-GL/2 "HP-GL/2 Programmer's Guide", No. 5959-9733, HP. (See PCL.) HP-IB {IEEE 488} HPL Language used in HP9825A/S/T "Desktop Calculators", 1978(?) and ported to the early Series 200 family (9826 and 9836, 68000). Fairly simple and standard, but with extensive I/O support for data acquisition and control (BCD, Serial, 16 bit custom and {IEEE 488} interfaces), including interrupt handling. Currently owned by Structured Software Systems. "HPL Operating Manual for Series 200, Models 216, 226 and 235\6", HP 98614-90010, Jan 1984. HPLOT A graphical output facility for {HBOOK}. (1995-02-22) HP-MPE {Hewlett Packard Multi Processing Executive} HP-PA {Hewlett Packard Precision Architecture} HPPI {High Performance Parallel Interface} HPR {High Performance Routing} HP-SUX /H-P suhks/ An unflattering hackerism for {HP-UX} which features some truly unique bogosities in the {file system} internals and elsewhere (these occasionally create portability problems). HP-UX is often referred to as "hockey-pux" inside HP, and one respondent claims that the proper pronunciation is /H-P ukkkhhhh/ as though one were about to spit. Another such alternate spelling and pronunciation is "H-PUX" /H-puhks/. Hackers at HP/Apollo (the former Apollo Computers which was swallowed by HP in 1989) have been heard to complain that Mr. Packard should have pushed to have his name first, if for no other reason than the greater eloquence of the resulting acronym. Compare {AIDX}, {buglix}, {Telerat}, {Open DeathTrap}, {ScumOS}, {sun-stools}. [{Jargon File}] (1997-05-12) HP-UX The version of {Unix} running on {Hewlett-Packard} {workstations}. HP-UX conforms to {X/Open}'s Portability Guide Issue 4 ({XPG4}), Federal Information Processing Specification (FIPS) 151.1, {POSIX} 1003.1, POSIX 1003.2, {AT&T}'s System V Interface Definition 2 ({SVID} 2). HP-UX incorporates selected features from the University of California at Berkeley Software Distribution 4.3 ({4.3BSD}). It is known by some as "{HP-SUX}". [Features?] (1997-05-12) HP VEE {Hewlett-Packard Visual Engineering Environment} hqx {binhex} hr The {country code} for Croatia. (1999-01-27) hs {Haskell} HSB {hue, saturation, brightness} HSC {High Speed Connect} HSCSD {High Speed Circuit Switched Data} HSL-FX {Hierarchical Specification Language - Function Extension} HSRP {Hot Swapable Routing Protocol} HSSI {high speed serial interface} HSV {hue, saturation, value} HT {horizontal tabulation} ht The {country code} for Haiti. (1999-01-27) HTH Hope This Helps. Often used sarcastically, see {HAND}. (1998-03-06) HTLM Do you mean {HTML}? HTML {Hypertext Markup Language} HTML+ A proposed successor to {HTML}. HTML+ was a superset of HTML designed to extend the capabilities of the language to incorporate better support for {multimedia} objects in documents. (1994-10-27) HTTL Do you mean {HTTP} or {HTML}? HTTP {Hypertext Transfer Protocol} HTTP/1.0 {Hypertext Transfer Protocol} version 1.0. HTTP cookie A packet of information sent by an {HTTP server} to a {World-Wide Web} {browser} and then sent back by the browser each time it accesses that server. Cookies can contain any arbitrary information the server chooses and are used to maintain {state} between otherwise stateless {HTTP} transactions. Typically this is used to authenticate or identify a registered user of a {web site} without requiring them to sign in again every time they access that site. Other uses are, e.g. maintaining a "shopping basket" of goods you have selected to purchase during a session at a site, site personalisation (presenting different pages to different users), tracking a particular user's access to a site. {(http://www.illuminatus.com/cookie)}. (1997-01-15) HTTPd (Hypertext transfer protocol daemon). An {HTTP/1.0}-compatible {server}, written by Rob McCool of {NCSA}, for making {hypertext} and other documents available to {World-Wide Web} {browsers}. HTTPd is designed to be small and fast and to work with most HTTP/0.9 and HTTP/1.0 {browser}s. You can customise your server to execute searches and handle {HTML} {forms}. It also supports {server side include} files, allowing you to include the output of commands or other files in {HTML} documents. The current (1994-08-08) version is 1.3. {(http://hoohoo.ncsa.uiuc.edu/docs/Overview.html)} E-mail: . (1995-01-16) HTTPS {HyperText Transmission Protocol, Secure} HTTP server (Or "web server") A {server} process running at a {web site} which sends out {web pages} in response to {HTTP} requests from remote {browsers}. If one site runs more than one server they must use different {port numbers}. Alternatively, several hostnames may be mapped to the same computer in which case they are known as "{virtual servers}". {Apache} and {NCSA} {HTTPd} are two popular web servers. There are many others including some for practically every {platform}. Servers differ mostly in the "server-side" features they offer such as {server-side include}, and in their {authentication} and access control mechanisms. All decent servers support {CGI} and most have some binary {API} as well. (1997-02-05) hu The {country code} for Hungary. (1999-01-27) hub (By analogy with the hub of a wheel) A device connected to several other devices. In {ARCnet}, a hub is used to connect several computers together. In a message handling service, a number of local computers might exchange messages solely with a hub computer. The hub would be responsible for exchanging messages with other hubs and non-local computers. (1995-01-16) Hubnet A 50 Mb/s {optical fibre} {network} developed at {Toronto University}. Network {topology} is a rooted tree with a maximum of 65536 hosts with maximum separation of 2 km. The {protocol} is multiple access, collision avoidance, echo detect and retry. [Computer Systems Equipment Design, Jan 85]. (1994-11-22) hubs {hub} hue (Or "tint") The coordinate in the {HSB} {colour model} that determines the frequency of light or the position in the spectrum or the relative amounts of red, green and blue. Hue corresponds to the common definition of colour, e.g. "red", "orange", "violet" etc. The other coordinates are {saturation} and {brightness}. (1999-07-05) hue, saturation, brightness (HSB) A {colour model} that describes colours in terms of {hue}, {saturation}, and {brightness}. In the tables below, a hue is a "pure" colour, i.e. one with no black or white in it. A shade is a "dark" colour, i.e. one produced by mixing a hue with black. A tint is a "light" colour, i.e. one produced by mixing a hue with white. A tone is a colour produced by mixing a hue with a shade of grey. {Microsoft Windows} colour dialogs, {PagePlus}, and {Paint Shop Pro} use {HSB} but call the third dimension "luminosity" or "lightness". It ranges from 0% (black) to 100% (white). A pure hue is 50% luminosity, 100% saturation. Colour type S L Black Any 0% White Any 100% Grey 0% 1-99% Hue 100% 50% Shade 100% 1-49% Tint 100% 51-99% Tone 1-99% 1-99% {Quattro Pro}, {CorelDraw}, and {PhotoShop} use a variant (Quattro Pro calls the third parameter "brightness") in which a brightness of 100% can produce white, a pure hue, or anything in between, depending on the saturation. Colour type S B Black Any 0% White 0% 100% Grey 0% 1-99% Hue 100% 100% Shade 100% 1-99% Tint 1-99% 100% Tone 1-99% 1-99% [Same as {HSV}?] (1999-07-05) hue, saturation, value (HSV) A {colour model} that describes colours in terms of {hue} (or "tint"), {saturation} (or "shade") and {value} (or "tone" or "luminance"). [Same as {HSB}?] (1999-07-05) huff To compress data using a {Huffman} code. Various programs that use such methods have been called "HUFF" or some variant thereof. Opposite: {puff}. Compare {crunch}, {compress}. [{Jargon File}] (1994-12-23) Huffman coding A {data compression} technique which varies the length of the encoded symbol in proportion to its information content, that is the more often a symbol or token is used, the shorter the binary string used to represent it in the compressed stream. Huffman codes can be properly decoded because they obey the prefix property, which means that no code can be a prefix of another code, and so the complete set of codes can be represented as a binary tree, known as a Huffman tree. Huffman coding was first described in a seminal paper by D.A. Huffman in 1952. (1994-12-23) HUGO A {bytecode}-interpreted {transaction handler} from {Geac}. (1994-12-23) HUGS {Haskell User's Gofer System} Human-Computer Interaction (HCI) The study of how humans interact with computers, and how to design computer systems that are easy, quick and productive for humans to use. See also {Human-Computer Interface}. {HCI Sites (http://www.acm.org/sigchi/hci-sites/)}. (1999-05-09) Human-Computer Interface (HCI) Any {software} or {hardware} that allows a user to interact with a computer. Examples are {WIMP}, {command line interpreter}, or {virtual reality}. See also {Human-Computer Interaction}. (1999-05-09) Human Interface Device (HID) Any device to interact directly with humans (mostly input) like {keyboard}, {mouse}, {joystick}, or {graphics tablet}. (2001-03-29) Human Interface Technology Laboratory (HITL) The Human Interface Technology Laboratory at the {University of Washington} was founded in 1990. It is a centre for research and development of advanced interface technology. Located on the university campus, HITL forms a bridge between academia and industry. It maintains its industrial focus via the Virtual Worlds Consortium and maintains contacts with academia by training students and teaching courses. The lab has access to faculty and students throughout the State of Washington. Address: Human Interface Technology Laboratory, University of Washington, Seattle, USA. (1995-02-13) humma A filler word used on various "chat" and "talk" programs when you had nothing to say but felt that it was important to say something. The word apparently originated (at least with this definition) on the MECC Timeshare System (MTS, a now-defunct educational {time-sharing} system running in Minnesota during the 1970s and the early 1980s) but was later sighted on early Unix systems. [{Jargon File}] (1999-02-27) humor {hacker humour} humour {hacker humour} hung ["hung up"] Equivalent to {wedged}, but more common at Unix/C sites. Not generally used of people. Synonym with {locked up}, {wedged}; compare {hosed}. See also {hang}. A hung state is distinguished from {crash}ed or {down}, where the program or system is also unusable but because it is not running rather than because it is waiting for something. However, the recovery from both situations is often the same. [{Jargon File}] Hungarian Notation A linguistic convention requiring one or more letters to be added to the front of {variable} names to denote {scope} and/or {type}. Hungarian Notation is mainly confined to {Microsoft Windows} programming environments, such as Microsoft {C}, {C++} and {Visual Basic}. It was originally devised by {Charles Simonyi}, a Hungarian, who was a senior programmer at {Microsoft} for many years. He disliked the way that names in C programs could stand for any kind of variable. This was for ever leading to mistakes, as programmers tried to manipulate variables in ways that their type prohibited, which they would never had done if they remembered what sort they were. According to legend, fellow programmers at Microsoft looked at the convoluted, vowel-less variable names produced by his scheme and, like everyone else who has come into contact with them since, said something like "This might as well be in Greek - or even Hungarian!". They almost certainly had in mind as well another kind of {mathematical} system called "Polish notation" (a variant form called {reverse Polish notation} is commonly used in {calculators}, which leads to expressions without brackets or punctuation which are easier to enter). They put the two together and made up the name "Hungarian notation". Hungarian Notation is not really necessary when using a modern {strongly-typed language} as the {compiler} warns the programmer if a variable of one type is used as if it were another type. It is less useful in {object-oriented programming} languages such as {C++}, where many variables are going to be instances of {classes} [Why?]. In addition, variable names are essentially only {comments}, and thus are just as susceptible to becoming out of date and incorrect as any other comment. For example, if a {signed} {short} {int} becomes an unsigned {long} int, the variable name, and every use of it throughout the program, should be changed to reflect its new type. If used appropriately however, it does enforce a certain consistency, especially when scoping is taken into account as well as type (for example g_ for global variables, m_ for members, c_ for static members, l_ for local, etc.). {Simonyi's original monograph (http://www.strangecreations.com/library/c/naming.txt)}. {Microsoft VB Naming Conventions (http://support.microsoft.com/support/kb/articles/Q110/2/64.asp)}. (1999-06-03) Hungry Programmers A group of programmers producing {free software}. {Home (http://www.hungry.com/)} (1995-03-20) hungry puppy Synonym {slopsucker}. [{Jargon File}] Hungry ViewKit A {C++} {class} library for developing {Motif} {application program}s (although this restriction will be lifted once {LessTif} is finished). It follows the {API} of the {Iris}(tm) {ViewKit}, put out by {SGI}. The Hungry ViewKit is a superset of the Iris ViewKit, so any code developed for the Iris version will work with the Hungry version, but possibly not vice versa. {Home (http://www.hungry.com/products/viewkit/)} (1995-03-20) hungus /huhng'g*s/ (Perhaps related to slang "humongous") Large, unwieldy, usually unmanageable. E.g. "{TCP} is a hungus piece of code." [{Jargon File}] (1999-01-26) Hunt the Wumpus (Or "Wumpus") /huhnt th* wuhm'p*s/ A famous family of computer games, dating back at least to 1972 (several years before {ADVENT}) on the {Dartmouth Time-Sharing System}. Hunt the Wumpus was created by {Ken Thompson} on an early version of {Unix}. It was created from a game in a children's magazine, and was made to give his young son something to do on the computer. The wumpus lived somewhere in a cave with the topology of an dodecahedron's edge/vertex graph (later versions supported other topologies, including an icosahedron and M"obius strip). The player started somewhere at random in the cave with five "crooked arrows"; these could be shot through up to three connected rooms, and would kill the wumpus on a hit (later versions introduced the wounded wumpus, which got very angry). Unfortunately for players, the movement necessary to map the maze was made hazardous not merely by the wumpus (which would eat you if you stepped on him) but also by bottomless pits and colonies of super bats that would pick you up and drop you at a random location (later versions added "anaerobic termites" that ate arrows, bat migrations and earthquakes that randomly changed pit locations). This game appears to have been the first to use a non-random graph-structured map (as opposed to a rectangular grid like the even older Star Trek games). In this respect, as in the dungeon-like setting and its terse, amusing messages, it prefigured {ADVENT} and {Zork} and was directly ancestral to both (Zork acknowledged this heritage by including a super-bat colony). A port was distributed with {SunOS} and as {freeware} for the {Macintosh}. There is a freeware {C} emulation of the original {Basic} game. (1999-02-15) Hurd The Hurd will be the foundation of the whole {GNU} system. It is built on top of the {Mach} 3.0 {kernel}, a free {message-passing} kernel developed by {CMU}. Mach's {virtual memory} management and message-passing facilities are extensively used by the Hurd. The GNU C Library will provide the {Unix} {system call} interface, and will call the Hurd for needed services it can't provide itself. One goal of the Hurd is to establish a framework for shared development and maintenance. The Hurd is like GNU {Emacs} in that it will allow a broad range of users to create and share useful projects without knowing much about the internal workings of the system -- projects that might never have been attempted without freely available source, a well-designed interface, and a multi-server-based design. Currently there are free ports of the {Mach} {kernel} to the {Intel 80386} {IBM PC}, the {DEC} {PMAX} {workstation}, the {Luna} {88k} and several other machines, with more in progress, including the {Amiga} and {DEC} {Alpha}-3000 machines. Contact , if you want to help with one of these or start your own. Porting the GNU Hurd and GNU C Library is easy (easier than porting GNU Emacs, certainly easier than porting GCC) once a {Mach} port to a particular {platform} exists. [June 1994 GNU's Bulletin]. (1994-12-07) HVD {High Voltage Differential} Hybrid A {concurrent} {object-oriented} language. ["Active Objects in Hybrid", O.M. Nierstrasz, SIGPLAN Notices 22(12):243-253 (OOPSLA '87) (Dec 1987)]. (1994-12-07) Hybrid Fiber Coax (HFC) A kind of physical connection used in networks for audio, video, and data. DVB (Digital Video Broadcast) is used in Europe and DOCSIS is used in N America. [What is the relationship between HFC, DVB, DOCSIS?] (1999-11-02) hybrid multiprocessing (HMP) The kind of {multitasking} which {OS/2} supports. HMP provides some elements of {symmetric multiprocessing}, using add-on {IBM} software called MP/2. OS/2 SMP was planned for release in late 1993. (1995-03-19) hybrid testing A combination of {top-down testing} with {bottom-up testing} of prioritised or available components. (1996-05-22) hydrofluorocarbon (HFC) A suggested replacement for the chlorofluorocarbon (CFC) coolant gas used in chillers and air conditioners. (1996-11-05) HyperBase An experimental active multi-user {database} for {hypertext} systems from the {University of Aalborg}, written in {C++}. It is built on the {client-server} model enabling distributed, {concurrent}, and shared access from {workstation}s in a {local area network}. See also {EHTS}. (1995-03-19) Hyper-C A {data parallel} extension of {C} from HyperParallel Tech, France, for {PVM}, {CM} and {Maspar}. It is available from Fortunel Systems , +1 (919) 319 1624. E-mail: . (1994-11-17) HyperCard A software package by Bill Atkinson for storage and retrieval of information on the {Macintosh}. It can handle {image}s and is designed for {browsing}. The powerful customisable interactive {user interface} allows new {application}s to be easily constructed by manipulating objects on the screen, often without conventional programming, though the language {HyperTalk} can be used for more complex tasks. {Usenet} newsgroup: {news:comp.sys.mac.hypercard}. ["Apple Macintosh HyperCard User Guide", Apple Computer 1987]. (1995-02-10) hypercube A cube of more than three dimensions. A single (2^0 = 1) point (or "node") can be considered as a zero dimensional cube, two (2^1) nodes joined by a line (or "edge") are a one dimensional cube, four (2^2) nodes arranged in a square are a two dimensional cube and eight (2^3) nodes are an ordinary three dimensional cube. Continuing this geometric progression, the first hypercube has 2^4 = 16 nodes and is a four dimensional shape (a "four-cube") and an N dimensional cube has 2^N nodes (an "N-cube"). To make an N+1 dimensional cube, take two N dimensional cubes and join each node on one cube to the corresponding node on the other. A four-cube can be visualised as a three-cube with a smaller three-cube centred inside it with edges radiating diagonally out (in the fourth dimension) from each node on the inner cube to the corresponding node on the outer cube. Each node in an N dimensional cube is directly connected to N other nodes. We can identify each node by a set of N {Cartesian coordinates} where each coordinate is either zero or one. Two node will be directly connected if they differ in only one coordinate. The simple, regular geometrical structure and the close relationship between the coordinate system and binary numbers make the hypercube an appropriate topology for a parallel computer interconnection network. The fact that the number of directly connected, "nearest neighbour", nodes increases with the total size of the network is also highly desirable for a {parallel computer}. (1994-11-17) Hyperion An {MS-DOS} {personal computer} that was manufactured in Kanata (near Ottawa, Ontario, Canada) in the mid-1980s. It received considerable government subsidies and, while it was considered well-designed and manufactured and a real threat to the {Compaq Portable}, the Ottawa firm that designed it was unable to beat {Compaq}. (1997-07-21) hyperlink A reference (link) from some point in one {hypertext} document to (some point in) another document or another place in the same document. A {browser} usually displays a hyperlink in some distinguishing way, e.g. in a different colour, font or style. When the user activates the link (e.g. by clicking on it with the {mouse}) the {browser} will display the target of the link. (1995-02-10) Hyper-Man A {browser} available with {Epoch} giving {hypertext} access to the {Unix} manual. hypermedia {hypertext} HyperNeWS A Hypertext system from the Turing Institute Glasgow, based on {NeWS}. Hyperscript Informix. The object-based programming language for Wingz, used for creating charts, graphs, graphics, and customised data entry. hyperspace /hi:'per-spays/ A memory location that is *far* away from where the {program counter} should be pointing, often inaccessible because it is not even mapped in. (Compare {jump off into never-never land}.) This usage is from the SF notion of a spaceship jumping "into hyperspace", that is, taking a shortcut through higher-dimensional space - in other words, bypassing this universe. The variant "east hyperspace" is recorded among {CMU} and {Bliss} hackers. [{Jargon File}] (1994-11-23) HyperSPARC The successor to the {SuperSPARC} processor, based on the {SPARC} {ISA}. The HyperSPARC has smaller {caches} than the {SuperSPARC}: 8kb on-chip and 256kb off-chip (compared with 36kb and 1Mb). The HyperSPARC's {memory management} is optimised for more efficient out-of-cache addressing which means quicker access to external (slower, cheaper) memory. (1994-11-23) Hyperstrict A function which is hyperstrict in some argument will fully evaluate that argument. To fully evaluate an object, evaluate it to WHNF and if it is a constructed data object (e.g. a list or tuple) then fully evaluate every component and so on recursively. Thus a hyperstrict function will fail to terminate if its argument or any component or sub-component of its argument fails to terminate (i.e. if its argument is not "total"). HyperTalk A verbose semicompiled language by Bill Atkinson and Dan Winkler, with loose {syntax} and high readability. HyperTalk uses {HyperCard} as an object management system, development environment and interface builder. Programs are organised into "stacks" of "cards", each of which may have "buttons" and "fields". All data storage is in zero-terminated strings in fields, local, or global variables; all data references are through "chunk expressions" of the form: 'last item of background field "Name List" of card ID 34217'. Flow of control is {event-driven} and uses message-passing among scripts that are attached to stack, background, card, field and button objects. {Apple Computer} has taken back distribution and maintenance of HyperCard from {Claris} Corporation ["HyperTalk Language Reference Manual", A-W 1988]. (1994-11-17) hypertext A term coined by Ted Nelson around 1965 for a collection of documents (or "nodes") containing cross-references or "links" which, with the aid of an interactive {browser} program, allow the reader to move easily from one document to another. The extension of hypertext to include other media - {sound}, {graphics}, and {video} - has been termed "{hypermedia}", but is usually just called "hypertext", especially since the advent of the {World-Wide Web} and {HTML}. (2000-09-10) Hypertext Markup Language (HTML) A {hypertext} document format used on the {World-Wide Web}. HTML is built on top of {SGML}. "Tags" are embedded in the text. A tag consists of a "<", a "directive" (case insensitive), zero or more parameters and a ">". Matched pairs of directives, like "" and "" are used to delimit text which is to appear in a special place or style. Links to other documents are in the form foo where "A" and "/A" delimit an "anchor", "HREF" introduces a hypertext reference, which is most often a {Uniform Resource Locator} (URL) (the string in double quotes in the example above). The link will be represented in the browser by the text "foo" (typically shown underlined and in a different colour). A certain place within an HTML document can be marked with a named anchor, e.g.: The "fragment identifier", "baz", can be used in an HREF by appending "#baz" to the document name. Other common tags include

for a new paragraph, .. for bold text,