Glossary of Computer Terms and Concepts

Related Internet Resources

See also Free On-line Dictionary of Computing

The New Hacker's Dictionary (The Jargon File)

See also BABEL: A Glossary of Computer Related Abbreviations and Acronyms at http://www.access.digex.net/~ikind/babel.html.

See also the Glossary of Internet Terms at http://www.matisse.net/files/glossary.html and Glossary by the User Glossary Working Group of the IETF at ftp://nic.merit.edu/documents/fyi/fyi_18.txt

See also a glossary of Ada Terms in the Ada reference manual at http://lglwww.epfl.ch/Ada/LRM/9X/rm9x/rm9x-N.html.

See also a glossary of Java Terms at http://java.sun.com/glossary.html.

Glossary

#P
A measure of the complexity of counting (enumerating) objects. Any problem that is #P complete is at least NP hard.
L. G. Valiant. The complexity of enumeration and reliability problems. SIAM J. Comput., 8:410-421, 1979.

10-Base-2
A form of Ethernet cabling commonly known as thinnet. 10 Mbps, base-band, 200-m segment length, coax, chain topology

10-Base-T
A form of Ethernet cabling commonly known as (unshielded) twisted-pair. 10 Mbps, ring topology around a hub.
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z

A

abstract
To conceptualize without reference to specific instances.

A map represents certain geographic features like the distance between features. Other details are regarded as irrelevant like the color of the terrain. The areial photo of Marienplatz in Munich does not make a convenient map of the area because it has too much detail. A subway map is a further level of abstraction as it shows the topographical relationships with repect to the subway lines. Even distance (to scale) is disregarded.

See also: abstract data type (q.v.), encapsulation (q.v.), procedural abstraction, and data abstraction.

abstract data type
A data type whose implementation or representation is made unimportant by a complete set of functions to create, access, and operate on such data. The representation could be changed (updated, improved, etc) without effecting the programs that use the data type. A classic example of an abstract data type is a stack which has operations push and pop.

access specifier

In the object-oriented programming languages C++ and Java, an access specifier modifies a class, a method, or a variable and determines which other parts of the program may access it.

actual argument
The actual expression passed to a subroutine or function. For example, X and Sqrt(2.0*Y) are the actual arguments in the function call Exp(X,Sqrt(2.0*Y)). The names of the arguments used within the subroutine are known as the formal parameters (q.v.).

ACM -- Association of Computing Machinery (q.v.)

ad hoc polymorphism
A kind of polymorphism (q.v.) that is not uniform, universal polymorphism (q.v.), but characterized by a finite collection of choices possibly all unrelated. Subdivided into implicit coercion and overloading. See Cardelli and Wegner.

Ada
is a high-level, general purpose programming language developed after a lengthy competition conducted by the United States Department of Defense. A standard was published in 1983 and the results of a revision of the language ten years later was published as an ANSI (q.v.), ISO, and IEC standard in January 1995. Ada 95 features modules, concurrency, generics, and objects.

Altair 8800
The first personal computer. Edward Roberts, Albuquerque, New Mexico founder of MITS a calculator company; sold company in 1978 and is a medical doctor in his native Georgia. Computer kit. The January 1975 cover of Popular Electronics.

address resolution protocol (ARP)

In order for two hosts to communicate, the logical IP address must resolve to the physical address of the network adapter card. ARP is the protocol that resolves IP addresses to physical addresses. It is defined in RFC 826.

Advanced Network & Services, Inc. (ANS)
A nonprofit corporation formed in September of 1990. With IBM, MCI, Merit, Northern Telecom, and many others, provided the NSFnet backbone (q.v.) connecting the regional networks serving research and education in the United States at a network speed eventually reaching 45 Mbps (T3). In February of 1995, Advanced Network & Services sold substantially all of its assets and operations to America Online, Inc.

ALGOL

ALGOL-like
The ALGOL (q.v.) programming language is arguably the most influential programming language even though it never has been widely used. Most languages are ALGOL-like, this means they are Later languages like Pascal, C, Ada (q.v.), etc. all drew heavily on the work of the ALGOL designers.

algorithm
From The Turing Omnibus by Dewdney

A program specifies in the exact syntax of some programming language the computation one expects a computer to perform. The syntax is precise and unforgiving. The slightest error in the program as written may cause the computation to be in error or may halt it altogether. The reason for this situation seems paradoxical on the surface: It is relatively easy to design a system that converts rigid syntax to computations; it is much harder to design a system that tolerates mistakes or accepts a broader range of program descriptions.

An algorithm may specify essentially the same computation as a specific program written in a specific language such as BASIC, Pascal, or C. Yet, the purpose of an algorithm is to communicate a computation not to computers but to humans. This is a more natural state of affairs than most people suppose. Our lives (whether we work with computers or not) are full of algorithms. A recipe, for example, is an algorithm for preparing food (assuming, for the moment, that we think of cooking as a form of computation).

American National Standards Institute (ANSI).
A private, not-for-profit membership organization that coordinates the establishment of standards in the United States. Founded in 1918 and is the sole US member of ISO.

analysis of algorithms
The amount of resources (time or space) used by an algorithm can be described as a function of the size of the input n. It is useful to group these functions into classes of functions described by "big-Oh" notation. The most important classes are listed below:

constantO(1)
logarithmicO(log n)
linearO(n)
polynomialO(nk) k>0
exponentialO(kn) k>1

anonymous FTP
Transferring files by FTP requires that the user have accounts (with passwords) on two computers--the computer where the files reside and the computer where the files are to be transfered to. But if a computer has a widely known account, say "anonymous," with a widely known password, say "guest," then anybody could use that computer account to transfer files. This is anonymous FTP. This is commonly done to give public access to certain popular files. The "anonymous" account should have restricted capabilities to prevent mischief by the public. Usually only a few files are accessible and then only to copy (not to change or delete).

ANS -- Advanced Network & Services, Inc. (q.v.)

API -- application program interface

applet

A Java program that runs inside a WWW Browser. These programs are attached to a larger document and hence the term applet for a small application program.

arithmetic/logic unit (ALU).
The component of the central processing unit (q.v.) that performs arithmetic (addition, subtraction, multiplication, and division) and logical operations (like comparing numbers).

ARP -- address resolution protocol (q.v.)
ARPA -- Advanced Research Projects Agency

Association of Computing Machinery (ACM)

An international organization of computing professionals dedicated to promoting information technology through education, publications, conferences, etc. The ACM was founded 1947 and is headquartered in New York City.

ASCII Character Set
The currently common 7-bit character set in the United States. It is defined by the ANSI X3.4-1968 standard, also ISO/IEC 646:1991, Information technology--ISO 7-bit coded character set for information interchange. The 8-bit Latin-1 character set (q.v.) is becoming more prevalent. ASCII stands for American Standard Code for Information Interchange.

assembly code

Assembly code is a programming language that is a mnemonic version of machine code with symbolic names for memory addresses. Assembly code can be written directly by programmers or it can be procedure by other programs, for example, compilers (q.v.). An assembler translates the assembly code to machine code often allowing additional constructs in the input, like macros.

Atanasoff, John Vincent (1903-1995)
Computer pioneer

ATM -- asynchronous transfer mode

AWT -- abstract (or advanced or another) window toolkit
A Java library for developing platform-independent GUI. Of course, this has already been done with the X Window System (q.v.)
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z

B

Babbage, Charles (1791-1871)
Babbage graduated from Cambridge in 1814. In 1827 he became Lucasian Professor of Mathematics at Cambridge, the position held by Isaac Netwon (1642-1727). Babbage was interested in mechanical calculation to avoid mistakes that people inevitably make. He received funding from the English government for a mechanical device for calculation called the Difference Engine. The design was never completed and eventually the grant was withdrawn in 1842. However pieces of the Difference Engine were built at the time. Babbage illustrated what the Difference Engine was capable of doing by calculating the value of n2+n+41.

In midst of problems in the project to build the Difference Engine, Babbage tried in 1834 to build a new machine--the Analytical Engine--capable of any mathematical operation. But the English government was skeptical and the device was never built.

Charles Babbage, Pioneer of the Computer by Anthony Hyman, Oxford University Press, 1982.

Irascible Genius by Moseley Maboth, Hutchinson & Co., London, 1964.

backgammon
In 1979 the computer program BKG 9.8 defeated the world champion backgammon player Luigi Villa of Italy. BKG 9.8 was the work of Hans Berliner.
Backus, John Warner
Turing award (q.v.) recipient in 1977.

base64

uuencode uses the space character making the spaces significant. Some mail software deletes trailing spaces.

big-endian
From Jonathan Swift, Gulliver's Travels, Chapter IV. Lilliputians liked to break their eggs on the small end and the Brobdignagians on the big end. Most significant byte first (lowest byte address), or network order. Big-endian processors include Sun SPARC, Motorola 68000, and the IBM Power-PC. Little-endian processors include Intel, DEC alpha, and MIPS. Four byte words UNIX and NUXI.

0x2D567B4F in big-endian
addr+34F
addr+27B
addr+156
addr+02D
0x2D567B4F in little-endian
addr+356
addr+22D
addr+17B
addr+04F

big "Oh" notation
see big "O" (q.v.) notation

binary operator
symbolPascal, SMLModula-3AdaC, C++, Java
<<<<<
le <=<=<=<=
>>>>>
ge >=>=>=>=
======
ne <>#/=!=
+++++
-----
×****
divdivdiv//
modmodmodmod%
binary representation
010110102 = 26 + 24 + 23 + 21 = 64+16+8+2=90

bit
The word "bit" is short for "binary digit".

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". [From the FOLDC.]

bitmap

A data file or structure in which each black or white pixel (q.v.) of the image is represented by a bit, just as the video memory of some display devices. A color image could be represented by encoding each color using several bits.

bitmap display

A computer output device where each pixel (q.v.) that is displayed corresponds directly to one or more bits in the computer's video memory. Early output devices were capable of displaying only one of a few characters in each rectangular region of the display. Most modern personal computers and workstations have bitmap displays, enabling the display of lines, circles, special effects like shading, and multiple character sets.

BBN Corporation

BBN Planet
On January 23, 1996 BBN Corporation (c.f.) announced that it will reorganize into two principal business units, BBN Planet and BBN Systems and Technologies. BBN Planet will include BBN's Internet access network operations and the America Online (AOL) network management contract and related dial-up capabilities, will handle the company's Internet offerings to business customers, including:
  1. High-speed, dedicated and dial-up Internet access;
  2. Internet application consulting and systems integration;
  3. World Wide Web site development and hosting services; and,
  4. Network management and outsourcing services.
Paul R. Gudonis was named president and general manager of BBN Planet. BBN Plant is headquartered in Cambridge, Massachusetts.

