Free On-line Dictionary of Computing FOLDOC is a searchable dictionary of acronyms, jargon, programming languages, tools, architecture, operating systems, networking, theory, conventions, standards, mathematics, telecoms, electronics, institutions, companies, projects, products, history, in fact anything to do with computing. Copyright 1985 by Denis Howe Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, Front- or Back-Cover Texts. A copy of the license is included in the section entitled "{GNU Free Documentation License}". Please refer to the dictionary as "The Free On-line Dictionary of Computing, http://foldoc.org/, Editor Denis Howe" or similar. Please make the URL both text (for humans) and a hyperlink (for Google). You can search the latest version of the dictionary at URL http://foldoc.org/. 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}. See {Pronunciation} for how to interpret the pronunciation given for some entries. 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. {More about FOLDOC (about.html)}. (2018-05-22) Acknowledgements Many thanks to the thousands of {contributors (contributors.html)} and especially to the Guest Editors, 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://people.ku.edu/~nkinners/LangList/Extras/langlist.htm)} 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}. (2014-09-11) Missing definition First, this is an (English language) __computing__ dictionary. It includes lots of terms from related fields such as mathematics and electronics, but if you're looking for (or want to submit) words from other subjects or general English words or other languages, try {(http://wikipedia.org/)}, {(http://onelook.com/)}, {(http://yourdictionary.com/)}, {(http://www.dictionarist.com/)} or {(http://reference.allrefer.com/)}. If you've already searched the dictionary for a computing term and it's not here then please __don't tell me__. There are, and always will be, a great many missing terms, no dictionary is ever complete. I use my limited time to process the corrections and definitions people have submitted and to add the {most frequently requested missing terms (missing.html)}. Try one of the sources mentioned above or {(http://techweb.com/encyclopedia/)}, {(http://whatis.techtarget.com/)} or {(http://google.com/)}. See {the Help page (help.html)} for more about missing definitions and bad cross-references. (2014-09-20) ! {exclamation mark} !!!Batch A daft way of obfuscating text strings by encoding each character as a different number of {exclamation marks} surrounded by {question marks}, e.g. "d" is encoded as "?!!!!?". The language is named after the {MSDOS} {batch file} in which the first converter was written. {esoteric programming languages} {wiki entry (http://esolangs.org/wiki/!!!Batch)}. (2014-10-25) " {double quote} # {hash} $ {dollar} $1 The first {positional parameter} in {shell} programming and related languages. Occurrences of $1 are replaced by the first {actual argument} provided by the user when the {shell script} is run. $2 is replaced by the second argument, and so on up to $9. You may have arrived at this entry by following a {URL} like "http://foldoc.org?$1", which is actually a {template} used to generate pointers to FOLDOC definitions by replacing "$1" with the term to be defined, e.g. in a {wiki} {interwiki map}. (2006-09-10) $tonePits A concept for an {esoteric programming language} based on {Manqala (http://mancala.wikia.com/wiki/Main_Page)}, a family of games in which two players take turns to transfer stones between pits. Programming in "$tonePits" involves specifying a start configuration of a Mancala game (a {vector} of non-negative integers) and a rule for how one configuration changes to the next. $tonePits could be implemented using a beach for example. {esoteric programming languages} {wiki entry (http://esolangs.org/wiki/$tonePits)}. (2014-11-04) % {percent} & {ampersand} $ {dollar} ' {single quote} 'Snooze {Fidonews} ( {left parenthesis} (()) (Or "Empty Nest") An {esoteric programming language} based on string re-writing, whose {syntax} consists entirely of nested, matching {left (left parenthesis)} and {right parentheses (right parenthesis)}. {Esoteric programming languages wiki entry (http://esolangs.org/wiki/(()))} (2015-02-09) () An {esoteric programming language} descended from {Iota} whose programs consist entirely of the characters "(" and ")". {Esoteric programming languages wiki entry (https://esolangs.org/wiki/())} (2021-11-02) (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}] (2004-08-20) (TM) (Trademark) An {ASCII} rendition of the trademark superscript symbol, appended to phrases that the author feels should be recorded for posterity. It is often used ironically as a form of protest against {software patents}, {algorithm} patents and "{look and feel}" lawsuits. [{Jargon File}] (2014-11-27) ) {right parenthesis} * {asterisk} *brainfuck ("pointed brainfuck") A variant of the {Brainfuck} {esoteric programming language} in which each instruction has an {operand} that is the number before it in memory. Numbers refer to memory in a bizarre way. 0 refers to cell zero, 1 refers to the cell whose number is in cell zero and so on, so the number N refers to the result of {dereferencing} cell zero N times. The "*" in the name is a reference to the {* (asterisk)} operator in the {C} language that dereferences a {pointer}. {Esoteric programming languages wiki entry (https://esolangs.org/wiki/*brainfuck)} (2022-08-28) *LISP (StarLISP) A {data-parallel} extension of {Common LISP} developed by Cliff Lasser and Steve Omohundro, employees of the {Thinking Machines Corporation} to provide an efficient yet high-level language to program the {Connection Machine}. StarLisp operated on PVARS (Parallel Variables) which represented Connection Machine memory, and were essentially vectors: one element per CM processor (or virtual processor). [Cliff Lasser, Jeff Mincy, J.P. Massar, Thinking Machines Corporation "The Essential *LISP Manual", TM Corp 1986]. [{Jargon File}] (2014-12-17) *MOD ("StarMOD") A {concurrent} language combining the {modules} of {Modula} and the communications of {Distributed Processes}. ["*MOD - A Language for Distributed Programming", R.P. Cook, IEEE Trans Soft Eng SE-6(6):563-571 (Nov 1980)]. [{Jargon File}] (1994-10-21) *w An {esoteric programming language} with almost but not quite readable syntax and strange data types. *W is not based on W because W doesn't exist. {Esoteric programming languages wiki entry (http://esolangs.org/wiki/*W)}. {Specification (https://github.com/catseye/Specs-on-Spec/blob/master/star-w/star-w.markdown)}. + {plus} ++ {increment operator} , {comma} - {dash} -- {increment operator} --C-=C-C-- An {esoteric programming language} that is a stripped-down version of {C--}. --C-=C-C-- is not {object originated}, its only {type} is {void}, its only operators are addition, subtraction, {&&} and {||} and its only conditions are var == 0 or var != 0. It supports input with getchar() and output with putchar(). {esoteric programming languages} {wiki entry (https://esolangs.org/wiki/--C-%3DC-C--)} (2023-01-19) -oid (from "android") A suffix used as in mainstream English to indicate a poor imitation, a counterfeit, or some otherwise slightly bogus resemblance. Hackers will happily use it with all sorts of non-Greco/Latin stem words that wouldn't keep company with it in mainstream English. For example, "He's a nerdoid" means that he superficially resembles a {nerd} but can't make the grade; a "modemoid" might be a 300-baud {modem} (Real Modems run at 144000 or up); a "computeroid" might be any {bitty box}. "-oid" can also mean "resembling an android", which was once confined to science-fiction fans and hackers. It too has recently (in 1991) started to go mainstream (most notably in the term "trendoid" for victims of terminal hipness). This is probably traceable to the popularisation of the term {droid} in "Star Wars" and its sequels. Coinages in both forms have been common in science fiction for at least fifty years, and hackers (who are often SF fans) have probably been making "-oid" jargon for almost that long (though {GLS} and {ESR} can personally confirm only that they were already common in the mid-1970s). [{Jargon File}] (1999-07-10) -ware A suffix used to form terms for classes of software. For example, {careware}, {crippleware}, {crudware}, {freeware}, {fritterware}, {guiltware}, {liveware}, {meatware}, {nagware}, {payware}, {psychedelicware}, {shareware}, {shelfware}, {vaporware}, {wetware}. [{Jargon File}] (2015-01-17) .) An {emoticon} for an {emo} smiling (an emo's hair typically hides one eye). (2018-09-07) .box An {esoteric programming language} created by {macrohauler (https://esolangs.org/wiki/User:Macrohauler)} and E. Grouse in 2009. A program consists of a sequence of lines, each containing zero or more full stops. Odd and even numbered lines have different meaning and consecutive lines are grouped into "structures" with meanings like {assigning (assignment)} a value to a {variable}. {Esoteric programming languages wiki entry (http://esolangs.org/wiki/.box)}. (2023-07-29) .com {com} .cshrc (C Shell run commands) A {C Shell} startup configuration file. This file is found in a user's {home directory} and can contain shell and other commands to set variables, define aliases, and perform any other initialisation which should happen for every shell (as opposed to {.login} which is only run for a {login shell}). Compare {AUTOEXEC.BAT} on {MS-DOS}. See also {rc}. (1996-04-09) .env A file containing environment variable settings like DB_HOST=localhost DB_USER=root DB_PASS=s1mpl3 suitable for loading with the {npm} package {dotenv}. (2021-03-05) .Gertrude An {esoteric programming language} created by Gerson Kurz in 2001. Programs are poems by Gertrude Stein (or any other text consisting of one or more sentences). For each sentence, the average word length is calculated. The number of words longer than the average divided by the number of words shorter than the average is expressed as a fraction. Certain fractions denote {instructions} and {operands}. {Esoteric programming languages wiki entry (https://esolangs.org/wiki/.Gertrude)}. {Home (http://www.p-nand-q.com/programming/languages/gplz/gertrude.html)}. (2023-04-15) .git/config The {repository}-{relative path} of the file that stores {Git}'s per-{repository} configuration. .git/config stores things like the {URL} of the remote {repository} from which the local one was cloned. The command git config --list --show-origin lists the contents of this file and the other Git configuration files. These files are in {.ini file} format. {Documentation (https://git-scm.com/docs/git-config)} (2023-01-18) .login A file executed by a {Unix} {shell} when the user first logs in. .login is like {.cshrc} but is only run for a {login shell} whereas .cshrc is executed by every new shell, including sub-shells, e.g. a shell started from some other program. .login was first introduced with {C Shell} but has been adopted by most other shells since, though in some cases it is called ".profile". (2015-03-01) .mailrc (mail {run commands}) The configuration file for the standard {Unix} {mail} program. This file is found in a user's {home directory} and can contain special commands to set options and define mail aliases. (2014-11-19) .mOdMoDwOrM An {esoteric programming language}, inspired by {Conway}'s {FRACTRAN}, in which a "worm" (a {program counter} plus {state}) moves through a "world" (program) undergoing modifications according to the instruction at the current location. Many instructions return the worm to its original location (its "home"). Alternatively, it can go through a "wormhole" (jump to a labelled location). {Esoteric programming languages wiki entry (http://esolangs.org/wiki/.mOdMoDwOrM)} (2023-09-24) .NET {.NET framework} .NET framework A software development and execution environment designed by {Microsoft} as a direct competitor to {Java}. .NET framework should not be confused with {Microsoft}'s past labeling of a line of products as ".NET". .NET simplifies interoperability between languages and machines on {Microsoft Windows} especially, although not specifically, for web based services. Essentially the .NET framework consists of the CLR (common language runtime), CTS (common type system), CLS (common language system), and IL (intermediate language). The CLR consists of a number of resources provided to .NET applications such as the security model, type system and .NET classes (c.f. Java classes). The CTS is the range of all types that .NET understands although it is not necessarily the case that a .NET program will understand all of these types. The CLS however is a subset of the CTS which all .NET languages must support: any two .NET languages can interoperate via. the CLS. All .NET languages are at some stage compiled into the IL, a {byte-code} like language. However unlike a standard Java run time environment, the IL is converted to {machine code} either upon installation of the software or at {run time} by a {just in time compiler} (JIT). The IL is not interpretted. .NET's main weakness is that Microsoft have ignored the {Unix} and {mainframe} environments, effectively ruling .NET out of use in many {enterprise} environments. However there is {Mono} - an {open source} .NET framework for Unix}. .NET was based on research by Steven Lucco on a product called {OmniVM}, sold by {Colusa software}. Attracted to OmniVM since VB and C/C++ environments were already available, Microsoft bought Colusa in 1996. Microsoft provides .NET compilers for {C#}, {C++}, {VB}, and {Jscript}. (2003-09-24) .newsrc (news run commands) The configuration file for the {Unix} {rn} {news reader}. See also {rc}. (1996-04-09) .plan {plan file} .twmrc (Tab Window Manager run commands) The configuration file for {twm}. See also {rc}. (1996-04-09) / {oblique stroke} /actuator/health The default {URL} on which a {Spring Boot} {Java} {web application} returns "health information" about the status of its various subsystems. Making health information available over {HTTP} allows remote systems to monitor the application and raise alerts if it is failing. {Spring Boot Health Information (https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.endpoints.health)}. (2022-01-08) /client/get_targets The URL path used by the {DDosia} application to fetch a list of DDoS targets. (2023-07-16) /dev/null The {Unix} software {device} that discards any data written to it and supplies zero bytes of data when read. /dev/null is occasionally useful in situations where a file is required but no relevant file exists. For example, if a program produced lots of output for {debugging} purposes but that output was not required when the program was deployed in a production environment and writing it to a file would waste disk space then the output could be written to /dev/null. The term is used for a notional "black hole" in any information space. For example, a message, might end, "Kudos to rasputin@kremlin.org, flames to /dev/null". See {bit bucket}. [{Jargon File}] (2015-01-28) 0 {zero} 0/1 knapsack problem The {knapsack problem} restricted so that the number of each item is zero or one. (1995-03-13) 1 {one} 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 standardised 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 An {Ethernet} network cabling specification operating at ten {Mbps}, "baseband" (as opposed to {radio frequency}), and with a maximum single cable length of 500 metres. This is normally carried on {RG8} cable. Compare {10base2}, {10baseT}. (2002-06-17) 10baseT 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} 16000 {National Semiconductor 16000} 16450 A {UART} with a one-byte {FIFO} buffer. The 16450 is a higher speed, fixed version of the {8250}. It was superseded by the {16550}. The 16450 was used for the {IBM PC AT} and {PS/2} but will not work in a {IBM PC XT}. (2004-03-21) 16550 A version of the {16450} {UART} with a 16-byte {FIFO}. Superseded by the 16550A. This chip might not operate correctly with all software. The 16C550 is a {CMOS} version. (2004-03-24) 16550A A version of the {16550} {UART}. Superseded by the {16650}. (2003-07-05) 16650 A version of the {16550A} {UART} with a 32-byte {FIFO}. Superseded by the {16750C}. (2003-07-05) 16750C A {UART} with a 64-byte {FIFO}. The 16C750 is a {CMOS} version. [Is there a 16750 (with no "C" on the end)?] (2004-03-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) 16C550 {16550} 16C750 {16750C} 16C850 A version of the {16450} {UART} in {CMOS} with 128-{byte} {FIFO}. (2004-03-24) 1802 An 8-bit {microprocessor} 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 rate}; 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) 192.168.1.1 The default {IP address} used to connect to many brands of {router} to set them up. It can be used from a {web browser} in the {URL} {(http://192.168.1.1)}. This URL, and the necessary default login details, are often printed on the router. The same address may also be accessible via a {telnet} {command line interface}. This is a {private address} that is only visible when connected directly to the router, i.e. it will not be routed by other network hardware. {i19216811.com (http://www.i19216811.com/)}. (2012-09-20) 1NF {database normalisation} 1TBS {indent style} 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 {Basic Rate Interface} 2B1Q {two-binary, one-quaternary} 2B+D {Basic Rate Interface} 2NF {database normalisation} 2.PAK An {artificial intelligence} language with {coroutines}. ["The 2.PAK Language: Goals and Description", L.F. Melli, Proc IJCAI 1975]. (1995-01-25) 32000 {National Semiconductor 32000} 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 systems} 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 (Or "jolix /joh'liks/) A {free software} {port} originally derived from the generally available parts of the "{Berkeley Net Release/2}" to the {Intel} {i386} architecture by William Jolitz and friends. The name Jolix is used to differentiate it from {BSDI}'s port based on the same source tape, which is called {BSD/386}. Many new and innovative features were added to 386BSD following 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}, {NetBSD} and {OpenBSD}. {FAQ (http://cis.ohio-state.edu/hypertext/faq/usenet/386bsd-faq/part1/faq.html)}. [{Jargon File}] (2006-06-08) 386SPART.PAR A {system file} created by {Windows 3.1} for use as a {virtual memory} {swap file}. 386SPART.PAR was normally stored in the {root directory} and marked as a {hidden file} to avoid accidental erasure. Its size depended on how much virtual memory was configured. {Windows 95} used a similar file named {WIN386.SWP}. (2016-12-31) 386SX {Intel 80386SX} 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. {(http://3com.com/)}. (1998-04-03) 3DNow! A {floating point} {SIMD} extention from {AMD}. [Extension of what? To do what?] (2001-12-23) 3DNow! Professional A {floating point} {SIMD} extention from {AMD}, compatible with {Intel}'s {SSE}, introduced with the {Athlon}-4. [Relationship to {3DNow!}?] (2001-12-23) 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-CDs}, and will eventually be able to play {Video CDs} with a special add-on {MPEG}1 {full-motion video} cartridge. Up to 8 {controllers} can be {daisy-chain}ed on the system at once. A keyboard, mouse, light gun, and other peripherals may also some day be hooked into the system, although they are not currently available (December 1993). The 3DO can display {full-motion video}, fully {texture map}ped 3d landscapes, all in 24-bit colour. {Sanyo} and {AT&T} will also release 3DO systems. Sanyo's in mid 1994 and AT&T in late 1994. There will be a 3DO add-on cartridge based on the {PowerPC} to enable the 3DO to compete with {Sony}'s {Playstation} console and {Sega}'s {Saturn} console, both of which have a higher specification than the original 3DO. The add-on is commonly known as the M2 or Bulldog. It should hit the shops by Christmas 1995 and will (allegedly) do a million flat shaded polygons per second. {3DO Home (http://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 {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 Software Distribution} 431A The type of plug which fits a standard "type 600" {British Telecom} telephone socket. (1995-01-25) 4.3BSD {Berkeley Software Distribution} 4510 A {65CE02} with two {6526} IO controllers. 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} 486DX {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. 5ESS {Number 5 Electronic Switching System} 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 functions}, {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 with an {ALU}, {registers} and {data bus} which handle 64 {bit}s at a time. 64-bit processors were quite common by 1996, e.g. {Digital} {Alpha}, versions of {Sun} {SPARC}, {MIPS}, {IBM} {AS/4000}. The {PowerPC} and {Intel} were expected to move to 64 bits at their next generation - {PPC 620} and {Intel P7}. Being able to deal with 64-bit binary numbers means the processor can work with {signed integers} between +-2^32 or unsigned integers between zero and 2^64-1. A 64-bit {address bus} allows the processor to address 18 million {gigabytes} as opposed to the mere four gigabytes allowed with 32 bits. In 1996 {hard disks} could already hold over 4 GB. Floating point calculations can also be more accurate. A 64-bit {OS} is needed as well to take advantage of the CPU. In 1996 there were 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. (2004-05-12) 6501 An eight-bit {microprocessor}, the first sold by {MOS Technology}. The 6501 pin-compatible with the {Motorola 6800} and was the first member of the 650x series. It had an on-chip clock oscillator. See also {6502}. (2001-02-26) 6502 An eight-bit {microprocessor} designed by {MOS Technology} 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 optimise 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 {microprocessors} from {MOS Technologies}, based on the design of the {Motorola 6800} (introduced around 1975). The family included the {6502} used in several early {personal computers}. 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) 6526 {MOS Technology 6526} 65816 An expanded version of the {6502}, with which it is compatible. It has 16-bit {index registers} 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} 6to4 A {protocol} for transitioning from {IPv4} to {IPv6}. Networks may use 6to4 (or other transitioning protocols) until they support native {dual-stack}. Because 6to4 is a form of {tunnelling}, it requires {encapsulation} by a {protocol converter}. This can cause performance problems due to increased {latency} and decreased {MTU} sizes, as described in {RFC 6343 (http://tools.ietf.org/html/rfc6343)}. {RFC 3056 (http://tools.ietf.org/html/rfc3056)}. (2012-12-24) 6x86 {Cyrix 6x86} 754 {IEEE Floating Point Standard} 80186 {Intel 80186} 80188 {Intel 80188} 80/20 rule {eighty-twenty rule} 802.1 {IEEE 802.1} 802.11a A radio-based {LAN} {protocol} which speaks {OFDM} at 5GHz, one of the two {wi-fi} protocols. (2003-09-02) 802.11b An {IEEE} {wireless} {local area networks} (WLAN) {standard} {protocol} which speaks {DSSS} at 2.4GHz. 802.11b is one of the two {wi-fi} protocols. It operates at 11 megabits per second (Mbps) compared with {802.11g} which operates at 54 Mbps. (2004-01-11) 802.11g An {IEEE} {wireless} {local area network} (WLAN) {standard} {protocol}, expected to be approved in June 2003. 802.11g offers wireless transmission over relatively short distances at up to 54 megabits per second (Mbps). 802.11g operates in the 2.4 GHz range and is thus compatible with {802.11b} (11 Mbps Wi-Fi). (2004-01-11) 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} 8250 A {UART} that can operate at a maximum of 9600 {baud}. The 8250 is used in {IBM PC XT} computers. It works in an {IBM PC AT} under {DOS} but generates unwanted {interrupts} when used at 9600 {baud}. The {IBM PC} {BIOS} has a bug fix for this chip. (2004-03-21) 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) 8450 A {serial IO chip} with a one-{byte} {FIFO}. The 8450 was introduced with the {Intel 8080}. (2004-03-21) 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 superseded 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 lines}, 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} < {less than} grin. An alternative to {smiley}. [{Jargon File}] (1998-01-18) Grinning, running and ducking. See {emoticon}. (1995-03-17) = {equals} > {greater than} ? {question mark} ?? A {Perl} quote-like {operator} used to delimit a {regular expression} (RE) like "?FOO?" that matches FOO at most once. The normal "/FOO/" form of regular expression will match FOO any number of times. The "??" operator will match again after a call to the "reset" operator. The operator is usually referred to as "??" but, taken literally, an empty RE like this (or "//") actually means to re-use the last successfully matched regular expression or, if there was none, empty string (which will always match). {Unix manual page}: perlop(1). (2009-05-28) @ {commercial at} @-party /at'par-tee/ (Or "@-sign party") An antiquated term for a gathering of {hackers} at a science-fiction convention (especially the annual Worldcon) to which only people who had an {electronic mail address} were admitted. The term refers to the {commercial at} symbol, "@", in an e-mail address and dates back to the era when having an e-mail address was a distinguishing characteristic of the select few who worked with computers. Compare {boink}. [{Jargon File}] (2012-11-17) @Begin The {Scribe} equivalent of {\begin}. [{Jargon File}] (2014-11-06) @stake A computer security development group and consultancy dedicated to researching and documenting security flaws that exist in {operating systems}, {network} {protocols}, or software. @stake publishes information about security flaws through advisories, research reports, and tools. They release the information and tools to help system administrators, users, and software and hardware vendors better secure their systems. L0pht merged with @stake in January 2000. {@stake home (http://atstake.com/research/redirect.html)}. (2003-06-12) @XX 1. Part of the syntax of a {decorated name}, as used internally by {Microsoft}'s {Visual C} or {Visual C++} {compilers}. 2. The name of an example {instance variable} in the {Ruby} {programming language}. (2018-08-24) [incr Tcl] An extension of {Tcl} that adds {classes} and {inheritence}. The name is a pun on {C++} - an {object-oriented} extension of {C} - [incr variable] is the Tcl {syntax} for adding one to a variable. [Origin? Availability?] (1998-11-27) \ {backslash} \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) \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) \BV A small, domain-specific {esoteric programming language} for transforming 64-bit integers. A \BV program takes a 64-bit {integer} as its input and returns a 64-bit integer as the result. \BV has the usual {bitwise operators} and the {fold function}: (fold e1 e2 f) which applies {function} f to each of the eight bytes of e1 and the whole of e2. \BV was defined in the task of the 2013 {ICFP programming contest}, in which the objective was to guess a secret \BV program by giving it inputs and receiving its outputs. {esoteric programming languages} {wiki entry (http://esolangs.org/wiki/%5CBV)}. (2014-11-19) \perp {LaTeX} inverted T. Used in {domain theory} to represent {bottom}. (1995-02-03) \sqcap {LaTeX} inverted square U. The symbol for {greatest lower bound}. (1994-12-01) \sqcup {LaTeX} square U. The symbol for {least upper bound}. (1994-12-01) \sqsubseteq {LaTeX} name for a symbol like a capital E without the bottom half of its vertical line. In {domain theory}, x \sqsubseteq y means x is no more defined that y. This expression only has meaning if x and y are {comparable} elements of some {partially ordered set}. (1994-11-24) \subseteq {Latex} for a symbol like a U on its right side with a line under it. For sets x and y, x \subseteq y if all elements of x are also elements of y. (1995-02-03) \t {horizontal tabulation} \uparrow An upward pointing arrow in {LaTeX}. See {closure}. (1995-03-16) \{@} A rare {emoticon} supposed to represent a rose. (2013-06-26) ^ {caret} 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 {abstractions}. 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 {primitives} 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 systems}: {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. {(http://a3d.com/)}. (1999-01-26) A4C {Authentication, Authorization, Accounting, Auditing and Charging} a56 An {assembler} for the {Motorola} {DSP56000} and {DSP56001} {digital signal processors} by Quinn Jensen . Version 1.1 is available from an {alt.sources} archive or {(ftp://wuarchive.wustl.edu/)}. (1992-08-10) AAB8 {Trojan:Win32/Ymacco.AAB8} AAC {Advanced Audio Coding} 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. {Atanasoff-Berry Computer}. 2. 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, {suggestions}, {persistent variables} 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}. {(http://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 languages} 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 {objects}. 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 grinders}. 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) AberMUD The first popular {open source} {MUD}. The first version of AberMUD, named after Aberystwyth, UK, was written in {B} by Alan Cox, Richard Acott, Jim Finnis, and Leon Thrane, at University of Wales, Aberystwyth for an old {Honeywell} {mainframe} and opened in 1987. The gameplay was heavily influenced by {MUD1}, written by Roy Trubshaw and Richard Bartle, which Alan Cox had played at the University of Essex. In late 1988, Alan Cox ported AberMUD to {C} so it could run under {UNIX} on Southampton University's Maths machines. This version was named AberMUD2. Various other versions followed. (2008-11-24) 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 {Augmented 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}. ABR {automatic baud rate detection} abscissa The horizontal or x coordinate on an (x, y) graph; the input of a function against which the output is plotted. The vertical or y coordinate 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 A description of a concept that leaves out some information or details in order to simplify it in some useful way. Abstraction is a powerful technique that is applied in many areas of computing and elsewhere. For example: {abstract class}, {data abstraction}, {abstract interpretation}, {abstract syntax}, {Hardware Abstraction Layer}. (2009-12-09) 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 kind of {data abstraction} where a type's internal form is hidden behind a set of {access functions}. Values of the type are created and inspected only by calls to the access functions. This allows the implementation of the type to be changed without requiring any changes outside the {module} in which it is defined. {Objects} and ADTs are both forms of data abstraction, but objects are not ADTs. Objects use procedural abstraction (methods), not type abstraction. A classic example of an ADT is a {stack} data type for which functions might be provided to create an empty stack, to {push} values onto a stack and to {pop} values from a stack. {Reynolds paper (http://cis.upenn.edu/~gunter/publications/documents/taoop94.html)}. {Cook paper "OOP vs ADTs" (http://wcook.org/papers/OOPvsADT/CookOOPvsADT90.pdf)}. (2003-07-03) 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 {domains} 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 types} and {product types}) 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 functions} (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 {platforms}. 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 form of representation of data that is independent of machine-oriented structures and encodings and also of the physical representation of the data. Abstract syntax is used to give a high-level description of programs being compiled or messages passing over a communications link. A {compiler}'s internal representation of a program will typically be an {abstract syntax tree}. The abstract syntax specifies the tree's structure is specified 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 1988 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}. (2005-07-03) 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 editors} 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]. {(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) AC2