Berkeley Internet Name Domain (BIND)
An implementation of an Internet domain name server. The tar file for BIND is freely available.

Tim Berners-Lee
Conceived the WWW (q.v.) in 1989. Awarded the ACM Software System Award in 1996 along with Robert Cailliau for their work on the World-Wide Web and Marc Andreesen and Eric Bina for the WWW browser Mosaic.

binary operator.
An operator (or function) that requires two operands, as opposed to a unary operator which requires one operand.

BinHex -- binary-to-hexadecimal
a popular Macintosh file format used to incode binary files as ASCII text files. This permits binary files to be send using e-mail. binhex files often end in the extension .hqx.

BITNET -- Because It's Time NETwork
A network developed at City University of New York for IBM computers using a store-and-forward protocol, based on IBM Network Job Entry protocols. Used to connect a large number of educational sites with e-mail and file transfer services. Listservs originated on BITNET. BITNET-II encapsulates the BITNET protocol within IP packets and depends on the Internet to route them.

block
A block is a unit of executable statements comprising the scope of a set of local declarations. Procedures are blocks. Many languages have constructs for nonprocedural blocks (q.v.).

BNF -- Backus-Nauer form (or Backus normal form)
A means for describing the syntax (q.v.) of programming languages. BNF was developed in the 1960s by the ALGOL committee, in particular, John Backus (q.v.) and Peter Nauer, to describe the ALGOL programming language. It is equivalent in descriptive power to context free grammars developed independently by Noam Chomsky to describe natural languages.

For example,

      <expression> ::= <identifier>
                    |  <number>
                    |  <expression> + <expression>
      
This defines an expression to be either an identifier or a number or an expression followed by a plus sign followed by an expression. Thus, the following are expresssions:
      x    2   x+2  x+y+3
      
and these are not (by this particular BNF definition):
      x,y   2x   x-y+3  )x#2
      

BNF definitions define a set of strings in a formal language (q.v.). These sets (called syntactic categories (q.v.)) may be simultaneously defined with several clauses of the form

right hand side ::= left hand side
where the right hand side is the syntactic category being defined and the left hand side is a sequence of syntactic categories and terminal symbols.

The meta-language (q.v.) of BNF includes the symbol "::=" to mean "is defined to be" and the symbol "|" to mean "or". Often the BNF meta-language is extended to include the notation "[ ]" to mean "optional" and "{ }" to mean "zero, one, or more times".

Boole, George (1815-1864)
Viewed logic as an algebra.

boolean expression.
An expression which denotes either true or false. For example, x>=0 and (not b).

BOOTP--Boot protocol
A protocol for booting diskless workstations (c.f.) using UDP of IP to get the IP address and a copy of the boot image. Proposed in 1985 by Bill Croft of Stanford and John Gilmore of Sun Microsystems, cf. RFC 1533. The standard UNIX BOOTP server is freely available.

browser
Either a class browser for examining the classes in a object-oriented program or a WWW browser for retrieving documents on the World-Wide Web

Bryon, Augusta Ada, Countess of Lovelace (1815-1852)
The programming language Ada (q.v.) is named after Augusta Ada Bryon, the daughter of the famous English poet Lord Bryon because she wrote a program for an early computing device designed by Charles Babbage (1791-1871) (q.v.)

bug

an error in a computer program. From the Jargon File, version 4.0.0, July 25, 1996:

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!

Or perhaps not a joke. Historians of the field inform us that the term "bug" was regularly used in the early days of telegraphy to refer to a variety of semi-automatic telegraphy keyers that would send a string of dots if you held them down. In fact, the Vibroplex keyers (which were among the most common of this type) even had a graphic of a beetle on them! While the ability to send repeated dots automatically was very useful for professional morse code operators, these were also significantly trickier to use than the older manual keyers, and it could take some practice to ensure one didn't introduce extraneous dots into the code by holding the key down a fraction too long. In the hands of an inexperienced operator, a Vibroplex "bug" on the line could mean that a lot of garbled Morse would soon be coming your way.

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.
BURKS
byte
A computer system groups every individual bit of data in larger, more convenient units like a byte, usually 8 bits, and a word, usually 32 bits. Eight bits provides the representation of upto 256 distinct things, and so is a convenient size for representing the characters of a character set (q.v.).

byte-code
Low-level instructions, not for a particular hardware machine, but for an abstract machine that can be realized by a simple software interpreter that executes the instructions one after another, called the byte-code interpreter. Typically the number of instructions is small, perhaps under 2**8, and so the representation of each instruction can fit in a byte, hence the term byte-code. Byte-code is used as the target in the translation of a high-level language and not developed directly by the programmer. It differs from intermediate code in that the intermediate code used by a compiler is not expected to be considered useful by anything other the compiler.

A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z

C

call graph
A directed graph (possibly containing cycles) with nodes for every procedure in a program. An edge is drawn from node P to node Q if procedure P may call Q.

Cambridge Polish notation

Term used in the LISP 1.5 Programmer's Manual, 1965, page 46, to describe the representation of propositional formulas as S-expressions, ie., (operator operand operand), for Wang's algorithm for tautology checking. Presumably in reference to Lukasiewicz' parentheses free notation for logic.

car
pronounced "kar" "contents of the address register" Name of the Lisp function to select the first of two components from a dotted pair. Along with the function cdr q.v. and cons provides the foundation for implementing lists.

Carroll, Lewis
Pen name of Charles Lutwidge Dodgson (1832-1898) (q.v.)

cdr
pronounced "kudder" Name of the Lisp function to select the second of two components from a dotted pair.

Vinton G. Cerf
As a graduate student worked in Kleinrock's lab. Sketched first ideas for TCP/IP on the back of an envelope at a conference in San Franscico in 1973 while on the faculty at Stanford. Once livened up a meeting by removing his jacket, vest and shirt to reveal a T-shirt with "IP on Everything" on it. Went to work for the the Defense Advanced Research Projects Agency from 1976 to 1982. Since 1994 senior vice president of data architecture for MCI's Data Services Division. A past president of the Internet Society.

CERT -- Computer Emergency Reponse Team

Formed by DARPA after the Morris worm incident in 1988. Located at the SEI of CMU.

CCITT -- Comite Consultatif International de Telegraphique et Telphonique

      V.1-V.7     General
      V.10-V.34   Interfaces and voice-band modems
      V.35-V.37   Wideband modems
      V.40-V.42   Error control
      V.50-V.57   Transmission quality and maintenance
      V.100-V.230 Interworking with other networks
      
For example, v.32bis is a stardard for modems running at 14400 bps, with automatic fallback to 12000, 9600, 7200 and 4800. The "bis" indicates a second version of the standard.

Now called ITU.

CII
A company that became a part of Groupe Bull. In 1933 Compagnie des Machine Bull (CMB) was founded in Paris by the Norwegian engineer Fredrik Rosing Bull who invented an adding/sorting machine in 1921 in Oslo.

central processing unit (CPU)

The part of the computer that executes the instructions stored in memory; consists of the arithmetic/logic unit (q.v.) that performs operations, and the control unit that decodes the instructions and picks the next step.

CERN
The European Particle Physics Laboratory located near Geneva, Switzerland is a research facility run jointly by 19 European countries. The World Wide Web was invented at CERN in 1989. The acronym CERN comes from the earlier French name for the organization Conseil Europeen pour la Recherche Nucleaire.

CGI--Common Gateway Interface
The interface between httpd servers and server-side gateways to other database systems, information, etc.

character set
a standard representation or encoding in binary of symbols for characters. For example, the ASCII character set and the Latin-1 character set

CIX--Commerical Internet eXchange Association
A non-profit, trade association of Public Data Internetwork service providers promoting and encouraging development of the public data communications internetworking services industry.

Church, Alonzo (1903-1995)
A professor of mathematical logic at Princeton and UCLA.

Church's Thesis
Since all known models of computability (Turing machines, Post systems, lambda expressions, grammars, partial recursive functions, loop languages, universal register machines, etc) are equivalent, it is reasonable to suppose that each of these formalisms satisfactorily captures the informal notion of algorithmically computable. And, no new model of computability will be conceived that will be computationally more powerful than the ones now known.

Common Desktop Environment -- CDE

Compagnie Internationale pour l'Informatique Honeywell-Bull -- CII Honeywell-Bull
The large French company CII reoganized and merged with Honeywell-Bull to form a new company on 1 July 1979. The US company Honeywell Information Systems (HIS) owned 47 percent. The CEO of Honeywell-Bull Jean-Pierre Brulé became the new head. In 1981 he was forced out and replaced by Maxim Bonnet. On 2 May 1979 the United States Department of Defense seleceted CII Honeywell-Bull to develop a programming language (Ada programming language (q.v.)).

compilation unit
In the Ada programming language (q.v.), the parts of the language that can be submitted by themselves to an Ada compiler are called compilation units. An Ada program is a collection of compilation units, these units may have been compiled at separate times. Presumably, one of the compilation units contains a main program. A particular Ada compiler may require the library unit names to be the same names as the file names.

complexity
Complexity has and will maintain a strong fascination for many people. It is true that we live in a complex world and strive to solve inherently complex problems, which often do require complex mechansims. However, this should not diminish our desire for elegant solutions, which convince by their clarity and effectiveness. Simple, elegant solutions are more effective, but they are harder to find than complex onces, and they require more time, whcih we often believe to be unaffordable.
Niklaus Wirth, Turing Award lecture, 1984.

Complexity results from misdirected effort as well as lack of effort.

There are two way of constructing a software design: One way is to make it so simple that there are obviously no deficiencies; and the other way is to make it so complicated that there are no obvious deficiencies.
Charles Anthony Richard Hoare

You know that I write slowly. This is chiefly because I am never satisfied until I have said as much as possible in a few words, and writing briefly takes far more time than writing at length.
Karl Friedrich Gauss (1777-1855)

composite type
A data type with subcomponents like a record or an array, as opposed to an atomic type like an integer or a character. Composite types are also known as structured types.

computer

Computer Museum
The Computer Museum is located in Boston.

computer network

a collection of computers that can exchange information

connectionless protocol
A data communication method, like UDP, in which communication occurs without a persistent "connection" between hosts. Each packet is a complete message unto itself and may take a different route than other packets sent to the same destination. Connection-oriented protocols, on the other hand, require setting up.

control flow
A computer program directs the computer to execute a stream of instructions from among many possible sequences of instructions. This directed, continuous stream of actions is the control flow.

If the computer may actually (or apparently) execute instructions simulatenously, then it is possible for a program to simultaneously control different streams of actions. In this context, these streams of actions are often called threads.

control structure
A programming language construct that affects the sequence in which program statements are executed. For example, goto, while, and if.

control unit
The part of the central processing unit that controls the sequence of instructions executed

CORBA--Common Object Request Broker Architecture
Platform independent, distributed objects. Like RMI in Java and RPC. CORBA FAQ

COTS--commercial off the shelf
The strategy of using COTS products is often less expensive in the long run than building special purpose products.

CSNET--Computer Science NETwork

"An early network that offered e-mail and Internet connections to Computer Science Departments in colleges and universities. Initially funded by the National Science Foundation, CSNET later became self-sufficient." Comer, The Internet Book.

Haskell Brooks Curry (1900-1982)
Mathematical logician at Pennsylvania State University for over 30 years.
cyberspace

A term coined by William Gibson in his 1984 science fiction novel Neuromancer meaning an alternate reality created by computers that takes the place of the universe perceived by the naked senses (cf. virtual reality). More generally it refers to the area of social interaction conducted with the aid of telecommunications and the information accessible by computers.

A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z

D

declaration
A declaration in a programming language is a construct the introduces an identifier for use in the program.
      declare
         X: Integer;   -- a declaration introducing "X"
      begin 
         X := 45*89;   -- an executable statement using "X"
      end;
      

Type names, exception names, subprocedure and function names, etc are all introduced by declarations in most programming languages.

De Morgan, Augustus (1806-1871)
English mathematician who introduced the term ``mathematical induction'' and recognized the purely symbolic nature of algebra. He is known for De Morgan's laws and for reforming mathematical logic.

De Morgan's laws
NOT (A AND B) = (NOT A) OR (NOT B)
NOT (A OR B) = (NOT A) AND (NOT B)

dialup
"A temporary, as opposed to dedicated, connection between machines established over a standard phone line." [Source: IEFT, FYI 18]

Digital Equipment Corporation (DEC)
Computer manufacturer with headquarters in Maynard, Massachusetts founded in August 1957 by Kenneth Olsen (q.v.). In 1977 DEC introduced the popular VAX 11/780 minicomputer. In 1998 Compaq Computer agreed to buy DEC for 9.6 billion dollars, the biggest aquisition in the history of the computer industry.

Edsger Wybe Dijkstra (1930- )
ACM Turing Award recipient in 1972

direct-manipulation user interface

a user interface in which the operands are represented visually, and operations are invoked by manipulating the representations using a mouse; in contrast to a command oriented user interface. For example, dragging an icon for a particular file to a picture of a trashcan on the screen. Ben Shneiderman coined the phrase "direct manipulation."

discrete data type
A data type whose values are atomic, indivisible, unstructured, and without subcomponents. Such as the type of integers, reals, and characters in most languages. Other data types are composite, like the arrays and records.

DLL--dynamically loaded libraries

Dodgson, Charles Lutwidge (1832-1898)
Under the pen name Lewis Carroll, the author of Alice's Adventures in Wonderland (1865) and Through the Looking Glass (1872).

domain name system (DNS)
The domain name system is used to associate meaningful names for the IP addresses of computers. A single table (like in the early days of the Internet) is not practical when millions of computers are connected (and disconnected) from the Internet. The DNS is organized in hierarchy. Each level is called a domain and is reponsible for its own names. For example, tuck.cs.fit.edu and www.cs.fit.edu are names of hosts in the domain cs.fit.edu. The part on the left is the most specific, and the part on the right is the most general. The right most segment, the ``top-level domain name,'' often indicates the type of organization that runs the computer: .com is for commercial organizations, .edu is for educational organizations, .gov is for the U.S. government, .mil is for the U.S. military. .org is for other kinds of organizations, and .net is for network operations. These are the so-called ``organizational'' domains. The top-level domain name may also be a two-letter code taken from the standard ISO 3166 for country codes.

domain name server (DNS)
A server that translate domain names to IP addresses are called domain name servers. There is not one global table in which to look up the domain name, but rather the servers work together in a system in which a chain of more authoritative servers are consulted until the name is resolved.

dotted-octet notation
IP address of a computer is a 32 bit number broken into 8 bit segments, e.g., 187.21.48.3.

double-buffering
Double-buffering is the stategy of drawing on an offscreen buffer, and copying the buffer to the screen all at once. This avoids the flicker that would otherwise result from many small changes being made directly on the display.

DS3
a specification for digital signals in the North American digital transmission hierarchy. A DS3 signal has a transmission rate of 44.736 megabits per second. DS3 is used, for example, on T3 synchronous Integrated Services Digital Network (ISDN) lines.
DTD -- document type definition
This is a specific markup language, written using SGML.
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z

E

J. Presper Eckert, Jr.

ECMA
Europen-based industrial association founded in 1961 and dedicated to the standardization of information and communication systems located in Geneva, Switzerland.

EDO DRAM -- extended data out dynamic random access memory
A kind of memory used in fast pipelined processors like the Intel Pentimum. With EDO memory, multiple accesses can be faster if the memory locations are nearby.
EDSAC
In 1949 at Cambridge Univeristy, Maurice Wilkes assembled the EDSAC, the first practical stored-program computer. It operated at714 operations per second usign vacuum tubes and 1K of memory consisting of 17 bits. His ideas grew out of the Moore School lectures he had attended three years earlier. For programming the EDSAC, Wilkes established a library of short programs called subroutines stored on punched paper tapes.

EDVAC -- Electronic Discrete Variable Automatic Computer
A stored-program computer not completed until 1952. It has 4,000 vacuum tubes and 1024 words of memory each 44-bits. Its clock speed is 1 MHz. The EDVAC was constructed at the Moore School of Electrical Engineering and delivered to the Ballistic Research Laboratory Computing Laboratory at Aberdeen Proving Ground in August 1949 for installation. The machine started to operate on a limited basis late in 1951. By early 1952 it was averaging 15-20 hours of useful time per week for solving mathematical problems. By 1961 EDVAC was operating 145 hours out of a 168-hour week.

ELF -- executable and linking format

A format for executable and object files on UNIX systems. Gradually replacing the a.out format.

ENIAC -- Electronic Numerical Integrator and Computer

The ENIAC (Electronic Numerical Integrator And Computer) was designed at the Moore School of Electrical Engineering (Univeristy of Pennslyvania) by John W. Mauchley and J. Presper Eckert Jr. It is widely accepted as the world's first operational electronic general-purpose computer. Construction began in 1943. It contains 18,000 vacuum tubes and 1,500 relays, weighed 30 tons and had twenty 10-digit registers. It ran at a speed of fourteen 10-digit multiplications per second or 5,000 additions per second. It was programmed by setting 6,000 multiposition switches and connecting a multitude of sockets with jumper cables. It was first publicly demonstrated 14 February 1946 and was in use until 1955.

Lt. Herman Goldstine of the Ballistics Research Laboratory in Maryland encouraged the project to build a device to compute ballistic tables. An official proposal was submitted in April of 1943. The U.S. Army, Ordnance Department provided approximately $500,000 for the ENIAC's development.

encapsulation
The purpose of some programming language constructs is to gather parts together and treat them as single entities thus relieving the programmer of the overhead and conceptual burden of manipulating all the parts separately. Examples of encapsulation include records and modules (q.v.). A more abstract (q.v.) program can solve a more complex problem.
Enterprise Integration Technologies (EIT)

Incorporated in 1990, EIT was founded by Jay M. Tenenbaum and three colleagues from Schlumberger Technologies. EIT is located in Menlo Park, California and offers WWW services and technologies, e.g., Secure HTTP (q.v.). In November 1995, EIT was acquired by VeriFone, Inc. and now operates as a wholly owned subsidiary, developing products for VeriFone's Internet Commerce Division.

embedded computer
A computer, usually a microcomputer, installed as part of a larger system. The programs running on an embedded computer are programmed by the manufacturers of the system and not by the users of the system. Embedded computers are found in airplanes, autoteller machines, and so on.

Espresso.
Espresso translates Ada 95 to Java (q.v.) byte-code (q.v.). Espresso was demonstrated at the TRI-Ada '95 Conference and Exposition in November 1995 by Intermetrics and a product is planned.

ethernet

Invented by Bob Metcalfe.

exception propagation
The verb propagate means to spread out and affect a greater and greater area. Exception propagation refers to the course or path the runtime system takes in finding an exception handler when an exception is raised. The nearly universal approach of recent programming languages is to look for a handler in the local block. If none exists there, then the search spreads to the block that called the local block. And then to the block that called it, and so on, following the dynamic chain of execution until the initial block is reached. If no handler is found there, the program terminates abnormally. In some systems, abnormal termination may be accompanied by an informative message like:
      Uncaught exception "X" raised at line "123" of "main.pl"
      
Sometime even a complete dump of the runtime stack at the point the execption occurred may be provided. Keeping the runtime information in order to report these details does entail some cost. So some systems, may only report the name of the exception that was raised.

F

Facts on File
Publisher of reference books and materials

FDDI--Fiber Distributed Data Interface
An ANSI X3T9.5 standard for transmitting data in a local area network on optical fiber cable at a rate of 100 megabits per second (Mbps). That is 10 times faster than Ethernet.

fetch-execute cycle
The steps performed by the central processing unit for each machine language instruction: fetch an instruction from memory, decode it, take the indicated action.

FIPS -- Federal Information Processing Standard
flops -- floating point operations per second

flow of control
The order in which the computer executes statements in a program.

form-based file upload in HTML
Proposed in RFC 1867 in November 1995.

formal language
A formal language is a set of strings over some alphabet. A formal language can be as simple as L={a,aa,aaa,...} or as complex as the syntax of the Ada programming language (q.v). In a formal language, strings (sometimes called words or sentences) are either clearly in the language (syntactically legal) or clearly not in the language (syntactically illegal). A natural language like English is not a formal language. Although linguists study the syntax of English and grammar books aver certain rules, no set of syntactically English sentences is exhaustive and universally accepted as correct.

formal parameter
The name used within the subroutine or function to refer to the actual argument (q.v.) supplied when the subroutine is called. The actual arguments may vary every time the subroutine is called, but the names of the formal parameters do not. The names are picked by the programmer when the subroutine is written. Usually, the formal parameters and their types are introduced at the beginning of subroutine definition. Here are the initial portions of function definitions in three programming languages Modula-3, ML and Ada (q.v.):
      PROCEDURE Exp (base: REAL; power: REAL): REAL =           (* Modula-3 *)
      fun Exp (base: real, power: real): real =                 (* ML *)
      procedure Exp (base: Float; power: Float) return Float is   -- Ada
      
The formal parameters are base and power.

frame
An extension to the HTML (c.f.) document description language implemented in the Netscape browser to divide the viewing window of the browser into different regions called frames. Frames can be used for viewing different documents simultaneously or to provide a region of navigating links.

Friedrich Ludwig Gottlob Frege (1848-1925)
Also Gottlob Frege

FTP--File Transfer Protocol
Defined in RFC 959: FTP

functional programming paradigm
One of the three main programming language paradigms. The others are imperative programming (q.v.) and logic programming (q.v). In the functional programming paradigm computing is accomplished predominately by functions applied to arguments and recursion (no variables or loop statements are needed). The foundation of the functional paradigm is the lambda calculus (q.v.) and its single rule for computation: beta reduction. Actual programming languages vary in their adherence to any one paradigm. Some functional programming languages are LISP (the earliest), ML, and Haskell.

G

Gamelan

A WWW site of Earthweb containing hundreds of Java applets (q.v.). A gamelan is a Javanese instrument resembling a xylophone or a kind of orchestra of southeast Asia.

Gates, William H. (b. October 28, 1955)

William H. (Bill) Gates is chairman and chief executive officer of Microsoft Corporation, the leading provider of software for personal computers worldwide. Gates began his career in personal computer software when he started programming at age 13. In 1974, while an undergraduate at Harvard University, he developed BASIC for the first microcomputer, the MITS Altair. Led by the belief that the personal computer would ultimately be a valuable tool on every office desktop and in every home, Gates formed Microsoft with Paul Allen in 1975 to develop software for personal computers. -- from Microsoft Corportate Info
Author of the The Road Ahead. A biography can be found in Portraits in Silicon.

garbage collection

Garbage collection is the service in which the operating system systematically detects that a program no longer needs some portion of the memory allocated to it and reclaims the unneeded portion. The reclaimed portion can then be allocated to some other program or even reallocated to the original program if it requests more memory.

GNU
GNU is a "recursive" acronym for "GNU's not Unix." GNU is a philosophy, a movement, and a computer software project. Initiated by Richard Stallman, its goal is to provide a freely distributed, complete computing environment including the operating systems, languages translators, editors, debuggers, spreadsheets, etc. A large amount of high-quality and useful software has been developed by volunteers world-wide.

Links to archives of GNU software can be found at the Unofficial GNU WWW site.

GUI--Graphical User Interface

H

Richard Wesley Hamming (1915-1998)
Manhattan project, Bell Labs, Hamming Code, Naval Post Graduate School, ACM's Turing Award 1968

Hewlett-Packard Company

In 1972 Hewlett Packard introduced the HP-35 calculator for $395. The calculator performed transcendental functions and employed reverse Polish notation (RPN).

High Performance Computing and Communications Centers
Five supercomputing centers funded by the National Science Foundation

homograph
In the Ada Language Reference Manual, two declarations (q.v.) are said to be homographs if they define the same name. A declaration in an inner block hides any outer homograph from direct visibility. In Ada two homographs are not generally allowed immediately within the same declarative region.

HOPE
a functional programming language, with polymorphic typing, algebraic types, pattern matching and higher-order functions.

Grace Murray Hopper (1906-1992)

She helped develop the Flow-Matic programming language in 1957 for the Mark series of computers at Harvard Univeristy and the Common Business-Oriented Language (COBOL) in 1959-1961 for the UNIVAC. Prompted to the rank of Rear Admiral in 1983.

Grace Murray Hopper Award
The ACM awards the Grace Murray Hopper Award to an outstanding young computer professional on the basis of a single recent major technical contribution. The recipent must have been 30 years of age or less at the time.
HTML--HyperText Markup Language
A language for describing hypertext documents including simple text formatting embedded images, and using URLs to refer to the documents of different formats and accessible through different protocols.

Netscape extensions.

HTTP--Hypertext Transfer Protocol
The internet protocol used to fetch hypertext objects from remote hosts.

httpd -- HTTP daemon
name of the CERN (now W3) WWW server and also the NCSA WWW server

hueristic
(From the Greek for "discover".)

hypertext
Text which contains links to other texts. With a computer the reader can switch from text to text in addition to reading in the normal linear manner. The term hypertext is said to be coined by Theodor Holm Nelson in 1987 in
Literary machines: The report on, and of, Project Xanadu concerning word processing, electronic publishing, hypertext, thinkertoys, tomorrow's intellectual revolution, and certain other topics including knowledge, education and freedom
where he defined it as "non-sequential writing."

I

IANA -- Internet Assigned Numbers Authority (q.v.)

Ichbiah, Jean D.
Head of the design team at CII Honeywell Bull that developed the Ada programming language (q.v.) With Benjamin M. Brosgol, Ichbiah subsequently formed Alysys, Inc (which became part of Thomson Software Products in January 1995).

IDE -- Integrated Development Environment
A term used by Borland?

IDL -- Interface Definition Language
OMG (q.v.).

IEEE 754
A standard for representing real numbers in computers: IEEE Standard for Binary Floating-Point Arithmetic, ANSI/IEEE Std. 754-1985. The standard is for word lengths of 32 and 64 bits. See IEEE Floating-Point Notes by James Carr.

IETF -- Internet Engineering Task Force (q.v.)

ILLIAC

A series of four computers developed at the University of Illinois. The first, ILLIAC I, a vacuum-tube machine completed in 1952 performed 11,000 arithmetical operations per second.

immutable object
not a mutable object (c.f.)

IMP --Interface Message Processor
Hardware to handle dailup, error checking and routing for a host computer.

"Initial Design for Interface Message Processors for the ARPA Computer Network," BBN Report No. 1763, January 6, 1969.

Inktomi

UC Berkeley professor, Dr. Eric Brewer and graduate student Paul Gauthier founded Inktomi Corporation in February 1996. Wired Ventures, Inc. and Inktomi teamed to build HotBot search engine in May 1996. On May 18, 1998 it was announced that Inktomi and Yahoo! have entered an agreement giving Yahoo! the right to make Inktomi an integrated Yahoo! search results provider. Under the agreement, Inktomi will provide the underlying Web search engine to complement Yahoo!'s popular Web directory and navigational guide.

"INK-to-me," is derived from a Lakota Indian legend about a trickster spider character. Inktomi is known for his ability to defeat larger adversaries through wit and cunning.

Intel
In 1974 Intel introduced the 8080 microprocessor.
International Electrotechnical Commission (IEC)

An organization that coordinates national standards along with the International Organization for Standardization (ISO) (q.v.) An agreement in 1976 gives the IEC responsiblity for standards in the area of electrical and electronic engineering and the ISO everything else.

International Organization for Standardization (ISO).

A non-governmental organization established in 1947 as a federation of national standard bodies, one from each of some 100 countries. The organization is known as ISO (q.v.) for short.

Internet Assigned Numbers Authority (IANA)
The central registry for numbers used in network protocols such as port, protocol and enterprise numbers, and options, codes and types. Run by USC Information Sciences Institute (ISI), Jon Postel, director.

Internet Engineering Task Force (IETF)
A loose organization of network designers, researchers, and vendors with the purpose of managing, coordinating, and shaping the Internet. It now meets three times yearly under the auspices of the Internet Society.

internet
An internet is a collection of interconnected networks.

Internet
The Internet (capital "I") is defined by Ed Krol in The Whole Internet User's Guide and Catalog, 1992, as telecommunication devices and computers used by a large number of the computers in the world to communicate with each other. Its significance lies in the fact it serves as a global information infrastructure.

Internet Message Access Protocol (IMAP)
From the Pine FAQ
An IMAP client program on any platform at any location on the Internet can access email folders on an IMAP server. While the messages appear to be local, they reside on the server until the client explicitly moves or deletes them. The IMAP protocol is a superset of POP, containing all POP commands plus more. For a comparison of IMAP and POP, see the paper Comparing Two Approaches to Remote Mailbox Access: IMAP vs. POP (in ftp.cac.washington.edu:/mail/imap.vs.pop). IMAP is what allows Pine (or any other IMAP client) to get to email on a central campus email server. There are current IETF working groups revising IMAP and readying it to become an Internet standard. A copy of the latest IMAP draft may be obtained from ftp://ftp.cac.washington.edu/mail/latest-imap-draft. For a list of IMAP clients, see the file imap.software, in the same directory.

invariant
See loop invariant (q.v.)
ISBN--International Standard Book Number
A unique code for the identification of books. ISBNs are always ten digits long and are divided into four parts. For example:
ISBN 0 17 006737 8
ISBN 0 949155 09 8
ISBN 1 86252 140 9
In the examples above 0 or 1 represent the group identifier, based on national, geographic or language considerations. The second part of the number (17, 949155, and 86252 in the example above) is the publisher identifier and designates a particular publisher or group of publishers. The third part of the number (006737, 09, and 140) is the title identifier assigned to a particular title or edition of a title. The final digit is a computer check digit. The check digit is calculated from the preceding nine digits and is used by computers to trap errors made in the writing or keying of the ISBN number.

ISDN--Integrated Services Digital Network
In 1994 it was estimated that 60 to 70 percent of telcom customers can now get an ISDN line. An Introduction to ISDN

ISO
A short form for International Organization for Standardization (q.v.)

Many people will have noticed a seeming lack of correspondence between the official title when used in full, International Organization for Standardization, and the short form, ISO. Shouldn't the acronym be "IOS"? Yes, if it were an acronym -- which it is not.

In fact, "ISO" is a word, derived from the Greek isos, meaning "equal", which is the root of the prefix "iso-" that occurs in a host of terms, such as "isometric" (of equal measure or dimensions -- Shorter Oxford English Dictionary) and "isonomy (equality of laws, or of people before the law -- ibid.).

From "equal" to "standard", the line of thinking that led to the choice of "ISO" as the name of the organization is easy to follow.

In addition, the name has the advantage of being valid in each of the organization's three official languages -- English, French and Russian. The confusion that would arise through the use of an acronym is thus avoided, e.g. "IOS" would not correspond to the official title of the organization in French -- Organisation internationale de normalisation.

from Introduction to ISO

IS0 369
Code for the representation of names of languages

IS0 3166
Code for the representation of names of countries

ITU -- International Telecommunciation Union

The International Telecommunication Union (ITU) was founded in 1865 and is headquartered in Geneva, Switzerland In 1947, it became an agency of the United Nations and has a membership of 184 countries, as well as a number of industry and government organizations. Its purpose is the coordinating, regulating, and standardizing of telecommunications.

J

Java
A programming language developed beginning 1990 at Sun Microsystems (q.v.). Java is general-purpose programming language which is object-oriented, multithreaded, and strongly-typed (q.v.) Java is translated to byte-codes making it possible to run Java programs on any computer with a byte-code interpreter. Some WWW browsers incorporate such an interpreter permitting an HTML document to change, interact with the person viewing it, display pictures, etc.

JavaSoft
On January 9, 1996 Sun Microsystems, Inc. announced the formation of a new business unit, JavaSoft, headed by Dr. Alan Baratz, former president and Chief Executive Officer of Delphi Internet Services Corporation according to a press release.

JPEG -- Joint Picture Experts Group
The JPEG committee defined defined a lossy compression format for still images. The encoding process consists of three main steps: DCT, quantization, and Huffman encoding. ISO/IEC 10918-1: 1992.

K

Kleene, Steven Cole (1909-1994)
Professor of mathematics at the University of Wisconsin and founder of recursion theory.

L

lambda calculus

lambda lifting
Suppose the lambda expression E has free variables y1 ... yk.
      \ x1 ... \ xn . E --> (\ y1 ... \ yk . \ x1 ... \xn . E) y1 ... yk
      
      \ x . x (\ y .  x y)  --> \ x . x (( \ x \y . x y ) x)
      

language
The means by which people (and some other animals) communicate.
A broad definition for a broad concept
See also formal language, syntax, semantics, meta-language, and object language.

large scale integration (LSI)
Latin-1 character set
A 8-bit character set containing the entire ASCII character set (q.v.) plus additional characters for European languages. It is defined by the ISO 8858-1 standard.

life cycle
c.f. software life cycle

linear logic
introduced by J-Y. Girard in 1986, among the most influential areas of logic and theoretical computer science in recent years. The interest is in using linear logic to describe computational resources, something that traditional logics are not as adept at.

linear time complexity
An algorithm that executes in time proportional to the size of the input, N, is said to have linear time complexity, or O(N).

linker
A linker is a program that combines several separately-compiled machine language programs into a single executable program by resolving the the references in each program that refer to the others. Before linking, a program may have calls to procedures not defined in the program, but presumably found someplace else. After linking, all calls must have a known destination.

Sometimes linking is done while the program is executing, this is called dynamic linking.

Linux
A freely-distributed version of Unix for PCs originally by Linus Torvalds and developed by people all over the world. In October 1991, Linus Torvalds announced the first ``official'' version of Linux, version 0.02.

An NPR news report on Linux OS (requires RealAudio).

literal
a lexical unit of a programming language that directly denotes a particular value, e.g., "str", 12 or 4.32E-23. The value of a literal is the same regardless of the context (unlike a constant).

literate programming
The only support in most programming languages for documentation intended for the human reader is a comment construct. Some languages have additional constructs intended for software tools other than the compiler. These tools format or otherwise prepare documentation, hypertext, indices, cross reference lists, etc, to be used by people in conjunction with the program. Programming with such systems is called literate programming. The systems are suppose to encourage move pleasing, convenient and accurate documentation of computer programs than is typically found in programs using just comments.

LISP -- LISt Processing
pointers to the history of LISP

localization of scope
The principle of keeping the textual scope of program variables as small as possible---called "minimization of scope" by McConnell in Code Complete page 261. This is good programming practice because it make programs easier to understand.

loop invariant
A loop invariant is an assertion (boolean expression) that relates the values of the program variables, it is true before and after every execution of the body of a loop.

The significance an invariant lies in the fact that a program cannot be fully understood by mentally executing. The number of states is too large for the human mind to comprehend. Only by representing the execution of a program, in particular loops, with a nonchanging relationship among the program variables is it possible to understand and to write correct programs. Even though the values of the variables change, the meaningful relationships can be found, it is these relationships that are invariant.

M

mailcap
A mailcap file is a configuration file that maps MIME types to external viewers. An example would be mapping MIME type image/gif to the image viewer "xv". It is used by the WWW browser Mosaic, cf. Mailcap Files. IANA registers the media types, cf. IANA Registry of media types

Appendix E -- IANA Registration Procedures

MIME has been carefully designed to have extensible mechanisms, and it is expected that the set of content-type/subtype pairs and their associated parameters will grow significantly with time. Several other MIME fields, notably character set names, access-type parameters for the message/external-body type, and possibly even Content-Transfer-Encoding values, are likely to have new values defined over time. In order to ensure that the set of such values is developed in an orderly, well-specified, and public manner, MIME defines a registration process which uses the Internet Assigned Numbers Authority (IANA) as a central registry for such values.

See the media types registered at IANA.

mailto forms
Mailto forms intro Which browsers support mailto forms Adam's Mailto: Forms Information. To declode something that is urlencoded use the C program Mailform V0.1 A popular, freeware mailto forms formatter Formatter 4.01 for windows.

mathematical induction
A phrase coined by De Morgan in the eary 19th century. According to Knuth: Francesco Aurolico 1575, Pierre de Fermat "method of infinite descent", Plaise Pascal 1653. The
matrix
An n by m matrix is a rectangular array of n×m numbers arranged in n horizontal rows and m vertical columns. When either n or m is one, we have the special case of a vector. Matrices play an important role in linear algebra and are frequently used in applications like solving systems of linear equations.

History of matrices and determinants

John William Mauchly (1907-1980)
John William Mauchly was born on August 30, 1907, in Cincinnati, Ohio. In 1947 Eckert and John Mauchly founded the Eckert-Mauchly Computer Corp. to construct machines based on their experience with ENIAC and EDVAC.
MCI
MCI, headquartered in Washington, D.C., has expanded from its core long distance business to become the world's third largest carrier of international calling and a premier provider of data communications over the vast Internet computer network. With annual revenue of more than $13.3 billion, the company today provides a wide array of consumer and business long distance and local services, data and video communications, on-line information, electronic mail, network management services and communications software.

md5 (message digest)
The md5 algorithm takes as input a message of arbitrary length and produces as output a 128-bit "fingerprint" or "message digest" of the input. It is conjectured that it is computationally infeasible to produce two messages having the same message digest, or to produce any message having a given pre-specified target message digest. An implementation of md5 can be found in Internet RFC 1321

meta-language

The meta-language is the language used to communicate about or dicuss another language (called the object language (q.v.)).

MH
Musical Instrument Digital Interface (MIDI)
The Musical Instrument Digital Interface is a standard for transmitting control signals between electronic musical instruments (keyboards, synthesizers, signal processors and others), and computers. MIDI was pioneered in the early 1980's by Sequential Circuits in the US and Roland in Japan, and widespread acceptence.

Millicent
A scheme for supporting small-scale commercial transactions on the Internet developed at Digital Equipment Corporation's Systems Research Center in Palo Alto, California.

MIME--Multipurpose Internet Mail Extensions
Defined by RFC 1521.

For example, suppose an entity has header fields such as:

      Content-Type: text/plain; charset=ISO-8859-1
      Content-transfer-encoding: base64
      
This is interpreted to mean that the body is a base64 ASCII encoding of data that was originally in Latin-1 character set (q.v.) (ISO 8859-1).

Model view controller (MVC)
A partitioning of the design of interactive software into three parts. The "model" is the internal state of the program, the "view" is how the user sees the model on the display device, and the "controller" is how the user changes the state or provides input. The term comes from the Smalltalk system.
module
A programming language construct to support encapsulation, information hiding, and separate compilation. A module consists for two parts: a specification (sometimes called an interface) and an implementation. Programming languages that have modules include Modula-2, Modula-3, SML, Ada (q.v.) and Java (q.v.).
      Modula-3   INTERFACE M; ... END M.
                 MODULE M; ... BEGIN ... END M.

      Ada        package P is ... end P;
                 package body P is ... begin ... end P;
      
      SML        signature SIG = sig ... end
                 structure S: SIG = struct ... end

      Java       package P; ...
      
In Java there are no explicit specification files. Rather each element of the package is declared to be public (exportable) or private (not visible by a user of the package).

Mozilla
The former name of the Web browser developed by Netscape (now called Navigator). The name appears to be chosen to indicate the desire to redo Mosaic, to "slay" it like the movie monster Godzilla.

The Netscape specific URL about:mozilla shows the company mascot.

MTA--Mail transport agent

MUA--Mail user agent

mutable object
A mutable object is one that
has a state which may be modified by certain operations without changing the identity of the object
Liskov, et al. CACM, vol 20, no 8, 1977, pages 564-576. For example, an array or a record is usually a mutable object. The subcomponents may be changed by assignment A[i]:=3 or r.f:=3, but the array A and r don't change their identity.

N

name space
The collection of identifiers or potential identifers visible in a computer program.

name space pollution
Occurs when so many (prehaps) overloaded names are visible at one point in a computer program that it is difficult to know where an identifier is declared.

NAP--Network Access Point
Network nodes connecting mid-level or regional networks and other service providers to the high-capacity NSFnet backbone.

narrowing
  1. Coerce an object to a more specific type. If the object does not have that type then this could cause a runtime error. The opposite, coercing an object to a less specific type, is called widening.
  2. "Unification followed by unfolding. The left-hand side of a rule is unified with some term, resulting in a set of variable bindings. The term is then replaced by the right-hand side of the rule with values substituted for bound variables." [From FOLDOC.]

National Institute of Standards and Technology (NIST)
The National Bureau of Standards (NBS), was established by Congress in 1901. In 1988 its name was changed to the National Institute of Standards and Technology (NIST). An agency of the U.S. Department of Commerce's Technology Administration, NIST's primary mission is to promote U.S. economic growth by working with industry to develop and apply technology, measurements, and standards.

National Technical Information Service
The National Technical Information Service (NTIS) is a self-supporting agency that actively collects and organizes technical, engineering, and business-related information generated by U.S. and foreign sources and makes it available for commercial use in the private sector.

NCSA--National Center for Supercomputing Applications
NCSA is a unit of the University of Illinois at Urbana--Champaign and was established in 1985 with a grant from the National Science Foundation. In addition to NSF grant funds, NCSA receives major funding from the Advanced Research Projects Agency, NASA, corporate partners, the state of Illinois, and the University of Illinois.

Netscape
The name of the WWW browser (q.v.) for Unix, Windows, and Apple computers freely distributed by Netscape Communications Corporation (q.v.). Netscape evolved from the WWW browser Mosaic.

Netscape Communications Corporation
Founded in April 1994 by the founder of Silicon Graphics, James H. Clark, and NCSA Mosaic creator Marc Andreessen. Netscape Communications Corporation is based in Mountain View, California. It produces the popular WWW browser Netscape.

NIC--Network Information Center
An organization originally funded by various federal agencies responsible for allocating IP network address and registering domain names. For years the NIC was housed at Stanford Research Institute. Then Network Solutions Inc. located in Chantilly, Virginia was awarded the contract for NIC registration services with AT&T handling directory services. See InterNIC. A similar registration center, Ripe (q.v.), handles European requests for IP addresses and domain names.

NIS -- Network Information Service

Network Solutions Inc. (NSI)
Founded in 1979. In 1993 granted exclusive contract by the U.S. government to operate the top-level domain name registry. In 1995 it won approval to charge a yearly fee of $50 per domain name. 2 million .com domains have been registered by 1998.

nonprocedural block
A block is a unit of executable statements comprising the scope of a set of local declarations (q.v.). Certainly a procedure is a block, but some programming languages have an additional construct for inserting blocks anywhere an executable statement is possible. Nonprocedural blocks are executed at the point they appear and cannot be invoked using their name from elsewhere in the program like procedures. Procedures and nonprocedural blocks can usually be nested, giving rise to tree structure of local scope units characteristic of block-structured programming languages.

Here is an example of nested nonprocedural blocks in Ada (q.v.).

      declare
         X: Integer;
      begin
         X := 1;     -- Y is NOT visible here
         declare
            Y : Integer;
         begin
            Y := X;  -- X and Y visible here
         end;
         X := 2;     -- Y is NOT visible here either
      end;
      

NSF--National Science Foundation
The National Science Foundation is an independent agency of the federal government established in 1950 to promote and advance scientific progress through grants to educational and research institutions for research and education in the sciences, mathematics and engineering.

NSFnet backbone service
From 1990 to April 30, 1995 the National Science Foundation (NSF) (q.v.) supported the Internet by funding the network backbone through Advanced Network & Services, Inc. (q.v.), Merit, IBM, MCI, and the State of Michigan.

NFS continues to fund the new architecture called the very high speed Backbone Network Services (vBNS) (q.v.) and provided by MCI. The four NSF-awarded Network Access Points (NAPs), provided by Ameritech, PacBell, Sprint, and MFS Datanet The NSF-funded Routing Arbiter project, which provides routing coordination in the new environment. The RA project is a partnership between Merit Network, Inc.; the University of Southern California Information Sciences Institute; IBM Corporation, as a subcontractor to ISI; and the University of Michigan ROC, as a subcontractor to Merit.

O

O---big "Oh" notation

A convenient notation for dealing with approximations used for comparing functions of one variable by their rate of growth, i.e., an O(N2) function (quadratic) grows faster than a O(N) function (linear). Algorithms can be ranked by the functions that relate the number of steps the algorithm takes with the size of the problem. See "Time and Space Complexity" in The Turing Omnibus by Dewdney. The notation was introduced by Paul Gustav Heinrich Bachmann (1837-1920) in the book Analytische Zahlentheoreie in 1892.

The function f(n) is said to be O(g(n)) if there is an integer N and a constant C such that f(n) < C × g(n) for all n > N

See Headinton and Riley, Data Abstraction and Structures Using C++, Sections 12.1, 12.2 and 12.3.

object language.
The object language is the language under discussion or study, as opposed to the language used in discussion (called the meta-language).

object-oriented programming

ODBC
OC-3
Fiber optic network standard for data transmission at a rate of 155 megabits per second (Mbps).

OC-12
Fiber optic network standard for data transmission at a rate of 622 megabits per second (Mbps).

octet
A networking term for 8 bits. The term octet is used deliberately instead of byte, because not all computer systems have bytes that are 8 bits.

OLE -- Object Linking and Embedding

A specification of software components promoted by Microsoft.

Olsen, Kenneth

Founder of Digital Equipment Corporation (q.v.) in August 1957.

OMG--Object Management Group
Consortium of roughly 380 companies. Responsible for defining CORBA (q.v.)

ISO/OSI--Open Systems Interconnect
An ISO standard protocol suite more recent and less used than TCP/IP.

Open Database Connectivity (ODBC)
ODBC is an API standard created by Microsoft for access to any DBMS. It is based on the X/Open defintion of SQL call level interface (CLI). An application written for the ODBC API can be used to access any DBMS, given the appropriate ODBC drivers.
orthogonality of programming language design
Orthogonality is the principle of language design which states that separate constructs of a programming language should combine in meaningful ways without exceptions and unexpected interaction.
Ousterhout, John
John Ousterhout is the 1997 winner of the ACM Software System Award for his work on Tcl. The award is given "to an institution or individual(s) recognized for developing a software system that has had a lasting influence, reflected in contributions to concepts, in commercial acceptance, or both." Other winning systems include UNIX, TCP/IP, SmallTalk, the World-Wide-Web, and PostScript.

P

David Packard (1912-1996)
Along with Hewlett, a founder of Hewlett-Packard Company (q.v.) in 1939 in a garage in Palo Alto california with $538 in capital.

partial correctness
The partial correctness of computers programs means that any pronouncements about the program assume that the program terminates whether or not it does.

PCI--Peripheral Component Interconnect
A propietery local bus standard connecting a processor to memory designed by Intel and first available in 1993. Found most commonly on Pentiums. ISA, EISA and MCA are other local bus standards.

PCMCIA--Personal Computer Memory Card International Association
An association of hundreds of companies that sets standards for interfaces to PC's. But the term is usually applied to the devices that use these interfaces. Originally developed by Neil Chanrdra of Poquet (now a division of Fujitsu) for plug-in access to external memory resources. Now many kinds of devices use the PCMCIA interface, for example, modems and floppy disk drives. The PCMCIA defines three types of interfaces all with a 68-pin connection and about the size of a credit card.

Few people recall what the acronym PCMCIA actually stands for, hence the it is often said to stand for People Can't Remember Computer-Industry Acronyms.

PERL--Practical Extraction and Report Language
A programming language developed by Larry Wall. cf. Perl Documentation

personal computer (PC)

A general-purpose computer generally used by one person at a time for home and business applications. The concept was ursurped early on by IBM, but now PCs are mostly closely associated with the software giant Microsoft and the integrated circuit manufacturer INTEL.

Peterson's Guide.
A guide to undergraduate and graduate programs in North America.

Perlis, Alan J. (1922-1990).
Alan J. Perlis was the recipient of ACM's first Turing Award given in 1966. He founded the Digital Computer Center at Purdue University in 1952 and devolped IT. In 1956 he founded the Computation Center at Carnegie Institute of Technology (now Carnegie-Mellon University). In 1965 he established the graduate department in computer science at the Carnegie Institute of Technology and became its first chairman. Perlis was involved in defining ALGOL 58 and ALGOL 60, as well as the later extensions of the language. In 1971 he joined the Department of Computer Science at Yale University as Eugene Higgins Professor of Computer Science. Perlis is the founding editor of Communcations of the ACM and was President of the ACM from 1962 to 1964.

One of his Epigrams on Programming:

The best book on programming for the layman is ``Alice in Wonderland''; but that's because it's the best book on anything for the layman.

pixel
a digital picture consists of a rectangular array of picture elements or pixels. Pixels can be one bit as in a bitmap or multiple bits to represent a grey scale or colors.

polymorphism

POSIX -- Portable Operating System Interface

A set of IEEE operating system interface standards for process, file, and directory management. IEEE 1003.1 defines a Unix-like operating system interface, 1003.2 the shell and utilities, and 1003.4 real-time extensions

port
A bidirectional, logical connection provided by the TCP layer. A port identifies a particular service from among possibly many on a same machine. Some assigned numbers are
   FTP (data connection)    20
   FTP (control connection) 21
   telnet                   23
   smtp                     25
   who is                   43
   login                    49
   domain name server       53
   gopher                   70
   finger                   79
   http (WWW protocol)      80
   nntp                    119
   Z39.50 (WAIS protocol)  210
cf. port numbers. Numbers less than 1024 are privileged. On some computer systems the file /etc/services lists which network services are assigned to which ports.

POP--Point of Presence

POP--Post Office Protocol

PostModern Computing
A privately held California corporation founded in 1991 to develop and market software enabling the development of distributed object-oriented applications for large networks.
Mountain View, CA: December 11, 1995 - PostModern Computing today announced an object request broker, code-named Black Widow, which connects CORBA objects with the World Wide Web. With Black Widow, applets developed using Java can be used from web browsers such as Netscape and Spyglass to communicate with CORBA server objects implemented in Java or C++.
from press release. Black Widow is expected to be available in the first quarter of 1996.

PostScript
Started out as a Computer Assisted Design language called Interpress at Xerox PARC in 1976. John Warnock and Chuck Geschke left and formed the Adobe coportation in 1981.
POTS--Plain Old Telephone Service

PPP--Point-to-Point Protocol
Defined in RCF 1661: The Point-to-Point Protocol, July 1994 A decision was made at the Amsterdam IETF that all systems wishing to guarantee IP interoperability over ISDN should implement PPP. see RFC 1356, see Multilink PPP.

precondition
A precondition is an assertion relating the values of the program variables assumed to be true before some section of the program is supposed to be executed. For example, before the factorial function defined below
      fun fact (n) = if n=0 then 1 else n*fact(n-1)
      
assumes that the argument is non-negative.

See also postcondition, Hoare logic, weakest precondition calculus.

procedure closure

The representation of a procedure or function value at runtime. A procedure clousure is necessary in passing subprograms as arguments (to other procedures) and returning subprograms from functions. A procedure closure is a pair, a code pointer and an environment pointer. The environment pointer, or static link, is necessary to access the non-local environment.

programming-in-the-large

Programming to solve large complex problems often with many programmers working together. The term was coined in the article "Programming-in-the-Large Versus Programming-in-the-Small," F. DeRemer and H. Kron, IEEE Transactions on Software Engineering, volume 2, number 2, June, 1976.

programming-in-the-small

The opposite of programming-in-the-large (q.v.).

PROLOG

A programming language based on the resolution principle, a single rule of inference for first-order predicate logic. PROLOG was conceived and implemented in 1972 by Alain Colmerauer and Phillipe Roussel of the University of Marselles as part of a project in natural langauge translation. PROLOG is the primary example of logic programming.

protocol
In order for two programs to communicate efficiently it is necessary for them to agree on the form of interaction just as diplomats agree to conventions for polite interaction. The word "protocol" was in use for computers by the year 1970.

Q

R

RARP--reverse address resolution protocol
A protocol that enables a machine at a physical network address (e.g., a 48-bit Ethernet address) to be assigned an IP address by sending a request to a RARP server. This is used, for example, by a diskless workstation to determine its own IP address at startup. See also ARP (q.v.).

referential transparency
Frege `Über Sinn und Bedeutung' (`On Sense and Denotation'), in Zeitschrift für Philosophie und philosophische Kritik, C (1892): 25-50.
The meaning of a sentence must remain unchanged when a part of the sentence is replaced by an expression having the same meaning.
The phrase ``referential transparency'' was first used by Whitehead and Russell in Principia Mathematica to compare the following syllogisms:
All men are mortal;
Socrates is a man;
Therefore Socrates is mortal.
and
Everything Xenophon said about Socrates is true;
Xenophon said: ``Socrates is mortal'';
So Socrates is mortal.
Quine talks about it in Section 30: Referential Opacity of Word and Object.

regression testing
one approach to testing a program for errors. In regression testing the program is tested after a modification using the previous test cases to reduce the chances that the modification introduces errors that were not previously there. Often a collection of test cases is developed as errors are found in the program. A modification may fix the last error discovered, but might introduce an error in a case that worked previously.

relative URL
A URL defined relative is a base URL. Defined in Relative Uniform Resource Locators

reserved word
An identifier that has special meaning in the syntax of a programming language and cannot be used as an identifier by the programmer

RFC--Request For Comments

RIP -- routing information protocol

RIPE--(Réseaux IP Européens)
RIPE is a collaborative, voluntary organization of more than 60 European Internet service providers operating since 1989. It aims to provide the administrative and technical coordination to allow the operation of a European-wide IP network. RIPE is located in the Netherlands.

routing information packets (RIP)
The routing information protocol is a distance-vector protocol that lets routers in the same autonomous system exchange routing information by means of periodic updates. Routers transmit their own updates to neighboring networks and listen for updates from the routers on those neighboring networks. Routers use the information in the RIP updates to ensure that their internal routing tables reflect the current state of the network and contain the best paths available. The best path to a destination is the path with the fewest hops (or routers) from the network of origin to the target network.

runtime system
The runtime system of a program is the collection of facilities supporting the execution of the program. The language translation system (compiler and linker) adds the code for these facilities along with the code produced by translating the user's program to produce the executable module.

In Ada the runtime system checks that subtype constraints are not violated, searches for exception handlers, allocates storage from the heap, controls interaction between tasks.

S

Sapir-Whorf hypothesis
The hypothesis claims that how we perceive reality is determined by our language and culture.
We cut nature up, organize it into concepts, and ascribe significances as we do, largely because we are parties to an agreement to organize it in this way--an agreement that holds throughout our speech community and is codified in patterns of our languages. The agreement is, of course, an implicit and unstated one, but its terms are absolutely obligatory; we cannot talk at all except by subscribing to the organization and classification of data which the agreement decrees.
from Language Thought and Reality: Selected Writings of Benjamin Lee Whorf, MIT Press, 1956.

Although intuitively plausible, the hypothesis is controversial and the evidence he cited (lack of future tense in the language of the Hopi indians, multitude of words for snow in Inuit) has been discredited, see (for example) The Warp Factor. Nonetheless, programmers that have experience in imperative, functional, logic, and object-oriented programming ought to be better than those that more limited experience. The value of good mathematical notation seems obvious. Take for example multiplying in Roman numerals.

Sather
Sather is an object oriented language designed to be simple, efficient, safe, flexible and non-proprietary. ... Sather has parameterized classes, object-oriented dispatch, statically-checked strong (contravariant) typing, separate implementation and type inheritance, multiple inheritance, garbage collection, iteration abstraction, higher-order routines and iters, exception handling, assertions, preconditions, postconditions, and class invariants. Sather programs can be compiled into portable C code and can efficiently link with C object files.

scope rules
The rules that govern where in the text of a program a name can be used to refer to the binding introduced by a particular declaration (q.v.). These rules establish where in the program a name can and cannot be used and these rules distinguish among multiple declarations for the same name.

Secure HTTP (S-HTTP)

A security-enhanced version of HTTP developed by Enterprise Integration Technologies, RSA Data Security, Inc., and the National Center for Supercomputing Applications. S-HTTP provides for transaction confidentiality, authentication, message integrity and non-repudiability of origin. A draft definition appears in The Secure HyperText Transfer Protocol, December 1994.

semantics
The meaning of a language, as opposed to its structure or syntax (q.v.).

Silicon Graphics, Inc
A manufacturer of 3-D and multimedia workstations (c.f.). Founded about 1983 by James H. Clark, formerly an assistant professor of computer science at Stanford University from 1979 to 1982 and others. Clark left SGI in January 1994. The present CEO is Edward R. McCracken since 1984 formerly at HP for 16 years.

SGI -- Silicon Graphics, Inc

SGML--Standard Generalized Markup Language (q.v.)

SHTTP -- Secure HTTP (q.v.)

side effect
Any change made by a subprogram to the global environment that does not take place through the arguments to the subprogram.

SlipKnot
A Windows-based graphical WWW browser which does not require SLIP, PPP or TCP/IP. Designed for users of UNIX dialup (q.v.) or direct connect shell accounts. Available by ftp for a registration fee of about $30.

SML
software life cycle
problem analysis, requirements definition, high- and low-level design, implementation, testing and verification, delivery, operation, and maintenance.

SMTP--Send Mail Transfer Protocol
Defined in RFC 821: SMTP

spam
The term comes from "Monty Python's Flying Circus" in which the identical message is sent to many news organization. The original spam sketch can be found. On the Internet it means to punish breaches of net etiquett by sending lots of e-mail.

As the term comes into widespread use, it is identical to sending "junk" mail or even just "advertising."

Spyglass, Inc.
In August 1994 University of Illinois--Urbana-Champaign announced a licensing agreement permitting Spyglass, Inc. to develop a commercial version of Mosaic with added functionality. NCSA continues to distribute Mosaic freely. Spyglass licenses Internet technologies to software developers, Original Equipment Manufacturers (OEMs), and Value Added Resellers (VARs). Spyglass technologies are currently licensed by AT&T, Digital Equipment Corporation (q.v.), Corel, IBM, Microsoft, and Oracle.

SSL -- secure socket layer

Standard Generalized Markup Language (SGML)
ISO standard (ISO 8879:1986)

StarWave

stored-program computer
The first stored-program machine was the Manchester Mark I completed in 1948 at the University of Manchester in Manchester, England. It had 32 words of 32 bits each. In 1949 another stored-program machine, the Electronic Delay Storage Automatics Computer (EDSAC), was completed in Cambridge, England.
strongly-typed language.
A programming language in which every expression has a well-defined type known at compile time.

structured comments
Comments are parts of computer programs ignored by the compiler. In these parts the programmer can write anything, usually to explain something about the program. Software tools other than the compiler are sometimes used to extract information from the comments. In this case the comments must be structured in a way appropriate for the tools. Such comments are called structured comments.

subunit.
In the Ada programming language (q.v.) subprogram and package bodies may be compiled separately by placing a subprogram body stub
      subprogram-specification is separate ;
      
or a package body stub
      package body subprogram-specification is separate ;
      
in the program. The bodies are found in separate files which can be given to the compiler and compiled without necessarily requiring the parent to be recompiled.

The subunit is not independent of the parent unit and, so, is not a library unit. Thus a subunit is never mentioned in a with clause.

A subunit may use declarations in the parent unit precisely as if the body were inserted at the place of the stub. A subunit begins with an optional context clause, followed by

      separate ( parent-unit-name )
      
followed by a subprogram or package body. (The separate clause is not follwed by a semicolon.)

The GNAT Ada compiler requires that the name of the subunit be formed like this:

      parent-unit-name-subunit-name.adb
      
using the name of the parent unit and the subunit separated by a dash.

syntactic category
A formal language defined by a grammar or a BNF definition may consist of named subparts (nonterminals, q.v.) known as syntactic categories which may be independently interesting. For example, programs in most programming languages consist of expressions, statements, declarations (q.v.), etc.

syntax
The form and structure of a language, as opposed to its meaning or semantics (q.v.).

Sun Microsystems
A major manufacturer of UNIX workstations (c.f.), developer of the SPARC architecture and the Java programming language. Founded in February 1982, Sun Microsystems is headquartered in Mountain View, California.

SunSoft
A subsidary of Sun Microsystems (q.v.).

T

T1
An AT&T term for a leased line used to transmit digit data in a certain format at 1.544 megabits per second (Mbps).

T3
An AT&T term for a leased line used to transmit digit data in a certain format 44.746 megabits per second (Mbps).

TCP--transmission control protocol
TCP has been adopted as a US DoD standard, MIL-STD-1778.

TCP/IP protocol suite
Two closely related protocols TCP (q.v.) and IP (q.v.) that together provide a reliable connections from programs on one computer to programs on millions of computers all over the world despite the different hardware and communications technology.

telephone service interruption on January 15, 1990
A software bug in the code for the specialized computers used to route telephone calls by AT&T caused a widespread interruption of telephone service in the United States for 9 hours on January 15, 1990.

telnet
Internet protocol defined in RFC 854 to provide terminal emulation rlogin used between "trusted" computers.

Teraflops
A massively parallel computer developed under direction of the Department of Energy for the Accelerated Strategic Computing Initiative (ASCI) to model nuclear tests. It was built at a cost of $55 million by Intel. In a test in December 1996 the computer broke the Teraflop mark (a trillion floating point operations a second). The complete configuration should be capable of 1.8 Terflop and uses over 9,000 Pentium Pro processors and 262 Gigabytes of memory.

texi2html
a Perl script that converts GNU's Texinfo files to HTML. The program takes Texinfo files (and not info ones) and produces a set of HTML files. The quality of the output is close to the printed output and is much better than an info to HTML gateway.

Thinking Machines Corporation
Founded in 1983 Thinking Machines Corporation designed and manufactured massively parallel computers. The Connection Machine (CM-5) system is one of the most powerful computers in the world, and is used in such fields as oil exploration, financial services, molecular biology and database "mining." In August 1994 the company filed for Chapter 11 protection and in November 1995 filed a plan to emerge from its Chapter 11 reorganization as a recapitalized company focused on software, networking, and applications for multiprocessor computing. In October 1995 Thinking Machines moved its corporate headquarters to Bedford, Massachusetts from Cambridge, Massachusetts.

thread
A thread is an individual sequence of program execution among possibly many such executions competing for the resources of a computer. A thread, especially a lightweight thread, as opposed to a task or a process, implies the concurrent execution in the same address space and the sharing of operating system system overhead (like IO buffers, environment, ect) with other threads. The purpose to make suspending and resuming the execution of threads as fast as possible.

transparent GIF image
The 1989 revision of the definition of the GIF image format allows a pixel value to be marked as transparent so that the program that puts the image on the display may leave the background in those pixels marked transparent.

To convert a GIF image to a transparent GIF image you can use the PBM software, as in

      giftopnm GIF87a-file | ppmtogif -trans color > GIF89a-file
      
where color can be an RGB triple #CFCFCF or a name in the X Window System color database.

Turing, Alan Mathison (1912-1954)
Computing pioneer. See also Alan Mathison Turing (1912-1954), and Alan Mathison Turing (1912-1954).

Turing Award
The ACM awards the A. M. Turing Award every year to a distinguished computer scientist.

Turing machine

twos complement
A system used in most computers to represent negative numbers in binary. Each bit of the number is inverted (zeros are replaced with ones and vice versa), as for ones complement, but then one (000...0001) is added (ignoring overflow). This avoids the two representations for zero found in ones complement by using all ones to represent -1.
        ...                                        -1 = 111...11111
        000...00011 = +3                           -2 = 111...11110
        000...00010 = +2                                ...
        000...00001 = +1                                100...00001
        000...00000 =  0                                100...00000
        111...11111 = -1                                011...11111 
        111...11110 = -2                                ... 
        111...11101 = -3                           +1 = 000...00001 = 1
        ...                                         0 = 000...00000 = 0
This representation simplifies the logic required for addition and subtraction, at the expense of a little extra complexity for negation.

type insecurity
A programming language has a type insecurity when it is possible that a value (stored in the computer using some internal representation) can be misinterpreted by an operation to be another value. For example, the Latin-1 character 'C' (with representation 1000011) could be misinterpreted by the addition operation as the number 67.

The same internal representation (bits) can mean different things. Take, for example, the 32 bits

      0xFF439EB2 =       1111 1111 0100 0011 1001 1110 1011 0010
      
These bits could mean three different values depending on the interpretation.
       -12345678      [ twos complement         ]
      4282621618      [ unsigned integer        ]
      -2.6002345E38   [ IEEE 754 floating point ]
      ÿ# ²    [ four Latin-1 characters ]
      

If the language permits the misinterpretation of data then the program outcome depends on the choice of internal representation which would be a very bad.

Types give an interpretation of data. If the language is designed so that the compiler knows the interpretation of all data, then the type of the value does not need to be keep with the data at all. Futhermore, no runtime checks would be necessary to prevent the data from being misinterpreted by an operation. Such languages are called strongly typed.

U

UART -- Universal Asynchronous Receiver/Transmitter (q.v.)

Unicode Worldwide Character Standard
In 1987, Joe Becker and Lee Collins of Xerox PARC and Mark Davis of Apple began to develop a standard encoding of characters simpler and more consistent than ISO 10646. In January 1991, the Unicode consortium was incorporated.

universal polymorphism
a kind of polymorphism (q.v.) characterized by the uniform treatment of an infinite collection of data types. For example, the ML length function
      fun length (l) = if null l then 0 else 1 + length (tl l)
      
applies to lists of all types. As opposed to ad hoc polymorphism (q.v.) in which the same function name can refer to functions applicable to a small number of different types. See Cardelli and Wegner.

URL (Uniform Resource Locator)
A global method of naming files (documents, images, etc) accessible on the Internet. Defined in RFC 1838:Uniform Resource Locators, December 1994. RFC 1738 (alternative source) See also Names and Addresses

Universal Asynchronous Receiver/Transmitter (UART)
A UART chips is used where a serial bit stream needs to be converted to a parallel byte stream, and vice versa. A modem may have two. The PC's COM port will have yet another UART. The UARTs on the first PC COM ports are based on National Semiconductor Ns8250. This chip was limited to 9600 baud maximum rate. It was replaced with the 16450 which had the same architecture as the 8250 but has a higher maximum baud specification. Both of the chips only have a one byte buffer. The 16550 and 16650 have 16 and 32 byte buffers respectively.

UCS -- Universal Multiple-Octet Coded Character Set

ISO-10646

Unix

An interactive, time-sharing operating system invented in 1969 by Ken Thompson and Dennis Richie at AT&T Bell Labs for the PDP-7. The name is not an acronym, but suggests the earlier Multics project. The Unix operation system has evolved and has been implemented on a wide number of computer systems. Versions inlcude Version 7, BSD, USG Unix, Xenix, Ultrix, HPUX, AIX. For his work on the Unix project, William Joy won the Grace Murray Hopper Award in 1986.

UTF-8 -- UCS Transformation Format
An ASCII compatible encoding of the Unicode characters

Here is an example of the encoding with the octets in hex.

UCS-4           UTF-16        UTF-8

0000 0001;      0001;         01;
0000 007F;      007F;         7F;
0000 0080;      0080;         C2; 80;
0000 07FF;      07FF;         DF; BF;
0000 0800;      0800;         E0; A0; 80;
0000 FFFF;      FFFF;         EF; BF; BF;
0001 0000;      D800; DC00;   F0; 90; 80; 80;
0010 FFFF;      DBFF; DFFF;   F4; 8F; BF; BF;
001F FFFF;      FFFD;         F7; BF; BF; BF;
0020 0000;      FFFD;         F8; 88; 80; 80; 80;
03FF FFFF;      FFFD;         FB; BF; BF; BF; BF;
0400 0000;      FFFD;         FC; 84; 80; 80; 80; 80;
7FFF FFFF;      FFFD;         FD; BF; BF; BF; BF; BF;

UUNET Technologies
Founded in 1987 and located in Fairfax, Virginia, UUNET Technologies, Inc. is a commercial Internet service provider. In 1995 UUNET provides users with local dial-access in 150 cities in the U.S. and overseas. UUNET's network infrastructure includes a 45 Mbps Asynchronous Transfer Mode (ATM) network backbone.

V

vBNS--very high speed Backbone Network Services [another vBNS WWW site]
Created under a five year cooperative agreement between MCI and the National Science Foundation (NSF), the vBNS will enable scientists to explore routing technologies and protocols. The creation of the vBNS was announced in April 1995.

The vBNS uses the Internet Protocol (IP) over Asynchronous Transfer Mode (ATM) and Synchronous Optical Network (SONET) with network speeds at 155 Mbps and eventually 622 Mbps.

The vBNS connects the five HPCC centers and will be accessible to other networks through four network access points in New York, San Francisco, Chicago and Washington, D.C. (cf the network map).

VisiCalc
Thie first spreadsheet program it was written for the Apple II. Dan Bricklin designed the program, but his friend Bob Frankston to wrote the actual computer code. VisiCalc went for sale in October, 1979, selling for $100.
von Neumann, John (1903-1957)

child prodigy, mathematician, involved with the Los Alamos National Laboratory (and the Manhattan Project) and the Institute for Advanced Studies (IAS). He is credited with conceiving the notion of the stored-program computer.

von Neuman computer
In 1944, John von Neumann was attracted to the ENIAC [q.v.] project. The group wanted to improve the way programs were entered and discussed storing programs as numbers; von Neumann helped crystallize the ideas and wrote a memo proposing a stored-program computer called EDVAC (Electronic Discrecte Variable Automatic Computer) [q.v.]. Herman Goldstine distributed the memo and put von Neumann's name on it, much to the dismay of Eckert and Mauchly, whose names were omitted. This memo has served as the basis for the commonly used term von Neumann computer.
From Hennessy and Patterson, Computer Organization.

X

X Consortium

X Consortium, Inc. is a not-for-profit consortium of sixty members worldwide. Founded in 1993 as the successor to the MIT X Consortium, it developed user interface standards and graphics technology. It is headquartered in Cambridge, Massachusetts.

In 1995, the X Consortium was named contractor for the next release of CDE and Motif. In 1996 it announced that responsibility for the X Window System would be transfered to The Open Group.

XML
The XML 1.0 standard was approved and published by the World Wide Web Consortium (W3C) on February 10, 1998.

X Window System

A platform-independent windowing system developed as part of the Athena project at MIT and later under the auspices of the X Consortium In March 1996 the X Consortium released the final version of X11, version 6.1. The X Window System is evolving into Broadway, an initiative for creating and accessing interactive applications in the World Wide Web.

xanim

a program capable of playing AVI, FLI, MOV, and MPEG movies on most common UNIX platforms including Linux.

X-Win32 by StarNet
Run X Windows over a PPP conection to a system running X applications on a system running Windows 95 or Window NT.

W

WAIS -- wide area information service (pronounced "wayz")
A distributed text-searching system developed by Thinking Machines. Clients: xwais, swais (line-oriented). Servers: freeWAIS (by CNIDR). Commercially developed by WAIS, Inc. which is now part of AOL Productions, Inc.

Whirlwind
The MIT Whirlwind was completed in 1951 by Jay Forrester and seen by the public on Edward R. Murrow's television series "See it now."

widget

Wilkes, Maurice Vincent (1913-)
Worked in England on the EDSAC computer. Awarded the second Turing award in 1967. Wrote Memoirs of a computer pioneer, 1985.

window manager

workstation
A general-purpose computer usually dedicated to single-user. Generally workstations are more expensive and more powerful than personal computers that are often found in the home and small businesses. Workstations are often used in engineering applications requiring better performance. For example, Sun Mircosystem's SPARCclassic Workstation and SGI's Indy
WWW--World-Wide Web
Conceived by Tim Berners-Lee in 1989 at CERN to share scientific data over the Internet

World-Wide Web Consortium
An industry consortium (like the X Consortium) run by the Laboratory for Computer Science at the Massachusetts Institute of Technology beginning September 1994. Tim Berners-Lee is director. The consortium is also "hosted" by INRIA and funded by the European Commission through the Webcore project. The W3 Consortium exists to develop common standards for the evolution of the World-Wide Web.

WWW Server
A WWW server, like the ftp daemon or telnet daemon, is a program which responds to an incoming TCP connection and provides a service to the caller. Register Servers is a list of all WWW servers in the world.

WN -- an HTTP server
WN is a server for the Hypertext Transfer Protocol (HTTP). It provides full text searching, indexing, conditionally served text, parsed documents, among others. By adding simple HTML comments to documents and marking those documents to be "parsed" by the server, the maintainer can arrange that different sections or entirely different documents are sent to clients, based on such things as the clients domain name, IP address, browser type, browser "Accept" header, "Cookie header", etc. WN runs on a wide variety of UNIX platforms and is freely available.

Y

yahoo
a boorish, or stupid person From the race of beings in Gulliver's Travels by Jonathan Swift.

Yahoo! Corporation
David Filo and Jerry Yang, Ph.D. candidates in Electrical Engineering at Stanford University, started their guide in April 1994 as a way to keep track of their personal interests on the Internet.

Z

Z39.50
A draft ANSI standard for requesting bibliographic information that has been under development for a long time. The WAIS system (although not restricted to bibliographic information) is one of the first systems to be based on the Z39.50 standard.

Zero Insertion Force (ZIF)
A kind of socket for integrated circuits. A ZIF socket can be opened and closed by means of a lever or screw. When open, there the chip may be placed in the socket without any pressure at all, the socket is then closed, causing its contacts to grip the pins of the chip. Such sockets are used where chips must be inserted and removed frequently, such as in test equipment. They are more expensive and usually take up more space than conventional IC sockets.
From FOLDOC.
ZIF -- Zero Insertion Force (q.v.)

Zuse, Konrad (1910-1995)
German computing pioneer born June 22, 1910 in Berlin and died December 18, 1995 in Hünfeld, Germany. See also Konrad Zuse, Konrad Zuse

Ryan Stansifer <ryan@cs.fit.edu>
File location: http://www.cs.fit.edu/~ryan/glossary.html
Last modified: Thu Apr 8 10:57:25 EDT 1999