computer

computer
computerlike, adj.
/keuhm pyooh"teuhr/, n.
1. Also called processor. an electronic device designed to accept data, perform prescribed mathematical and logical operations at high speed, and display the results of these operations. Cf. analog computer, digital computer.
2. a person who computes; computist.
[1640-50; COMPUTE + -ER1; cf. MF computeur]

* * *

I
Programmable machine that can store, retrieve, and process data.

Today's computers have at least one CPU that performs most calculations and includes a main memory, a control unit, and an arithmetic logic unit. Increasingly, personal computers contain specialized graphic processors, with dedicated memory, for handling the computations needed to display complex graphics, such as for three-dimensional simulations and games. Auxiliary data storage is usually provided by an internal hard disk and may be supplemented by other media such as floppy disks or CD-ROMs. Peripheral equipment includes input devices (e.g., keyboard, mouse) and output devices (e.g., monitor, printer), as well as the circuitry and cabling that connect all the components. Generations of computers are characterized by their technology. First-generation digital computers, developed mostly in the U.S. after World War II, used vacuum tubes and were enormous. The second generation, introduced с 1960, used transistors and were the first successful commercial computers. Third-generation computers (late 1960s and 1970s) were characterized by miniaturization of components and use of integrated circuits. The microprocessor chip, introduced in 1974, defines fourth-generation computers.
II
(as used in expressions)
computer aided software engineering
Electronic Numerical Integrator and Computer.
Small Computer System Interface
computer generated images CGI
computer assisted instruction
computer integrated manufacturing
printer computer
program computer
simulation computer

* * *

Introduction
 device for processing, storing, and displaying information.

      Computer once meant a person who did computations, but now the term almost universally refers to automated electronic machinery. The first section of this article focuses on modern digital electronic computers and their design, constituent parts, and applications. The second section covers the history of computing. For details on computer architecture, software, and theory, see computer science.

Computing basics
      The first computers were used primarily for numerical calculations. However, as any information can be numerically encoded, people soon realized that computers are capable of general-purpose information processing. Their capacity to handle large amounts of data has extended the range and accuracy of weather forecasting. Their speed has allowed them to make decisions about routing telephone connections through a network and to control mechanical systems such as automobiles, nuclear reactors, and robotic surgical tools. They are also cheap enough to be embedded in everyday appliances and to make clothes dryers and rice cookers “smart.” Computers have allowed us to pose and answer questions that could not be pursued before. These questions might be about DNA sequences in genes, patterns of activity in a consumer market, or all the uses of a word in texts that have been stored in a database. Increasingly, computers can also learn and adapt as they operate.

      Computers also have limitations, some of which are theoretical. For example, there are undecidable propositions whose truth cannot be determined within a given set of rules, such as the logical structure of a computer. Because no universal algorithmic (algorithm) method can exist to identify such propositions, a computer asked to obtain the truth of such a proposition will (unless forcibly interrupted) continue indefinitely—a condition known as the “halting problem.” (See Turing machine.) Other limitations reflect current technology. Human minds are skilled at recognizing spatial patterns—easily distinguishing among human faces, for instance—but this is a difficult task for computers, which must process information sequentially, rather than grasping details overall at a glance. Another problematic area for computers involves natural language interactions. Because so much common knowledge and contextual information is assumed in ordinary human communication, researchers have yet to solve the problem of providing relevant information to general-purpose natural language programs.

Analog computers (analog computer)
      Analog computers use continuous physical magnitudes to represent quantitative information. At first they represented quantities with mechanical components (see differential analyzer and integrator), but after World War II voltages were used; by the 1960s digital computers had largely replaced them. Nonetheless, analog computers, and some hybrid digital-analog systems, continued in use through the 1960s in tasks such as aircraft and spaceflight simulation.

      One advantage of analog computation is that it may be relatively simple to design and build an analog computer to solve a single problem. Another advantage is that analog computers can frequently represent and solve a problem in “real time”; that is, the computation proceeds at the same rate as the system being modeled by it. Their main disadvantages are that analog representations are limited in precision—typically a few decimal places but fewer in complex mechanisms—and general-purpose devices are expensive and not easily programmed.

Digital computers (digital computer)
      In contrast to analog computers, digital computers represent information in discrete form, generally as sequences of 0s and 1s (binary digits, or bits). The modern era of digital computers began in the late 1930s and early 1940s in the United States, Britain, and Germany. The first devices used switches operated by electromagnets (relays). Their programs were stored on punched paper tape or cards, and they had limited internal data storage. For historical developments, see the section Invention of the modern computer (computer).

Mainframe computer
      During the 1950s and '60s, Unisys (maker of the UNIVAC computer), International Business Machines Corporation (IBM), and other companies made large, expensive computers of increasing power. They were used by major corporations and government research laboratories, typically as the sole computer in the organization. In 1959 the IBM 1401 computer rented for $8,000 per month (early IBM machines were almost always leased rather than sold), and in 1964 the largest IBM S/360 computer cost several million dollars.

      These computers came to be called mainframes, though the term did not become common until smaller computers were built. Mainframe computers were characterized by having (for their time) large storage capabilities, fast components, and powerful computational abilities. They were highly reliable, and, because they frequently served vital needs in an organization, they were sometimes designed with redundant components that let them survive partial failures. Because they were complex systems, they were operated by a staff of systems programmers, who alone had access to the computer. Other users submitted “batch jobs” to be run one at a time on the mainframe.

      Such systems remain important today, though they are no longer the sole, or even primary, central computing resource of an organization, which will typically have hundreds or thousands of personal computers (personal computer) (PCs). Mainframes now provide high-capacity data storage for Internet servers, or, through time-sharing techniques, they allow hundreds or thousands of users to run programs simultaneously. Because of their current roles, these computers are now called servers rather than mainframes.

      The most powerful computers of the day have typically been called supercomputers (supercomputer). They have historically been very expensive and their use limited to high-priority computations for government-sponsored research, such as nuclear simulations and weather modeling. Today many of the computational techniques of early supercomputers are in common use in PCs. On the other hand, the design of costly, special-purpose processors for supercomputers has been supplanted by the use of large arrays of commodity processors (from several dozen to over 8,000) operating in parallel over a high-speed communications network.

      Although minicomputers date to the early 1950s, the term was introduced in the mid-1960s. Relatively small and inexpensive, minicomputers were typically used in a single department of an organization and often dedicated to one task or shared by a small group. Minicomputers generally had limited computational power, but they had excellent compatibility with various laboratory and industrial devices for collecting and inputting data.

      One of the most important manufacturers of minicomputers was Digital Equipment Corporation (DEC) with its Programmed Data Processor (PDP). In 1960 DEC's PDP-1 sold for $120,000. Five years later its PDP-8 cost $18,000 and became the first widely used minicomputer, with more than 50,000 sold. The DEC PDP-11, introduced in 1970, came in a variety of models, small and cheap enough to control a single manufacturing process and large enough for shared use in university computer centres; more than 650,000 were sold. However, the microcomputer overtook this market in the 1980s.

 A microcomputer is a small computer (see figure—>) built around a microprocessor integrated circuit, or chip. Whereas the early minicomputers replaced vacuum tubes (electron tube) with discrete transistors (transistor), microcomputers (and later minicomputers as well) used microprocessors that integrated thousands or millions of transistors on a single chip. In 1971 the Intel Corporation produced the first microprocessor, the Intel 4004, which was powerful enough to function as a computer although it was produced for use in a Japanese-made calculator. In 1975 the first personal computer, the Altair, used a successor chip, the Intel 8080 microprocessor. Like minicomputers, early microcomputers had relatively limited storage and data-handling capabilities, but these have grown as storage technology has improved alongside processing power.

      In the 1980s it was common to distinguish between microprocessor-based scientific workstations (workstation) and personal computers. The former used the most powerful microprocessors available and had high-performance colour graphics capabilities costing thousands of dollars. They were used by scientists for computation and data visualization and by engineers for computer-aided engineering. Today the distinction between workstation and PC has virtually vanished, with PCs having the power and display capability of workstations.

Embedded processors (embedded processor)
      Another class of computer is the embedded processor. These are small computers that use simple microprocessors to control electrical and mechanical functions. They generally do not have to do elaborate computations or be extremely fast, nor do they have to have great “input-output” capability, and so they can be inexpensive. Embedded processors help to control aircraft and industrial automation, and they are common in automobiles and in both large and small household appliances. One particular type, the digital signal processor (DSP), has become as prevalent as the microprocessor. DSPs are used in wireless telephones, digital telephone and cable modems, and some stereo equipment.

Computer hardware
      The physical elements of a computer, its hardware, are generally divided into the central processing unit (CPU), main memory (or random-access memory, RAM), and peripherals (input/output device). The last class encompasses all sorts of input and output (I/O) devices: keyboard, display monitor, printer, disk drives, network connections, scanners, and more.

 The CPU and RAM are integrated circuits (integrated circuit) (ICs)—small silicon wafers, or chips, that contain thousands or millions of transistors that function as electrical switches. In 1965 Gordon Moore (Moore, Gordon E.), one of the founders of Intel, stated what has become known as Moore's law: the number of transistors on a chip doubles about every 18 months. (See figure—>.) Moore suggested that financial constraints would soon cause his law to break down, but it has been remarkably accurate for far longer than he first envisioned. It now appears that technical constraints may finally invalidate Moore's law, since sometime between 2010 and 2020 transistors would have to consist of only a few atoms each, at which point the laws of quantum physics imply that they would cease to function reliably.

      The CPU provides the circuits that implement the computer's instruction set—its machine language. It is composed of an arithmetic-logic unit (ALU) and control circuits. The ALU carries out basic arithmetic and logic operations, and the control section determines the sequence of operations, including branch instructions that transfer control from one part of a program to another. Although the main memory was once considered part of the CPU, today it is regarded as separate. The boundaries shift, however, and CPU chips now also contain some high-speed cache memory where data and instructions are temporarily stored for fast access.

      The ALU has circuits that add, subtract, multiply, and divide two arithmetic values, as well as circuits for logic operations such as AND and OR (where a 1 is interpreted as true and a 0 as false, so that, for instance, 1 AND 0 = 0; see Boolean algebra). The ALU has several to more than a hundred registers that temporarily hold results of its computations for further arithmetic operations or for transfer to main memory.

      The circuits in the CPU control section provide branch instructions, which make elementary decisions about what instruction to execute next. For example, a branch instruction might be “If the result of the last ALU operation is negative, jump to location A in the program; otherwise, continue with the following instruction.” Such instructions allow “if-then-else” decisions in a program and execution of a sequence of instructions, such as a “while-loop” that repeatedly does some set of instructions while some condition is met. A related instruction is the subroutine call, which transfers execution to a subprogram and then, after the subprogram finishes, returns to the main program where it left off.

      In a stored-program computer, programs and data in memory are indistinguishable. Both are bit patterns—strings of 0s and 1s—that may be interpreted either as data or as program instructions, and both are fetched from memory by the CPU. The CPU has a program counter that holds the memory address (location) of the next instruction to be executed. The basic operation of the CPU is the “fetch-decode-execute” cycle:
● Fetch the instruction from the address held in the program counter, and store it in a register.
● Decode the instruction. Parts of it specify the operation to be done, and parts specify the data on which it is to operate. These may be in CPU registers or in memory locations. If it is a branch instruction, part of it will contain the memory address of the next instruction to execute once the branch condition is satisfied.
● Fetch the operands, if any.
● Execute the operation if it is an ALU operation.
● Store the result (in a register or in memory), if there is one.
● Update the program counter to hold the next instruction location, which is either the next memory location or the address specified by a branch instruction.

      At the end of these steps the cycle is ready to repeat, and it continues until a special halt instruction stops execution.

      Steps of this cycle and all internal CPU operations are regulated by a clock that oscillates at a high frequency (now typically measured in gigahertz, or billions of cycles per second). Another factor that affects performance is the “word” size—the number of bits that are fetched at once from memory and on which CPU instructions operate. Digital words now consist of 32 or 64 bits, though sizes from 8 to 128 bits are seen.

      Processing instructions one at a time, or serially, often creates a bottleneck because many program instructions may be ready and waiting for execution. Since the early 1980s, CPU design has followed a style originally called reduced-instruction-set computing ( RISC). This design minimizes the transfer of data between memory and CPU (all ALU operations are done only on data in CPU registers) and calls for simple instructions that can execute very quickly. As the number of transistors on a chip has grown, the RISC design requires a relatively small portion of the CPU chip to be devoted to the basic instruction set. The remainder of the chip can then be used to speed CPU operations by providing circuits that let several instructions execute simultaneously, or in parallel.

      There are two major kinds of instruction-level parallelism (ILP) in the CPU, both first used in early supercomputers. One is the pipeline, which allows the fetch-decode-execute cycle to have several instructions under way at once. While one instruction is being executed, another can obtain its operands, a third can be decoded, and a fourth can be fetched from memory. If each of these operations requires the same time, a new instruction can enter the pipeline at each phase and (for example) five instructions can be completed in the time that it would take to complete one without a pipeline. The other sort of ILP is to have multiple execution units in the CPU—duplicate arithmetic circuits, in particular, as well as specialized circuits for graphics instructions or for floating-point calculations (arithmetic operations involving noninteger numbers, such as 3.27). With this “superscalar” design, several instructions can execute at once.

      Both forms of ILP face complications. A branch instruction might render preloaded instructions in the pipeline useless if they entered it before the branch jumped to a new part of the program. Also, superscalar execution must determine whether an arithmetic operation depends on the result of another operation, since they cannot be executed simultaneously. CPUs now have additional circuits to predict whether a branch will be taken and to analyze instructional dependencies. These have become highly sophisticated and can frequently rearrange instructions to execute more of them in parallel.

      The earliest forms of computer main memory were mercury delay lines, which were tubes of mercury that stored data as ultrasonic waves, and cathode-ray tubes, which stored data as charges on the tubes' screens. The magnetic drum, invented about 1948, used an iron oxide coating on a rotating drum to store data and programs as magnetic patterns.

      In a binary computer any bistable device (something that can be placed in either of two states) can represent the two possible bit values of 0 and 1 and can thus serve as computer memory. Magnetic-core memory (magnetic-core storage), the first relatively cheap RAM device, appeared in 1952. It was composed of tiny, doughnut-shaped ferrite magnets threaded on the intersection points of a two-dimensional wire grid. These wires carried currents to change the direction of each core's magnetization, while a third wire threaded through the doughnut detected its magnetic orientation.

      The first integrated circuit (IC) memory chip appeared in 1971. IC memory stores a bit in a transistor-capacitor combination. The capacitor (capacitance) holds a charge to represent a 1 and no charge for a 0; the transistor switches it between these two states. Because a capacitor charge gradually decays, IC memory is dynamic RAM (DRAM), which must have its stored values refreshed periodically (every 20 milliseconds or so). There is also static RAM (SRAM), which does not have to be refreshed. Although faster than DRAM, SRAM uses more transistors and is thus more costly; it is used primarily for CPU internal registers and cache memory.

      In addition to main memory, computers generally have special video memory (VRAM) to hold graphical images, called bit-maps (raster graphics), for the computer display. This memory is often dual-ported—a new image can be stored in it at the same time that its current data is being read and displayed.

      It takes time to specify an address in a memory chip, and, since memory is slower than a CPU, there is an advantage to memory that can transfer a series of words rapidly once the first address is specified. One such design is known as synchronous DRAM (SDRAM), which became widely used by 2001.

      Nonetheless, data transfer through the “bus”—the set of wires that connect the CPU to memory and peripheral devices—is a bottleneck. For that reason, CPU chips now contain cache memory—a small amount of fast SRAM. The cache holds copies of data from blocks of main memory. A well-designed cache allows up to 85–90 percent of memory references to be done from it in typical programs, giving a several-fold speedup in data access.

      The time between two memory reads or writes (cycle time) was about 17 microseconds (millionths of a second) for early core memory and about 1 microsecond for core in the early 1970s. The first DRAM had a cycle time of about half a microsecond, or 500 nanoseconds (billionths of a second), and today it is 20 nanoseconds or less. An equally important measure is the cost per bit of memory. The first DRAM stored 128 bytes (1 byte = 8 bits) and cost about $10, or $80,000 per megabyte (millions of bytes). In 2001 DRAM could be purchased for less than $0.25 per megabyte. This vast decline in cost made possible graphical user interfaces (graphical user interface) (GUIs), the display fonts that word processors use, and the manipulation and visualization of large masses of data by scientific computers.

      Secondary memory on a computer is storage for data and programs not in use at the moment. In addition to punched cards and paper tape, early computers also used magnetic tape for secondary storage. Tape is cheap, either on large reels or in small cassettes, but has the disadvantage that it must be read or written sequentially from one end to the other.

      IBM (International Business Machines Corporation) introduced the first magnetic disk, the RAMAC, in 1955; it held 5 megabytes and rented for $3,200 per month. Magnetic disks are platters coated with iron oxide, like tape and drums. An arm with a tiny wire coil, the read/write (R/W) head, moves radially over the disk, which is divided into concentric tracks composed of small arcs, or sectors, of data. Magnetized regions of the disk generate small currents in the coil as it passes, thereby allowing it to “read” a sector; similarly, a small current in the coil will induce a local magnetic change in the disk, thereby “writing” to a sector. The disk rotates rapidly (up to 15,000 rotations per minute), and so the R/W head can rapidly reach any sector on the disk.

 Early disks had large removable platters. In the 1970s IBM introduced sealed disks with fixed platters known as Winchester disks—perhaps because the first ones had two 30-megabyte platters, suggesting the Winchester 30-30 rifle. Not only was the sealed disk protected against dirt, the R/W head could also “fly” on a thin air film, very close to the platter. By putting the head closer to the platter, the region of oxide film that represented a single bit could be much smaller, thus increasing storage capacity. This basic technology is still used. (See figure—>.)

      Refinements have included putting multiple platters—10 or more—in a single disk drive, with a pair of R/W heads for the two surfaces of each platter in order to increase storage and data transfer rates. Even greater gains have resulted from improving control of the radial motion of the disk arm from track to track, resulting in denser distribution of data on the disk. By 2002 such densities had reached over 8,000 tracks per centimetre (20,000 tracks per inch), and a platter the diameter of a coin could hold over a gigabyte of data. In 2002 an 80-gigabyte disk cost about $200—only one ten-millionth of the 1955 cost and representing an annual decline of nearly 30 percent, similar to the decline in the price of main memory.

  optical storage devices— CD-ROM ( compact disc, read-only memory) and DVD-ROM (digital videodisc, or versatile disc)—appeared in the mid-1980s and '90s. They both represent bits as tiny pits in plastic, organized in a long spiral like a phonograph record, written and read with lasers. (See figure—>.) A CD-ROM can hold 2 gigabytes of data, but the inclusion of error-correcting codes (to correct for dust, small defects, and scratches) reduces the usable data to 650 megabytes. DVDs are denser, have smaller pits, and can hold 17 gigabytes with error correction.

      Optical storage devices are slower than magnetic disks, but they are well suited for making master copies of software or for multimedia (audio and video) files that are read sequentially. There are also writable and rewritable CD-ROMs (CD-R and CD-RW) and DVD-ROMs (DVD-R and DVD-RW) that can be used like magnetic tapes for inexpensive archiving and sharing of data.

      The decreasing cost of memory continues to make new uses possible. A single CD-ROM can store 100 million words, more than twice as many words as are contained in the printed Encyclopædia Britannica. A DVD can hold a feature-length motion picture. Nevertheless, even larger and faster storage systems, such as three-dimensional optical media, are being developed for handling data for computer simulations of nuclear reactions, astronomical data, and medical data, including X-ray images. Such applications typically require many terabytes (1 terabyte = 1,000 gigabytes) of storage, which can lead to further complications in indexing and retrieval.

David Hemmendinger

Peripherals (input/output device)
      Computer peripherals are devices used to input information and instructions into a computer for storage or processing and to output the processed data. In addition, devices that enable the transmission and reception of data between computers are often classified as peripherals.

Input devices
      A plethora of devices falls into the category of input peripheral. Typical examples include keyboards, mice, trackballs, pointing sticks, joysticks, digital tablets, touch pads, and scanners.

      Keyboards contain mechanical or electromechanical switches that change the flow of current through the keyboard when depressed. A microprocessor embedded in the keyboard interprets these changes and sends a signal to the computer. In addition to letter and number keys, most keyboards also include “function” and “control” keys that modify input or send special commands to the computer.

 Mechanical mice (mouse) and trackballs operate alike, using a rubber or rubber-coated ball that turns two shafts connected to a pair of encoders that measure the horizontal and vertical components of a user's movement, which are then translated into cursor movement on a computer monitor. Optical mice employ a light beam and camera lens to translate motion of the mouse into cursor movement. (See figure—>.)

      Pointing sticks, which are popular on many laptop systems, employ a technique that uses a pressure-sensitive resistor. As a user applies pressure to the stick, the resistor increases the flow of electricity, thereby signaling that movement has taken place. Most joysticks operate in a similar manner.

      Digital tablets and touch pads are similar in purpose and functionality. In both cases, input is taken from a flat pad that contains electrical sensors that detect the presence of either a special tablet pen or a user's finger, respectively.

      A scanner is somewhat akin to a photocopier. A light source illuminates the object to be scanned, and the varying amounts of reflected light are captured and measured by an analog-to-digital converter attached to light-sensitive diodes (diode). The diodes generate a pattern of binary digits that are stored in the computer as a graphical image.

Output devices
      Printers are a common example of output devices. New multifunction peripherals that integrate printing, scanning, and copying into a single device are also popular. Computer monitors are sometimes treated as peripherals. High-fidelity sound systems are another example of output devices often classified as computer peripherals. Manufacturers have announced devices that provide tactile feedback to the user—“force feedback” joysticks, for example. This highlights the complexity of classifying peripherals—a joystick with force feedback is truly both an input and an output peripheral.

  Early printers often used a process known as impact printing, in which a small number of pins were driven into a desired pattern by an electromagnetic printhead. As each pin was driven forward, it struck an inked ribbon and transferred a single dot the size of the pinhead to the paper. Multiple dots combined into a matrix to form characters and graphics, hence the name dot matrix. Another early print technology, daisy-wheel printers, made impressions of whole characters with a single blow of an electromagnetic printhead, similar to an electric typewriter. Laser printers have replaced such printers in most commercial settings. Laser printers employ a focused beam of light (see figure—>) to etch patterns of positively charged particles on the surface of a cylindrical drum made of negatively charged organic, photosensitive material. As the drum rotates, negatively charged toner particles adhere to the patterns etched by the laser and are transferred to the paper. Another, less expensive printing technology developed for the home and small businesses is inkjet printing (see figure—>). The majority of inkjet printers operate by ejecting extremely tiny droplets of ink to form characters in a matrix of dots—much like dot matrix printers.

      Computer display devices have been in use almost as long as computers themselves. Early computer displays employed the same cathode-ray tubes (CRTs) used in television and radar systems. The fundamental principle behind CRT displays is the emission of a controlled stream of electrons that strike light-emitting phosphors coating the inside of the screen. The screen itself is divided into multiple scan lines, each of which contains a number of pixels—the rough equivalent of dots in a dot matrix printer. The resolution of a monitor is determined by its pixel size. More recent liquid crystal displays (liquid crystal display) (LCDs) rely on liquid crystal cells that realign incoming polarized light. The realigned beams pass through a filter that permits only those beams with a particular alignment to pass. By controlling the liquid crystal cells with electrical charges, various colours or shades are made to appear on the screen.

Communication devices
      The most familiar example of a communication device is the common telephone modem (from modulator/demodulator). Modems modulate, or transform, a computer's digital message into an analog signal for transmission over standard telephone networks, and they demodulate the analog signal back into a digital message on reception. In practice, telephone network components limit analog data transmission to about 48 kilobits per second. Standard cable modems (cable modem) operate in a similar manner over cable television networks, which have a total transmission capacity of 30 to 40 megabits per second over each local neighbourhood “loop.” (Like Ethernet cards, cable modems are actually local area network devices, rather than true modems, and transmission performance deteriorates as more users share the loop.) Asymmetric digital subscriber line (ADSL) modems can be used for transmitting digital signals over a local dedicated telephone line, provided there is a telephone office nearby—in theory, within 5,500 metres (18,000 feet) but in practice about a third of that distance. ADSL is asymmetric because transmission rates differ to and from the subscriber: 8 megabits per second “downstream” to the subscriber and 1.5 megabits per second “upstream” from the subscriber to the service provider. In addition to devices for transmitting over telephone and cable wires, wireless communication devices exist for transmitting infrared, radiowave, and microwave signals.

Peripheral interfaces
      A variety of techniques have been employed in the design of interfaces to link computers and peripherals. An interface of this nature is often termed a bus. This nomenclature derives from the presence of many paths of electrical communication (e.g., wires) bundled or joined together in a single device. Multiple peripherals can be attached to a single bus—the peripherals need not be homogeneous. An example is the small computer systems interface (SCSI; pronounced “scuzzy”). This popular standard allows heterogeneous devices to communicate with a computer by sharing a single bus. Under the auspices of various national and international organizations, many such standards have been established by manufacturers and users of computers and peripherals.

      Buses can be loosely classified as serial or parallel. Parallel buses have a relatively large number of wires bundled together that enable data to be transferred in parallel. This increases the throughput, or rate of data transfer, between the peripheral and computer. SCSI buses are parallel buses. Examples of serial buses include the universal serial bus (USB) (USB). USB has an interesting feature in that the bus carries not only data to and from the peripheral but also electrical power. Examples of other peripheral integration schemes include integrated drive electronics (IDE) and enhanced integrated drive electronics (EIDE). Predating USB, these two schemes were designed initially to support greater flexibility in adapting hard disk drives to a variety of different computer makers.

William Morton Pottenger Ed.

Microprocessor integrated circuits (integrated circuit)
      Before integrated circuits (ICs) were invented, computers used circuits of individual transistors (transistor) and other electrical components—resistors (resistor), capacitors (capacitance), and diodes (diode)—soldered to a circuit board. In 1959 Jack Kilby (Kilby, Jack) at Texas Instruments Incorporated, and Robert Noyce (Noyce, Robert) at Fairchild Semiconductor Corporation filed patents for integrated circuits. Kilby found how to make all the circuit components out of germanium, the semiconductor material then commonly used for transistors. Noyce used silicon, which is now almost universal, and found a way to build the interconnecting wires as well as the components on a single silicon chip, thus eliminating all soldered connections except for those joining the IC to other components. Brief discussions of IC circuit design, fabrication, and some design issues follow. For a more extensive discussion, see semiconductor (semiconductor device) and integrated circuit.

      Today IC design starts with a circuit description written in a hardware-specification language (like a programming language (computer programming language)) or specified graphically with a digital design program. Computer simulation programs then test the design before it is approved. Another program translates the basic circuit layout into a multilayer network of electronic elements and wires.

      The IC itself is formed on a silicon wafer cut from a cylinder of pure silicon—now commonly 200–300 mm (8–12 inches) in diameter. Since more chips can be cut from a larger wafer, the material unit cost of a chip goes down with increasing wafer size. A photographic image of each layer of the circuit design is made, and photolithography is used to expose a corresponding circuit of “resist” that has been put on the wafer. The unwanted resist is washed off and the exposed material then etched. This process is repeated to form various layers, with silicon dioxide (glass) used as electrical insulation between layers.

      Between these production stages, the silicon is doped with carefully controlled amounts of impurities such as arsenic and boron. These create an excess and a deficiency, respectively, of electrons, thus creating regions with extra available negative charges (n-type) and positive “holes” (p-type). These adjacent doped regions form junction (p-n junction) transistors, with electrons (in the n-type regions) and holes (in the p-type regions) migrating through the silicon conducting electricity.

      Layers of metal or conducting polycrystalline silicon are also placed on the chip to provide interconnections between its transistors. When the fabrication is complete, a final layer of insulating glass is added, and the wafer is sawed into individual chips. Each chip is tested, and those that pass are mounted in a protective package with external contacts.

      The size of transistor elements continually decreases in order to pack more on a chip. In 2001 a transistor commonly had dimensions of 0.25 micron (or micrometre; 1 micron = 10−6 metre), and 0.1 micron was projected for 2006. This latter size would allow 200 million transistors to be placed on a chip (rather than about 40 million in 2001). Because the wavelength of visible light is too great for adequate resolution at such a small scale, ultraviolet photolithography techniques are being developed. As sizes decrease further, electron beam or X-ray techniques will become necessary. Each such advance requires new fabrication plants, costing several billion dollars apiece.

Power consumption
      The increasing speed and density of elements on chips have led to problems of power consumption and dissipation. Central processing units now typically dissipate about 50 watts of power—as much heat per square inch as an electric stove element generates—and require “heat sinks” and cooling fans or even water cooling systems. As CPU speeds increase, cryogenic (cryogenics) cooling systems may become necessary. Because storage battery technologies have not kept pace with power consumption in portable devices, there has been renewed interest in gallium arsenide (GaAs) chips. GaAs chips can run at higher speeds and consume less power than silicon chips. (GaAs chips are also more resistant to radiation, a factor in military and space applications.) Although GaAs chips have been used in supercomputers for their speed, the brittleness of GaAs has made it too costly for most ordinary applications. One promising idea is to bond a GaAs layer to a silicon substrate for easier handling. Nevertheless, GaAs is not yet in common use except in some high-frequency communication systems.

Future CPU designs
      Since the early 1990s, researchers have discussed two speculative but intriguing new approaches to computation—quantum computing (quantum computer) and molecular ( DNA) computing. Each offers the prospect of highly parallel computation and a way around the approaching physical constraints to Moore's law.

      According to quantum mechanics, an electron has a binary (two-valued) property known as “spin.” This suggests another way of representing a bit of information. While single-particle information storage is attractive, it would be difficult to manipulate. The fundamental idea of quantum computing, however, depends on another feature of quantum mechanics: that atomic-scale particles are in a “superposition” of all their possible states until an observation, or measurement, “collapses” their various possible states into one actual state. This means that if a system of particles—known as quantum bits, or qubits—can be “entangled” together, all the possible combinations of their states can be simultaneously used to perform a computation, at least in theory.

      Indeed, while a few algorithms have been devised for quantum computing, building useful quantum computers has been more difficult. This is because the qubits must maintain their coherence (quantum entanglement) with one another while preventing decoherence (interaction with the external environment). As of 2000, the largest entangled system built contained only seven qubits.

Molecular computing
      In 1994 Leonard Adleman, a mathematician at the University of Southern California, demonstrated the first DNA computer by solving a simple example of what is known as the traveling salesman problem. A traveling salesman problem—or, more generally, certain types of network problems in graph theory—asks for a route (or the shortest route) that begins at a certain city, or “node,” and travels to each of the other nodes exactly once. Digital computers, and sufficiently persistent humans, can solve for small networks by simply listing all the possible routes and comparing them, but as the number of nodes increases, the number of possible routes grows exponentially and soon (beyond about 50 nodes) overwhelms the fastest supercomputer. While digital computers are generally constrained to performing calculations serially, Adleman realized that he could take advantage of DNA molecules to perform a “massively parallel” calculation. He began by selecting different nucleotide sequences to represent each city and every direct route between two cities. He then made trillions of copies of each of these nucleotide strands and mixed them in a test tube. In less than a second he had the answer, albeit along with some hundred trillion spurious answers. Using basic recombinant DNA laboratory techniques, Adleman then took one week to isolate the answer—culling first molecules that did not start and end with the proper cities (nucleotide sequences), then those that did not contain the proper number of cities, and finally those that did not contain each city exactly once.

      Although Adleman's network contained only seven nodes—an extremely trivial problem for digital computers—it was the first demonstration of the feasibility of DNA computing. Since then Erik Winfree, a computer scientist at the California Institute of Technology, has demonstrated that nonbiologic DNA variants (such as branched DNA) can be adapted to store and process information. DNA and quantum computing remain intriguing possibilities that, even if they prove impractical, may lead to further advances in the hardware of future computers.

Operating systems (operating system)
Role of operating systems
      Operating systems manage a computer's resources—memory, peripheral devices, and even CPU access—and provide a battery of services to the user's programs. UNIX, first developed for minicomputers and now widely used on both PCs and mainframes, is one example; Linux (a version of UNIX), Microsoft Corporation's Windows XP, and Apple Computer (Apple Inc.)'s OS X are others.

      One may think of an operating system as a set of concentric shells. At the centre is the bare processor, surrounded by layers of operating system routines to manage input/output (I/O), memory access, multiple processes, and communication among processes. User programs are located in the outermost layers. Each layer insulates its inner layer from direct access, while providing services to its outer layer. This architecture frees outer layers from having to know all the details of lower-level operations, while protecting inner layers and their essential services from interference.

      Early computers had no operating system. A user loaded a program from paper tape by employing switches to specify its memory address, to start loading, and to run the program. When the program finished, the computer halted. The programmer had to have knowledge of every computer detail, such as how much memory it had and the characteristics of I/O devices used by the program.

      It was quickly realized that this was an inefficient use of resources, particularly as the CPU was largely idle while waiting for relatively slow I/O devices to finish tasks such as reading and writing data. If instead several programs could be loaded at once and coordinated to interleave their steps of computation and I/O, more work could be done. The earliest operating systems were small supervisor programs that did just that: they coordinated several programs, accepting commands from the operator, and provided them all with basic I/O operations. These were known as multiprogrammed systems.

      A multiprogrammed system must schedule its programs according to some priority rule, such as “shortest jobs first.” It must protect them from mutual interference to prevent an addressing error in a program from corrupting the data or code of another. It must ensure noninterference during I/O so that output from several programs does not get commingled or input misdirected. It might also have to record the CPU time of each job for billing purposes.

Modern types of operating systems

Multiuser systems (time-sharing)
      An extension of multiprogramming systems was developed in the 1960s, known variously as multiuser or time-sharing systems. (For a history of this development, see the section Time-sharing from Project MAC to UNIX (computer).) Time-sharing allows many people to interact with a computer at once, each getting a small portion of the CPU's time. If the CPU is fast enough, it will appear to be dedicated to each user, particularly as a computer can perform many functions while waiting for each user to finish typing the latest commands.

      Multiuser operating systems employ a technique known as multiprocessing, or multitasking (as do most single-user systems today), in which even a single program may consist of many separate computational activities, called processes. The system must keep track of active and queued processes, when each process must access secondary memory to retrieve and store its code and data, and the allocation of other resources, such as peripheral devices.

      Since main memory was very limited, early operating systems had to be as small as possible to leave room for other programs. To overcome some of this limitation, operating systems use virtual memory, one of many computing techniques developed during the late 1950s under the direction of Tom Kilburn (Kilburn, Tom) at the University of Manchester, England. Virtual memory gives each process a large address space (memory that it may use), often much larger than the actual main memory. This address space resides in secondary memory (such as tape or disks), from which portions are copied into main memory as needed, updated as necessary, and returned when a process is no longer active. Even with virtual memory, however, some “kernel” of the operating system has to remain in main memory. Early UNIX kernels occupied tens of kilobytes; today they occupy more than a megabyte, and PC operating systems are comparable, largely because of the declining cost of main memory.

      Operating systems have to maintain virtual memory tables to keep track of where each process's address space resides, and modern CPUs provide special registers to make this more efficient. Indeed, much of an operating system consists of tables: tables of processes, of files and their locations (directories), of resources used by each process, and so on. There are also tables of user accounts and passwords that help control access to the user's files and protect them against accidental or malicious interference.

Thin systems
      While minimizing the memory requirements of operating systems for standard computers has been important, it has been absolutely essential for small, inexpensive, specialized devices such as personal digital assistants (PDAs), “smart” cellular telephones, portable devices for listening to compressed music files, and Internet kiosks. Such devices must be highly reliable, fast, and secure against break-ins or corruption—a cellular telephone that “freezes” in the middle of calls would not be tolerated. One might argue that these traits should characterize any operating system, but PC users seem to have become quite tolerant of frequent operating system failures that require restarts.

Reactive systems
      Still more limited are embedded, or real-time, systems. These are small systems that run the control processors embedded in machinery from factory production lines to home appliances. They interact with their environment, taking in data from sensors and making appropriate responses. Embedded systems are known as “hard” real-time systems if they must guarantee schedules that handle all events even in a worst case and “soft” if missed deadlines are not fatal. An aircraft control system is a hard real-time system, as a single flight error might be fatal. An airline reservation system, on the other hand, is a soft real-time system, since a missed booking is rarely catastrophic.

      Many of the features of modern CPUs and operating systems are inappropriate for hard real-time systems. For example, pipelines and superscalar multiple execution units give high performance at the expense of occasional delays when a branch prediction fails and a pipeline is filled with unneeded instructions. Likewise, virtual memory and caches give good memory-access times on the average, but sometimes they are slow. Such variability is inimical to meeting demanding real-time schedules, and so embedded processors and their operating systems must generally be relatively simple.

Operating system design approaches
      Operating systems may be proprietary or open. Mainframe systems have largely been proprietary, supplied by the computer manufacturer. In the PC domain, Microsoft offers its proprietary Windows systems, Apple has supplied Mac OS for its line of Macintosh computers, and there are few other choices. The best-known open system (open source) has been UNIX, originally developed by Bell Laboratories and supplied freely to universities. In its Linux variant it is available for a wide range of PCs, workstations, and, most recently, IBM mainframes.

      Open-source software is copyrighted, but its author grants free use, often including the right to modify it provided that use of the new version is not restricted. Linux is protected by the Free Software Foundation's “GNU General Public License,” like all the other software in the extensive GNU project, and this protection permits users to modify Linux and even to sell copies, provided that this right of free use is preserved in the copies.

      One consequence of the right of free use is that numerous authors have contributed to the GNU-Linux work, adding many valuable components to the basic system. Although quality control is managed voluntarily and some have predicted that Linux would not survive heavy commercial use, it has been remarkably successful and seems well on its way to becoming the version of UNIX on mainframes and on PCs used as Internet servers.

      There are other variants of the UNIX system; some are proprietary, though most are now freely used, at least noncommercially. They all provide some type of graphical user interface. Although Mac OS has been proprietary, its current version, Mac OS X, is built on UNIX.

      Proprietary systems such as Microsoft's Windows 98, 2000, and XP provide highly integrated systems. All operating systems provide file directory services, for example, but a Microsoft system might use the same window display for a directory as for a World Wide Web browser. Such an integrated approach makes it more difficult for nonproprietary software to use Windows capabilities, a feature that has been an issue in antitrust lawsuits against Microsoft.

Networking (computer network)
      Computer communication may occur through wires, optical fibres, or radio transmissions. Wired networks may use shielded coaxial cable, similar to the wire connecting a television to a videocassette recorder or an antenna. They can also use simpler unshielded wiring with modular connectors similar to telephone wires. Optical fibres can carry more signals than wires; they are often used for linking buildings on a college campus or corporate site and increasingly for longer distances as telephone companies update their networks. Microwave radio also carries computer network signals, generally as part of long-distance telephone systems. Low-power microwave radio is becoming common for wireless networks within a building.

Local area networks (local area network)
 Local area networks (LANs) connect computers within a building or small group of buildings. A LAN, as shown in the figure—>, may be configured as (1) a bus, a main channel to which nodes or secondary channels are connected in a branching structure, (2) a ring, in which each computer is connected to two neighbouring computers to form a closed circuit, or (3) a star, in which each computer is linked directly to a central computer and only indirectly to one another. Each of these has advantages, though the bus configuration has become the most common.

      Even if only two computers are connected, they must follow rules, or protocols, to communicate. For example, one might signal “ready to send” and wait for the other to signal “ready to receive.” When many computers share a network, the protocol might include a rule “talk only when it is your turn” or “do not talk when anyone else is talking.” Protocols must also be designed to handle network errors.

      The most common LAN design since the mid-1970s has been the bus-connected Ethernet, originally developed at Xerox PARC. Every computer or other device on an Ethernet has a unique 48-bit address. Any computer that wants to transmit listens for a carrier signal that indicates that a transmission is under way. If it detects none, it starts transmitting, sending the address of the recipient at the start of its transmission. Every system on the network receives each message but ignores those not addressed to it. While a system is transmitting, it also listens, and if it detects a simultaneous transmission, it stops, waits for a random time, and retries. The random time delay before retrying reduces the probability that they will collide again. This scheme is known as carrier sense multiple access with collision detection (CSMA/CD). It works very well until a network is moderately heavily loaded, and then it degrades as collisions become more frequent.

      The first Ethernet had a capacity of about 2 megabits per second, and today 10- and 100-megabit-per-second Ethernet is common, with gigabit-per-second Ethernet also in use. Ethernet transceivers (transmitter-receivers) for PCs are inexpensive and easily installed.

      A recent standard for wireless Ethernet, known as WiFi, is becoming common for small office and home networks. Using frequencies from 2.4 to 5 gigahertz (GHz), such networks can transfer data at rates from 11 to 54 megabits per second. Early in 2002 another Ethernet-like standard was released. Known as HomePlug, the first version could transmit data at about 8 megabits per second through a building's existing electrical power infrastructure.

Wide area networks (wide area network)
      Wide area networks (WANs) span cities, countries, and the globe, generally using telephone lines and satellite links. The Internet connects multiple WANs; as its name suggests, it is a network of networks. Its success stems from early support by the U.S. Department of Defense, which developed its precursor, ARPANET, to let researchers communicate readily and share computer resources. Its success is also due to its flexible communication technique. The emergence of the Internet in the 1990s as not only a communication medium but also one of the principal focuses of computer use may be the most significant development in computing in the past several decades. For more on the history and technical details of Internet communication protocols, see Internet.

Computer software
      Software denotes programs that run on computers. John Tukey, a statistician at Princeton University and Bell Laboratories, is generally credited with introducing the term in 1958 (as well as coining the word bit for binary digit). Initially software referred primarily to what is now called system software—an operating system and the utility programs that come with it, such as those to compile (translate) programs into machine code and load them for execution. This software came with a computer when it was bought or leased. In 1969 IBM decided to “unbundle” its software and sell it separately, and software soon became a major income source for manufacturers as well as for dedicated software firms.

Business and personal software
      Business software generally must handle large amounts of data but relatively little computation, although that has changed somewhat in recent years. Office software typically includes word processors (word processing), spreadsheets, database programs, and tools for designing public presentations.

      A spreadsheet is a type of accounting program. Unlike specialized accounting programs (e.g., payroll and office records), an important function of spreadsheets is their ability to explore “What if?” scenarios. A spreadsheet not only holds tables of data but also defines relationships among their rows and columns. For example, if the profit on a product is defined in terms of various costs—materials, manufacturing, and shipping—it is easy to ask “What if we use cheaper materials that require more manufacturing expense?”

      A database is an organized collection of data, or records. Databases organize information to answer questions such as “What companies in the Southwest bought more than 100 of our products last year?” or “Which products made by Acme Manufacturing are in low supply?” Such software is often integrated so that a database report or spreadsheet table can be added to a document composed with a word processor, frequently with illustrative graphs. Today even the most trivial data can effortlessly be glorified by presenting it in a polychromatic bar chart with three-dimensional shading.

Scientific and engineering software
      Scientific software is typically used to solve differential equations (differential equation). (Differential equations are used to describe continuous actions or processes that depend on some other factors.) Although some differential equations have relatively simple mathematical solutions, exact solutions of many differential equations are very difficult to obtain. Computers, however, can be used to obtain useful approximate solutions, particularly when a problem is split into simpler spatial or temporal parts. Nevertheless, large-scale problems often require parallel computation on supercomputers or clusters of small computers that share the work.

      There are numerous standard libraries of equation-solving software—some commercial, some distributed by national organizations in several countries. Another kind of software package does symbolic mathematics, obtaining exact solutions by algebraic manipulations. Two of the most widely used symbolic packages are Mathematica and Maple.

      Scientific visualization software couples high-performance graphics with the output of equation solvers to yield vivid displays of models of physical systems. As with spreadsheets, visualization software lets an experimenter vary initial conditions or parameters. Observing the effect of such changes can help in improving models, as well as in understanding the original system.

      Visualization is an essential feature of computer-aided engineering (CAE) and computer-aided design (CAD). An engineer can design a bridge, use modeling software to display it, and study it under different loads. CAE software can translate drawings into the precise specification of the parts of a mechanical system. Computer chips themselves are designed with CAD programs that let an engineer write a specification for part of a chip, simulate its behaviour in detail, test it thoroughly, and then generate the layouts for the photolithographic process that puts the circuit on the silicon.

      Astronomical sky surveys, weather forecasting, and medical imaging—such as magnetic resonance imaging, CAT scans, and DNA analyses—create very large collections of data. Scientific computation today uses the same kinds of powerful statistical and pattern-analysis techniques as many business applications.

Internet and collaborative software
      Among the most commonly used personal Internet software are “browsers” for displaying information located on the World Wide Web, newsreaders for reading “newsgroups” located on USENET, file-sharing programs for downloading files, and communication software for e-mail, as well as “instant messaging” and “chat room” programs that allow people to carry on conversations in real time. All of these applications are used for both personal and business activities.

      Other common Internet software includes Web search engines and “Web-crawling” programs that traverse the Web to gather and classify information. Web-crawling programs are a kind of agent software, a term for programs that carry out routine tasks for a user. They stem from artificial intelligence research and carry out some of the tasks of librarians, but they are at a severe disadvantage. Although Web pages may have “content-tag” index terms, not all do, nor are there yet accepted standards for their use. Web search engines must use heuristic methods to determine the quality of Web page information as well as its content. Many details are proprietary, but they may use techniques such as finding “hubs” and “authorities” (pages with many links to and from other Web sites). Such strategies can be very effective, though the need for a Web version of card catalogs has not vanished.

 A different kind of Internet use depends on the vast number of computers connected to the Internet that are idle much of the time. Rather than run a “screen-saver” program, these computers can run software that lets them collaborate in the analysis of some difficult problem. Two examples are the SETI@home project, which distributes portions of radio telescope data for analysis that might help in the search for extraterrestrial intelligence (SETI), and the “Great Internet Mersenne Prime Search” (GIMPS), which parcels out tasks to test for large prime numbers.

      The Internet has also become a business tool, and the ability to collect and store immense amounts of information has given rise to data warehousing and data mining. The former is a term for unstructured collections of data and the latter a term for its analysis. Data mining uses statistics and other mathematical tools to find patterns of information. For more information concerning business on the Internet, see e-commerce.

Games (electronic game) and entertainment
      Computer games are nearly as old as digital computers and have steadily developed in sophistication. Chinook, a recent checkers (draughts) program, is widely believed to be better than any human player, and the IBM Deep Blue chess program beat world champion Garry Kasparov (Kasparov, Garry) in 1996. These programs have demonstrated the power of modern computers, as well as the strength of good heuristics for strategy. On the other hand, such brute-force search heuristics have failed to produce a go-playing program that can defeat even moderately skilled players because there are too many possible moves in this Japanese game for simple quantification.

      After board games, the earliest computer games were text-based adventures—in which players explored virtual worlds, sought treasure, and fought enemies by reading and typing simple commands. Such games resembled military simulation programs first used in the early 1950s. Contemporary games, however, depend on high-performance computer graphics. Played on arcade machines, special game computers for home use, or PCs, they use the same capabilities as simulation and visualization programs. A related area is computer-generated (CG) animation for films and video.

David Hemmendinger

History of computing
      A computer might be described with deceptive simplicity as “an apparatus that performs routine calculations automatically.” Such a definition would owe its deceptiveness to a naive and narrow view of calculation as a strictly mathematical process. In fact, calculation underlies many activities that are not normally thought of as mathematical. Walking across a room, for instance, requires many complex, albeit subconscious, calculations. Computers, too, have proved capable of solving a vast array of problems, from balancing a checkbook to even—in the form of guidance systems for robots—walking across a room.

      Before the true power of computing could be realized, therefore, the naive view of calculation had to be overcome. The inventors who laboured to bring the computer into the world had to learn that the thing they were inventing was not just a number cruncher, not merely a calculator. For example, they had to learn that it was not necessary to invent a new computer for every new calculation and that a computer could be designed to solve numerous problems, even problems not yet imagined when the computer was built. They also had to learn how to tell such a general problem-solving computer what problem to solve. In other words, they had to invent programming.

      They had to solve all the heady problems of developing such a device, of implementing the design, of actually building the thing. The history of the solving of these problems is the history of the computer. That history is covered in this section, and links are provided to entries on many of the individuals and companies mentioned. In addition, see the articles computer science and supercomputer.

Early history
Computer precursors

The abacus
 The earliest known calculating device is probably the abacus. It dates back at least to 1100 BCE and is still in use today, particularly in Asia. Now, as then, it typically consists of a rectangular frame with thin parallel rods strung with beads. Long before any systematic positional notation was adopted for the writing of numbers, the abacus assigned different units, or weights, to each rod. This scheme allowed a wide range of numbers to be represented by just a few beads and, together with the invention of zero in India, may have inspired the invention of the Hindu-Arabic number system (numerals and numeral systems). In any case, abacus beads can be readily manipulated to perform the common arithmetical operations—addition, subtraction, multiplication, and division—that are useful for commercial transactions and in bookkeeping.

      The abacus is a digital device; that is, it represents values discretely. A bead is either in one predefined position or another, representing unambiguously, say, one or zero.

Analog calculators: from Napier's logarithms to the slide rule
      Calculating devices took a different turn when John Napier (Napier, John), a Scottish mathematician, published his discovery of logarithms (logarithm) in 1614. As any person can attest, adding two 10-digit numbers is much simpler than multiplying them together, and the transformation of a multiplication problem into an addition problem is exactly what logarithms enable. This simplification is possible because of the following logarithmic property: the logarithm of the product of two numbers is equal to the sum of the logarithms of the numbers. By 1624, tables with 14 significant digits were available for the logarithms of numbers from 1 to 20,000, and scientists quickly adopted the new labour-saving tool for tedious astronomical calculations.

      Most significant for the development of computing, the transformation of multiplication into addition greatly simplified the possibility of mechanization. Analog calculating devices based on Napier's logarithms—representing digital values with analogous physical lengths—soon appeared. In 1620 Edmund Gunter (Gunter, Edmund), the English mathematician who coined the terms cosine and cotangent, built a device for performing navigational calculations: the Gunter scale, or, as navigators simply called it, the gunter. About 1632 an English clergyman and mathematician named William Oughtred (Oughtred, William) built the first slide rule, drawing on Napier's ideas. That first slide rule was circular, but Oughtred also built the first rectangular one in 1633. The analog devices of Gunter and Oughtred had various advantages and disadvantages compared with digital devices such as the abacus. What is important is that the consequences of these design decisions were being tested in the real world.

Digital calculators: from the Calculating Clock to the Arithmometer
 In 1623 the German astronomer and mathematician Wilhelm Schickard built the first calculator. He described it in a letter to his friend the astronomer Johannes Kepler (Kepler, Johannes), and in 1624 he wrote again to explain that a machine he had commissioned to be built for Kepler was, apparently along with the prototype, destroyed in a fire. He called it a Calculating Clock, which modern engineers have been able to reproduce from details in his letters. Even general knowledge of the clock had been temporarily lost when Schickard and his entire family perished during the Thirty Years' War.

      But Schickard may not have been the true inventor of the calculator. A century earlier, Leonardo da Vinci sketched plans for a calculator that were sufficiently complete and correct for modern engineers to build a calculator on their basis.

 The first calculator or adding machine to be produced in any quantity and actually used was the Pascaline, or Arithmetic Machine (Pascaline), designed and built by the French mathematician-philosopher Blaise Pascal (Pascal, Blaise) between 1642 and 1644. It could only do addition and subtraction, with numbers being entered by manipulating its dials. Pascal invented the machine for his father, a tax collector, so it was the first business machine too (if one does not count the abacus). He built 50 of them over the next 10 years.

 In 1671 the German mathematician-philosopher Gottfried Wilhelm von Leibniz (Leibniz, Gottfried Wilhelm) designed a calculating machine called the Step Reckoner. (It was first built in 1673.) The Step Reckoner expanded on Pascal's ideas and did multiplication by repeated addition and shifting.

      Leibniz was a strong advocate of the binary number system. Binary numbers are ideal for machines because they require only two digits, which can easily be represented by the on and off states of a switch. When computers became electronic, the binary system was particularly appropriate because an electrical circuit is either on or off. This meant that on could represent true, off could represent false, and the flow of current would directly represent the flow of logic.

      Leibniz was prescient in seeing the appropriateness of the binary system in calculating machines, but his machine did not use it. Instead, the Step Reckoner represented numbers in decimal form, as positions on 10-position dials. Even decimal representation was not a given: in 1668 Samuel Morland invented an adding machine specialized for British money—a decidedly nondecimal system.

      Pascal's, Leibniz's, and Morland's devices were curiosities, but with the Industrial Revolution of the 18th century came a widespread need to perform repetitive operations efficiently. With other activities being mechanized, why not calculation? In 1820 Charles Xavier Thomas de Colmar of France effectively met this challenge when he built his Arithmometer, the first commercial mass-produced calculating device. It could perform addition, subtraction, multiplication, and, with some more elaborate user involvement, division. Based on Leibniz's technology, it was extremely popular and sold for 90 years. In contrast to the modern calculator's credit-card size, the Arithmometer was large enough to cover a desktop.

      Calculators such as the Arithmometer remained a fascination after 1820, and their potential for commercial use was well understood. Many other mechanical devices built during the 19th century also performed repetitive functions more or less automatically, but few had any application to computing. There was one major exception: the Jacquard loom, invented in 1804–05 by a French weaver, Joseph-Marie Jacquard (Jacquard, Joseph-Marie).

 The Jacquard loom was a marvel of the Industrial Revolution. A textile-weaving loom, it could also be called the first practical information-processing device. The loom worked by tugging various-coloured threads into patterns by means of an array of rods. By inserting a card punched with holes, an operator could control the motion of the rods and thereby alter the pattern of the weave. Moreover, the loom was equipped with a card-reading device that slipped a new card from a prepunched deck into place every time the shuttle was thrown, so that complex weaving patterns could be automated.

      What was extraordinary about the device was that it transferred the design process from a labour-intensive weaving stage to a card-punching stage. Once the cards had been punched and assembled, the design was complete, and the loom implemented the design automatically. The Jacquard loom, therefore, could be said to be programmed for different patterns by these decks of punched cards.

      For those intent on mechanizing calculations, the Jacquard loom provided important lessons: the sequence of operations that a machine performs could be controlled to make the machine do something quite different; a punched card could be used as a medium for directing the machine; and, most important, a device could be directed to perform different tasks by feeding it instructions in a sort of language—i.e., making the machine programmable.

      It is not too great a stretch to say that, in the Jacquard loom, programming was invented before the computer. The close relationship between the device and the program became apparent some 20 years later, with Charles Babbage's invention of the first computer.

The first computer
      By the second decade of the 19th century, a number of ideas necessary for the invention of the computer were in the air. First, the potential benefits to science and industry of being able to automate routine calculations were appreciated, as they had not been a century earlier. Specific methods to make automated calculation more practical, such as doing multiplication by adding logarithms or by repeating addition, had been invented, and experience with both analog and digital devices had shown some of the benefits of each approach. The Jacquard loom (as described in the previous section, Computer precursors (computer)) had shown the benefits of directing a multipurpose device through coded instructions, and it had demonstrated how punched cards could be used to modify those instructions quickly and flexibly. It was a mathematical genius in England who began to put all these pieces together.

      Charles Babbage (Babbage, Charles) was an English mathematician and inventor: he invented the cowcatcher, reformed the British postal system, and was a pioneer in the fields of operations research and actuarial science. It was Babbage who first suggested that the weather of years past could be read from tree rings. He also had a lifelong fascination with keys, ciphers, and mechanical dolls.

      As a founding member of the Royal Astronomical Society, Babbage had seen a clear need to design and build a mechanical device that could automate long, tedious astronomical calculations. He began by writing a letter in 1822 to Sir Humphry Davy, president of the Royal Society, about the possibility of automating the construction of mathematical tables—specifically, logarithm tables for use in navigation. He then wrote a paper, On the Theoretical Principles of the Machinery for Calculating Tables, which he read to the society later that year. (It won the Royal Society's first Gold Medal in 1823.) Tables then in use often contained errors, which could be a life-and-death matter for sailors at sea, and Babbage argued that, by automating the production of the tables, he could assure their accuracy. Having gained support in the society for his Difference Engine, as he called it, Babbage next turned to the British government to fund development, obtaining one of the world's first government grants for research and technological development.

      Babbage approached the project very seriously: he hired a master machinist, set up a fireproof workshop, and built a dustproof environment for testing the device. Up until then calculations were rarely carried out to more than 6 digits; Babbage planned to produce 20- or 30-digit results routinely. The Difference Engine was a digital device: it operated on discrete digits rather than smooth quantities, and the digits were decimal (0–9), represented by positions on toothed wheels, rather than the binary digits that Leibniz favoured (but did not use). When one of the toothed wheels turned from 9 to 0, it caused the next wheel to advance one position, carrying the digit just as Leibniz's Step Reckoner calculator had operated.

      The Difference Engine was more than a simple calculator, however. It mechanized not just a single calculation but a whole series of calculations on a number of variables to solve a complex problem. It went far beyond calculators in other ways as well. Like modern computers, the Difference Engine had storage—that is, a place where data could be held temporarily for later processing—and it was designed to stamp its output into soft metal, which could later be used to produce a printing plate.

      Nevertheless, the Difference Engine performed only one operation. The operator would set up all of its data registers with the original data, and then the single operation would be repeatedly applied to all of the registers, ultimately producing a solution. Still, in complexity and audacity of design, it dwarfed any calculating device then in existence.

      The full engine, designed to be room-size, was never built, at least not by Babbage. Although he sporadically received several government grants—governments changed, funding often ran out, and he had to personally bear some of the financial costs—he was working at or near the tolerances of the construction methods of the day, and he ran into numerous construction difficulties. All design and construction ceased in 1833, when Joseph Clement, the machinist responsible for actually building the machine, refused to continue unless he was prepaid. (The completed portion of the Difference Engine is on permanent exhibition at the Science Museum in London.)

      While working on the Difference Engine, Babbage (Babbage, Charles) began to imagine ways to improve it. Chiefly he thought about generalizing its operation so that it could perform other kinds of calculations. By the time the funding had run out in 1833, he had conceived of something far more revolutionary: a general-purpose computing machine called the Analytical Engine.

      The Analytical Engine was to be a general-purpose, fully program-controlled, automatic mechanical digital computer. It would be able to perform any calculation set before it. Before Babbage there is no evidence that anyone had ever conceived of such a device, let alone attempted to build one. The machine was designed to consist of four components: the mill, the store, the reader, and the printer. These components are the essential components of every computer today. The mill was the calculating unit, analogous to the central processing unit (CPU) in a modern computer; the store was where data were held prior to processing, exactly analogous to memory and storage in today's computers; and the reader and printer were the input and output devices.

      As with the Difference Engine, the project was far more complex than anything theretofore built. The store was to be large enough to hold 1,000 50-digit numbers; this was larger than the storage capacity of any computer built before 1960. The machine was to be steam-driven and run by one attendant. The printing capability was also ambitious, as it had been for the Difference Engine: Babbage wanted to automate the process as much as possible, right up to producing printed tables of numbers.

      The reader was another new feature of the Analytical Engine. Data (numbers) were to be entered on punched cards, using the card-reading technology of the Jacquard loom. Instructions were also to be entered on cards, another idea taken directly from Jacquard. The use of instruction cards would make it a programmable device and far more flexible than any machine then in existence. Another element of programmability was to be its ability to execute instructions in other than sequential order. It was to have a kind of decision-making ability in its conditional control transfer, also known as conditional branching, whereby it would be able to jump to a different instruction depending on the value of some data. This extremely powerful feature was missing in many of the early computers of the 20th century.

      By most definitions, the Analytical Engine was a real computer as understood today—or would have been, had not Babbage run into implementation problems again. Actually building his ambitious design was judged infeasible given the current technology, and Babbage's failure to generate the promised mathematical tables with his Difference Engine had dampened enthusiasm for further government funding. Indeed, it was apparent to the British government that Babbage was more interested in innovation than in constructing tables.

      All the same, Babbage's Analytical Engine was something new under the sun. Its most revolutionary feature was the ability to change its operation by changing the instructions on punched cards. Until this breakthrough, all the mechanical aids to calculation were merely calculators or, like the Difference Engine, glorified calculators. The Analytical Engine, although not actually completed, was the first machine that deserved to be called a computer.

Lady Lovelace, the first programmer
 The distinction between calculator and computer, although clear to Babbage, was not apparent to most people in the early 19th century, even to the intellectually adventuresome visitors at Babbage's soirees—with the exception of a young girl of unusual parentage and education.

      Augusta Ada King, the countess of Lovelace (Lovelace, Ada King, countess of), was the daughter of the poet Lord Byron (Byron, George Gordon Byron, 6th Baron) and the mathematically inclined Anne Millbanke. One of her tutors was Augustus De Morgan (De Morgan, Augustus), a famous mathematician and logician. Because Byron was involved in a notorious scandal at the time of her birth, Ada's mother encouraged her mathematical and scientific interests, hoping to suppress any inclination to wildness she may have inherited from her father.

      Toward that end, Lady Lovelace attended Babbage's soirees and became fascinated with his Difference Engine. She also corresponded with him, asking pointed questions. It was his plan for the Analytical Engine that truly fired her imagination, however. In 1843, at age 27, she had come to understand it well enough to publish the definitive paper explaining the device and drawing the crucial distinction between this new thing and existing calculators. The Analytical Engine, she argued, went beyond the bounds of arithmetic. Because it operated on general symbols rather than on numbers, it established “a link…between the operations of matter and the abstract mental processes of the most abstract branch of mathematical science.” It was a physical device that was capable of operating in the realm of abstract thought.

      Lady Lovelace rightly reported that this was not only something no one had built, it was something that no one before had even conceived. She went on to become the world's only expert on the process of sequencing instructions on the punched cards that the Analytical Engine used; that is, she became the world's first computer programmer (computer program).

      One feature of the Analytical Engine was its ability to place numbers and instructions temporarily in its store and return them to its mill for processing at an appropriate time. This was accomplished by the proper sequencing of instructions and data in its reader, and the ability to reorder instructions and data gave the machine a flexibility and power that was hard to grasp. The first electronic digital computers of a century later lacked this ability. It was remarkable that a young scholar realized its importance in 1840, and it would be 100 years before anyone would understand it so well again. In the intervening century, attention would be diverted to the calculator and other business machines.

Early business machines
      Throughout the 19th century, business machines were coming into common use. Calculators became available as a tool of commerce in 1820 (see the earlier section Digital calculators (computer)), and in 1874 the Remington Arms Company, Inc., sold the first commercially viable typewriter. Other machines were invented for other specific business tasks. None of these machines was a computer, but they did advance the state of practical mechanical knowledge—knowledge that would be used in computers later.

      One of these machines was invented in response to a sort of constitutional crisis in the United States: the census tabulator.

Herman Hollerith (Hollerith, Herman)'s census tabulator
 The U.S. Constitution mandates that a census of the population be performed every 10 years. The first attempt at any mechanization of the census was in 1870, when statistical data were transcribed onto a rolling paper tape displayed through a small slotted window. As the size of America's population exploded in the 19th century and the number of census questions expanded, the urgency of further mechanization became increasingly clear.

      After graduating from the Columbia University School of Mines, New York City, in 1879, Herman Hollerith (Hollerith, Herman) obtained his first job with one of his former professors, William P. Trowbridge, who had received a commission as a special agent for the 1880 census. It was while employed at the Census Office that Hollerith first saw the pressing need for automating the tabulation of statistical data.

      Over the next 10 years Hollerith refined his ideas, obtaining his first patent in 1884 for a machine to punch and count cards. He then organized the health records for Baltimore, Maryland, for New York City, and for the state of New Jersey—all in preparation for winning the contract to tabulate the 1890 U.S. Census. The success of the U.S. census opened European governments to Hollerith's machines. Most notably, a contract with the Russian government, signed on December 15, 1896, may have induced him to incorporate as the Tabulating Machine Company on December 5, 1896.

Other early business machine companies
 Improvements in calculators continued: by the 1880s they could add in the accumulation of partial results, store past results, and print. Then, in 1892, William Seward Burroughs (Burroughs, William Seward), who along with two other St. Louis, Missouri, businessmen had started the American Arithmometer Company in 1886 in order to build adding machines, obtained a patent for one of the first truly practical and commercially successful calculators. Burroughs died in 1898, and his company was reorganized as the Burroughs Adding Machine Company in Detroit, Michigan, in 1905.

      All the calculators—and virtually all the information-processing devices—sold at this time were designed for commercial purposes, not scientific research. By the turn of the century, commercial calculating devices were in common use, as were other special-purpose machines such as one that generated serial numbers for banknotes. As a result, many of the business machine companies in the United States were doing well, including Hollerith's Tabulating Machine Company.

      In 1911 several of these companies combined to form the Computing-Tabulating-Recording Company, or CTR. In 1914 Thomas Watson left his sales manager position at the National Cash Register Company to become president of CTR, and 10 years later CTR changed its name to International Business Machines Corporation, or IBM (International Business Machines Corporation). In the second half of the century, IBM would become the giant of the world computer industry, but such commercial gains did not take place until enormous progress had been made in the theoretical understanding of the modern computer during the remarkable decades of the 1930s and '40s. (This progress is described in the next section, Invention of the modern computer.)

Invention of the modern computer
Early experiments
      As the technology for realizing a computer was being honed by the business machine companies in the early 20th century, the theoretical foundations were being laid in academia. During the 1930s two important strains of computer-related research were being pursued in the United States at two universities in Cambridge, Massachusetts. One strain produced the Differential Analyzer, the other a series of devices ending with the Harvard Mark IV.

      In 1930 an engineer named Vannevar Bush (Bush, Vannevar) at the Massachusetts Institute of Technology (MIT) developed the first modern analog computer. The Differential Analyzer, as he called it, was an analog calculator that could be used to solve certain classes of differential equations, a type of problem common in physics and engineering applications that is often very tedious to solve. Variables were represented by shaft motion, and addition and multiplication were accomplished by feeding the values into a set of gears. Integration was carried out by means of a knife-edged wheel rotating at a variable radius on a circular table. The individual mechanical integrators were then interconnected to solve a set of differential equations.

      The Differential Analyzer proved highly useful, and a number of them were built and used at various universities. Still the device was limited to solving this one class of problem, and, as is the case for all analog devices, it produced approximate, albeit practical, solutions. Nevertheless, important applications for analog computers (analog computer) and analog-digital hybrid computers still exist, particularly for simulating complicated dynamical systems such as aircraft flight, nuclear power plant operations, and chemical reactions.

Howard Aiken (Aiken, Howard Hathaway)'s digital calculators (digital computer)
 While Bush was working on analog computing at MIT, across town Harvard professor Howard Aiken (Aiken, Howard Hathaway) was working with digital devices for calculation. He had begun to realize in hardware something like Babbage's Analytical Engine, which he had read about. Starting in 1937, he laid out detailed plans for a series of four calculating machines of increasing sophistication, based on different technologies, from the largely mechanical Mark I to the electronic Mark IV.

      Aiken was methodically exploring the technological advances made since the mechanical assembly and steam power available to Babbage. Electromagnetic relay circuits were already being used in business machines, and the vacuum tube—a switch with no moving parts, very high speed action, and greater reliability than electromechanical relays—was quickly put to use in the early experimental machines.

      The business machines of the time used plugboards (something like telephone switchboards) to route data manually, and Aiken chose not to use them for the specification of instructions. This turned out to make his machine much easier to program than the more famous ENIAC, designed somewhat later, which had to be manually rewired for each program.

      From 1939 to 1944 Aiken, in collaboration with IBM, developed his first fully functional computer, known as the Harvard Mark I. The machine, like Babbage's, was huge: more than 50 feet (15 metres) long, weighing five tons, and consisting of about 750,000 separate parts, it was mostly mechanical. For input and output it used three paper-tape readers, two card readers, a card punch, and two typewriters. It took between three and six seconds to add two numbers. Aiken developed three more such machines (Mark II–IV) over the next few years and is credited with developing the first fully automatic large-scale calculator.

      Alan Turing (Turing, Alan M.), while a mathematics student at the University of Cambridge, was inspired by German mathematician David Hilbert (Hilbert, David)'s formalist program, which sought to demonstrate that any mathematical problem can potentially be solved by an algorithm—that is, by a purely mechanical process. Turing interpreted this to mean a computing machine and set out to design one capable of resolving all mathematical problems, but in the process he proved in his seminal paper On Computable Numbers, with an Application to the Entscheidungsproblem [‘Halting Problem'] (1936) that no such universal mathematical solver could ever exist.

      In order to design his machine (known to posterity as the “ Turing machine”), he needed to find an unambiguous definition of the essence of a computer. In doing so, Turing worked out in great detail the basic concepts of a universal computing machine—that is, a computing machine that could, at least in theory, do anything that a special-purpose computing device could do. In particular, it would not be limited to doing arithmetic. The internal states of the machine could represent numbers, but they could equally well represent logic values or letters. In fact, Turing believed that everything could be represented symbolically, even abstract mental states, and he was one of the first advocates of the artificial-intelligence (artificial intelligence) position that computers can potentially “think.”

      Turing's work up to this point was entirely abstract, entirely a theoretical demonstration. Nevertheless, he made it clear from the start that his results implied the possibility of building a machine of the sort he described. His work characterized the abstract essence of any computing device so well that it was in effect a challenge to actually build one.

      Turing's work had an immediate effect on only a small number of academics at a few universities who were interested in the concept of computing machinery. It had no immediate effect on the growing industry of business machines, all of which were special-purpose devices. But to the few who were interested, Turing's work was an inspiration to pursue something of which most of the world had not even conceived: a universal computing machine.

Pioneering work

 It was generally believed that the first electronic digital computers (digital computer) were the Colossus, built in England in 1943, and the ENIAC, built in the United States in 1945. However, the first special-purpose electronic computer may actually have been invented by John Vincent Atanasoff (Atanasoff, John V(incent)), a physicist and mathematician at Iowa State College (now Iowa State University), during 1937–42. (Atanasoff also claimed to have invented the term analog computer to describe machines such as Vannevar Bush's differential analyzer.) Together with his graduate assistant Clifford E. Berry, Atanasoff built a successful small prototype in 1939 for the purpose of testing two ideas central to his design: capacitors to store data in binary form and electronic logic circuits to perform addition and subtraction. They then began the design and construction of a larger, more general-purpose computer, known as the Atanasoff-Berry Computer, or ABC.

      Various components of the ABC were designed and built from 1939 to 1942, but development was discontinued with the onset of World War II. The ABC featured about 300 vacuum tubes for control and arithmetic calculations, use of binary numbers, logic operations (instead of direct counting), memory capacitors, and punched cards as input/output units. (At Atanasoff's invitation, another early computer pioneer, John Mauchly (Mauchly, John W.), stayed at his home and was freely shown his work for several days in June 1941. For more on the ramifications of this visit, see BTW: Computer patent wars.)

      Between 1940 and 1946 George Stibitz and his team at Bell Laboratories built a series of machines with telephone technologies—i.e., employing electromechanical relays. These were the first machines to serve more than one user and the first to work remotely over telephone lines. However, because they were based on slow mechanical relays rather than electronic switches, they became obsolete almost as soon as they were constructed.

Konrad Zuse
      Meanwhile, in Germany, engineer Konrad Zuse had been thinking about calculating machines. He was advised by a calculator manufacturer in 1937 that the field was a dead end and that every computing problem had already been solved. Zuse had something else in mind, though.

      For one thing, Zuse worked in binary from the beginning. All of his prototype machines, built in 1936, used binary representation in order to simplify construction. This had the added advantage of making the connection with logic clearer, and Zuse worked out the details of how the operations of logic (e.g., AND, OR, and NOT) could be mapped onto the design of the computer's circuits. (English mathematician George Boole (Boole, George) had shown the connection between logic and mathematics in the mid-19th century, developing an algebra of logic now known as Boolean algebra.) Zuse also spent more time than his predecessors and contemporaries developing software for his computer, the language in which it was to be programmed. (His contributions to programming are examined in the section Programming languages (computer).) Although all his early prewar machines were really calculators—not computers—his Z3, completed in December 1941 (and destroyed on April 6, 1945, during an Allied air raid on Berlin), was the first program-controlled processor.

      Because all Zuse's work was done in relative isolation, he knew little about work on computers in the United States and England, and, when the war began, the isolation became complete.

      The following section, Developments during World War II, examines the development during the 1940s of the first fully functional digital computers.

Developments during World War II

      The exigencies of war gave impetus and funding to computer research. For example, in Britain the impetus was code breaking. The Ultra project was funded with much secrecy to develop the technology necessary to crack ciphers and codes produced by the German electromechanical devices known as the Enigma and the Geheimschreiber (“Secret Writer”). The first in a series of important code-breaking machines, Colossus, also known as the Mark I, was built under the direction of Sir Thomas Flowers and delivered in December 1943 to the code-breaking operation at Bletchley Park, a government research centre north of London. It employed approximately 1,800 vacuum tubes (electron tube) for computations. Successively larger and more elaborate versions were built over the next two years.

      The Ultra project had a gifted mathematician associated with the Bletchley Park effort, and one familiar with codes. Alan Turing (Turing, Alan M.), who had earlier articulated the concept of a universal computing device (described in the section The Turing machine (computer)), may have pushed the project farther in the direction of a general-purpose device than his government originally had in mind. Turing's advocacy helped keep up government support for the project.

      Although it lacked some characteristics now associated with computers, Colossus can plausibly be described as the first electronic digital computer, and it was certainly a key stepping stone to the development of the modern computer. Although Colossus was designed to perform specific cryptographic-related calculations, it could be used for more-generalized purposes. Its design pioneered the massive use of electronics in computation, and it embodied an insight from Flowers of the importance of storing data electronically within the machine. The operation at Bletchley foreshadowed the modern data centre.

      Colossus was successful in its intended purpose: the German messages it helped to decode provided information about German battle orders, supplies, and personnel; it also confirmed that an Allied deception campaign, Operation Fortitude, was working.

      The series of Colossus computers were disassembled after the war, and most information about them remained classified until the 1990s. In 1996 the basic Colossus machine was rebuilt and switched on at Bletchley Park.

The Z4
      In Germany, Konrad Zuse began construction of the Z4 in 1943 with funding from the Air Ministry. Like his Z3 (described in the section Konrad Zuse (computer)), the Z4 used electromechanical relays, in part because of the difficulty in acquiring the roughly 2,000 necessary vacuum tubes in wartime Germany. The Z4 was evacuated from Berlin in early 1945, and it eventually wound up in Hinterstein, a small village in the Bavarian Alps, where it remained until Zuse brought it to the Federal Technical Institute in Zürich, Switzerland, for refurbishing in 1950. Although unable to continue with hardware development, Zuse made a number of advances in software design.

      Zuse's use of floating-point representation for numbers—the significant digits, known as the mantissa, are stored separately from a pointer to the decimal point, known as the exponent, allowing a very large range of numbers to be handled—was far ahead of its time. In addition, Zuse developed a rich set of instructions, handled infinite values correctly, and included a “no-op”—that is, an instruction that did nothing. Only significant experience in programming would show the need for something so apparently useless.

      The Z4's program was punched on used movie film and was separate from the mechanical memory for data (in other words, there was no stored program). The machine was relatively reliable (it normally ran all night unattended), but it had no decision-making ability. Addition took 0.5 to 1.25 seconds, multiplication 3.5 seconds.

 In the United States, government funding went to a project led by John Mauchly (Mauchly, John W.), J. Presper Eckert, Jr. (Eckert, J. Presper, Jr.), and their colleagues at the Moore School of Electrical Engineering at the University of Pennsylvania; their objective was an all-electronic computer. Under contract to the army and under the direction of Herman Goldstine, work began in early 1943 on the Electronic Numerical Integrator and Computer (ENIAC). The next year, mathematician John von Neumann (von Neumann, John), already on full-time leave from the Institute for Advanced Studies (IAS), Princeton, New Jersey, for various government research projects (including the Manhattan Project), began frequent consultations with the group.

      ENIAC was something less than the dream of a universal computer. Designed for the specific purpose of computing values for artillery range tables, it lacked some features that would have made it a more generally useful machine. Like Colossus but unlike Howard Aiken's machine (described in the section Early experiments (computer)), it used plugboards for communicating instructions to the machine; this had the advantage that, once the instructions were thus “programmed,” the machine ran at electronic speed. Instructions read from a card reader or other slow mechanical device would not have been able to keep up with the all-electronic ENIAC. The disadvantage was that it took days to rewire the machine for each new problem. This was such a liability that only with some generosity could it be called programmable.

      Nevertheless, ENIAC was the most powerful calculating device built to date. Like Charles Babbage's Analytical Engine and the Colossus, but unlike Aiken's Mark I, Konrad Zuse's Z4, and George Stibitz's telephone-savvy machine, it did have conditional branching—that is, it had the ability to execute different instructions or to alter the order of execution of instructions based on the value of some data. (For instance, IF X > 5 THEN GO TO LINE 23.) This gave ENIAC a lot of flexibility and meant that, while it was built for a specific purpose, it could be used for a wider range of problems.

      ENIAC was enormous. It occupied the 50-by-30-foot (15-by-9-metre) basement of the Moore School, where its 40 panels were arranged, U-shaped, along three walls. Each of the units was about 2 feet wide by 2 feet deep by 8 feet high (0.6 by 0.6 by 2.4 metres). With approximately 18,000 vacuum tubes, 70,000 resistors, 10,000 capacitors, 6,000 switches, and 1,500 relays, it was easily the most complex electronic system theretofore built. ENIAC ran continuously (in part to extend tube life), generating 150 kilowatts of heat, and could execute up to 5,000 additions per second, several orders of magnitude faster than its electromechanical predecessors. Colossus, ENAIC, and subsequent computers employing vacuum tubes (electron tube) are known as first-generation computers. (With 1,500 mechanical relays, ENIAC was still transitional to later, fully electronic computers.)

      Completed by February 1946, ENIAC had cost the government $400,000, and the war it was designed to help win was over. Its first task was doing calculations for the construction of a hydrogen bomb. A portion of the machine is on exhibit at the Smithsonian Institution in Washington, D.C.

Toward the classical computer

Bigger brains
      The computers built during the war were built under unusual constraints. The British work was largely focused on code breaking, the American work on computing projectile trajectories and calculations for the atomic bomb. The computers were built as special-purpose devices, although they often embodied more general-purpose computing capabilities than their specifications called for. The vacuum tubes in these machines were not entirely reliable, but with no moving parts they were more reliable than the electromechanical switches they replaced, and they were much faster. Reliability was an issue, since Colossus used some 1,500 tubes and ENIAC on the order of 18,000. But ENIAC was, by virtue of its electronic realization, 1,000 times faster than the Harvard Mark I. Such speed meant that the machine could perform calculations that were theretofore beyond human ability. Although tubes were a great advance over the electromechanical realization of Aiken or the steam-and-mechanical model of Babbage, the basic architecture of the machines (that is, the functions they were able to perform) was not much advanced beyond Babbage's Difference Engine and Analytical Engine. In fact, the original name for ENIAC was Electronic Difference Analyzer, and it was built to perform much like Babbage's Difference Engine.

      After the war, efforts focused on fulfilling the idea of a general-purpose computing device. In 1945, before ENIAC was even finished, planning began at the Moore School for ENIAC's successor, the Electronic Discrete Variable Automatic Computer, or EDVAC. (Planning for EDVAC also set the stage for an ensuing patent fight; see BTW: Computer patent wars.) ENIAC was hampered, as all previous electronic computers had been, by the need to use one vacuum tube to store each bit, or binary digit. The feasible number of vacuum tubes (electron tube) in a computer also posed a practical limit on storage capacity—beyond a certain point, vacuum tubes are bound to burn out as fast as they can be changed. For EDVAC, Eckert had a new idea for storage.

      In 1880 French physicists Pierre and Jacques Curie had discovered that applying an electric current to a quartz crystal would produce a characteristic vibration and vice versa. During the 1930s at Bell Laboratories, William Shockley (Shockley, William B.), later coinventor of the transistor, had demonstrated a device—a tube, called a delay line, containing water and ethylene glycol—for effecting a predictable delay in information transmission. Eckert had already built and experimented in 1943 with such a delay line (using mercury) in conjunction with radar research, and sometime in 1944 he hit upon the new idea of placing a quartz crystal at each end of the mercury delay line in order to sustain and modify the resulting pattern. In effect, he invented a new storage device. Whereas ENIAC required one tube per bit, EDVAC could use a delay line and 10 vacuum tubes to store 1,000 bits. Before the invention of the magnetic core memory and the transistor, which would eliminate the need for vacuum tubes altogether, the mercury delay line was instrumental in increasing computer storage and reliability.

Von Neumann's “Preliminary Discussion”
      But the design of the modern, or classical, computer did not fully crystallize until the publication of a 1946 paper by Arthur Burks, Herman Goldstine, and John von Neumann (von Neumann, John) titled Preliminary Discussion of the Logical Design of an Electronic Computing Instrument. Although the paper was essentially a synthesis of ideas currently “in the air,” it is frequently cited as the birth certificate of computer science.

      Among the principles enunciated in the paper were that data and instructions should be kept in a single store and that instructions should be encoded so as to be modifiable by other instructions. This was an extremely critical decision, because it meant that one program could be treated as data by another program. Zuse had considered and rejected this possibility as too dangerous. But its inclusion by von Neumann's group made possible high-level programming languages and most of the advances in software of the following 50 years. Subsequently, computers with stored programs would be known as von Neumann machines.

      One problem that the stored-program idea solved was the need for rapid access to instructions. Colossus and ENIAC had used plugboards, which had the advantage of enabling the instructions to be read in electronically, rather than by much slower mechanical card readers, but it also had the disadvantage of making these first-generation machines very hard to program. But if the instructions could be stored in the same electronic memory that held the data, they could be accessed as quickly as needed. One immediately obvious consequence was that EDVAC would need a lot more memory than ENIAC.

The first stored-program machines
 Government secrecy hampered British efforts to build on wartime computer advances, but engineers in Britain still beat the Americans to the goal of building the first stored-program digital computer. (digital computer) At the University of Manchester, Frederic C. Williams (Williams, Sir Frederic) and Tom Kilburn (Kilburn, Tom) built a simple stored-program computer, known as the Baby, in 1948. This was built to test their invention of a way to store information on a cathode-ray tube that enabled direct access (in contrast to the mercury delay line's sequential access) to stored information. Although faster than Eckert's storage method, it proved somewhat unreliable. Nevertheless, it became the preferred storage method for most of the early computers worldwide that were not already committed to mercury delay lines.

 By 1949 Williams and Kilburn had extended the Baby to a full-size computer, the Manchester Mark I. This had two major new features that were to become computer standards: a two-level store and instruction modification registers (which soon evolved into index registers). A magnetic drum was added to provide a random-access secondary storage device. Until machines were fitted with index registers, every instruction that referred to an address that varied as the program ran—e.g., an array element—had to be preceded by instructions to alter its address to the current required value. Four months after the Baby first worked, the British government contracted the electronics firm of Ferranti to build a production computer based on the prospective Mark I. This became the Ferranti Mark I—the first commercial computer—of which nine were sold.

      Kilburn, Williams, and colleagues at Manchester also came up with a breakthrough that would revolutionize how a computer executed instructions: they made it possible for the address portion of an instruction to be modified while the program was running. Before this, an instruction specified that a particular action—say, addition—was to be performed on data in one or more particular locations. Their innovation allowed the location to be modified as part of the operation of executing the instruction. This made it very easy to address elements within an array sequentially.

 At the University of Cambridge, meanwhile, Maurice Wilkes and others built what is recognized as the first full-size, fully electronic, stored-program computer to provide a formal computing service for users. The Electronic Delay Storage Automatic Calculator (EDSAC) (EDSAC) was built on the set of principles synthesized by von Neumann and, like the Manchester Mark I, became operational in 1949. Wilkes built the machine chiefly to study programming issues, which he realized would become as important as the hardware details.

 New hardware continued to be invented, though. In the United States, Jay Forrester (Forrester, Jay Wright) of the Massachusetts Institute of Technology (MIT) and Jan Aleksander Rajchman of the Radio Corporation of America (RCA Corporation) came up with a new kind of memory based on magnetic cores that was fast enough to enable MIT to build the first real-time computer, Whirlwind. A real-time computer is one that can respond seemingly instantly to basic instructions, thus allowing an operator to interact with a “running” computer.

 After leaving the Moore School, Eckert (Eckert, J. Presper, Jr.) and Mauchly (Mauchly, John W.) struggled to obtain capital to build their latest design, a computer they called the Universal Automatic Computer, or UNIVAC. (In the meantime, they contracted with the Northrop Corporation to build the Binary Automatic Computer, or BINAC, which, when completed in 1949, became the first American stored-program computer.) The partners delivered the first UNIVAC to the U.S. Bureau of the Census in March 1951, although their company, their patents, and their talents had been acquired by Remington Rand, Inc., in 1950. Although it owed something to experience with ENIAC, UNIVAC was built from the start as a stored-program computer, so it was really different architecturally. It used an operator keyboard and console typewriter for input and magnetic tape for all other input and output. Printed output was recorded on tape and then printed by a separate tape printer.

      The UNIVAC I was designed as a commercial data-processing computer, intended to replace the punched-card accounting machines of the day. It could read 7,200 decimal digits per second (it did not use binary numbers), making it by far the fastest business machine yet built. Its use of Eckert's mercury delay lines greatly reduced the number of vacuum tubes needed (to 5,000), thus enabling the main processor to occupy a “mere” 14.5 by 7.5 by 9 feet (approximately 4.4 by 2.3 by 2.7 metres) of space. It was a true business machine, signaling the convergence of academic computational research with the office automation trend of the late 19th and early 20th centuries. As such, it ushered in the era of “Big Iron”—or large, mass-produced computing equipment.

The age of Big Iron
 A snapshot of computer development in the early 1950s would have to show a number of companies and laboratories in competition—technological competition and increasingly earnest business competition—to produce the few computers then demanded for scientific research. Several computer-building projects had been launched immediately after the end of World War II in 1945, primarily in the United States and Britain. These projects were inspired chiefly by a 1946 document, Preliminary Discussion of the Logical Design of an Electronic Digital Computing Instrument, produced by a group working under the direction of mathematician John von Neumann (von Neumann, John) of the Institute for Advanced Study at Princeton University. The IAS paper, as von Neumann's document became known, articulated the concept of the stored program—a concept that has been called the single largest innovation in the history of the computer. (Von Neumann's principles are described earlier, in the section Toward the classical computer (computer).) Most computers built in the years following the paper's distribution were designed according to its plan, yet by 1950 there were still only a handful of working stored-program computers.

      Business use at this time was marginal because the machines were so hard to use. Although computer makers such as Remington Rand, the Burroughs Adding Machine Company, and IBM (International Business Machines Corporation) had begun building machines to the IAS specifications, it was not until 1954 that a real market for business computers began to emerge. The IBM 650, delivered at the end of 1954 for colleges and businesses, was a decimal implementation of the IAS design. With this low-cost magnetic drum computer, which sold for about $200,000 apiece (compared with about $1,000,000 for the scientific model, the IBM 701), IBM had a hit, eventually selling about 1,800 of them. In addition, by offering universities that taught computer science courses around the IBM 650 an academic discount program (with price reductions of up to 60 percent), IBM established a cadre of engineers and programmers for their machines. (Apple later used a similar discount strategy in American grade schools to capture a large proportion of the early microcomputer market.)

      A snapshot of the era would also have to show what could be called the sociology of computing. The actual use of computers was restricted to a small group of trained experts, and there was resistance to the idea that this group should be expanded by making the machines easier to use. Machine time was expensive, more expensive than the time of the mathematicians and scientists who needed to use the machines, and computers could process only one problem at a time. As a result, the machines were in a sense held in higher regard than the scientists. If a task could be done by a person, it was thought that the machine's time should not be wasted with it. The public's perception of computers was not positive either. If motion pictures of the time can be used as a guide, the popular image was of a room-filling brain attended by white-coated technicians, mysterious and somewhat frightening—about to eliminate jobs through automation.

      Yet the machines of the early 1950s were not much more capable than Charles Babbage's Analytical Engine (computer) of the 1830s (although they were much faster). Although in principle these were general-purpose computers, they were still largely restricted to doing tough math problems. They often lacked the means to perform logical operations, and they had little text-handling capability—for example, lowercase letters were not even representable in the machines, even if there were devices capable of printing them.

      These machines could be operated only by experts, and preparing a problem for computation (what would be called programming today) took a long time. With only one person at a time able to use a machine, major bottlenecks were created. Problems lined up like experiments waiting for a cyclotron or the space shuttle. Much of the machine's precious time was wasted because of this one-at-a-time protocol.

      In sum, the machines were expensive and the market was still small. To be useful in a broader business market or even in a broader scientific market, computers would need application programs: word processors, database programs, and so on. These applications in turn would require programming languages in which to write them and operating systems to manage them.

Programming languages (computer programming language)

Early computer language development

      One implication of the stored-program model was that programs could read and operate on other programs as data; that is, they would be capable of self-modification. Konrad Zuse had looked upon this possibility as “making a contract with the Devil” because of the potential for abuse, and he had chosen not to implement it in his machines. But self-modification was essential for achieving a true general-purpose machine.

      One of the very first employments of self-modification was for computer language translation, “language” here referring to the instructions that make the machine work. Although the earliest machines worked by flipping switches, the stored-program machines were driven by stored coded instructions, and the conventions for encoding these instructions were referred to as the machine's language.

      Writing programs for early computers meant using the machine's language. The form of a particular machine's language is dictated by its physical and logical structure. For example, if the machine uses registers to store intermediate results of calculations, there must be instructions for moving data between such registers.

      The vocabulary and rules of syntax of machine language tend to be highly detailed and very far from the natural or mathematical language in which problems are normally formulated. The desirability of automating the translation of problems into machine language was immediately evident to users, who either had to become computer experts and programmers themselves in order to use the machines or had to rely on experts and programmers who might not fully understand the problems they were translating.

      Automatic translation from pure mathematics or some other “high-level language” to machine language was therefore necessary before computers would be useful to a broader class of users. As early as the 1830s, Charles Babbage and Lady Lovelace had recognized that such translation could be done by machine (see the earlier section Lady Lovelace, the first programmer (computer)), but they made no attempt to follow up on this idea and simply wrote their programs in machine language.

      Howard Aiken (Aiken, Howard Hathaway), working in the 1930s, also saw the virtue of automated translation from a high-level language to machine language. Aiken proposed a coding machine that would be dedicated to this task, accepting high-level programs and producing the actual machine-language instructions that the computer would process.

      But a separate machine was not actually necessary. The IAS model guaranteed that the stored-program computer would have the power to serve as its own coding machine. The translator program, written in machine language and running on the computer, would be fed the target program as data, and it would output machine-language instructions. This plan was altogether feasible, but the cost of the machines was so great that it was not seen as cost-effective to use them for anything that a human could do—including program translation.

      Two forces, in fact, argued against the early development of high-level computer languages. One was skepticism that anyone outside the “priesthood” of computer operators could or would use computers directly. Consequently, early computer makers saw no need to make them more accessible to people who would not use them anyway. A second reason was efficiency. Any translation process would necessarily add to the computing time necessary to solve a problem, and mathematicians and operators were far cheaper by the hour than computers.

      Programmers did, though, come up with specialized high-level languages, or HLLs, for computer instruction—even without automatic translators to turn their programs into machine language. They simply did the translation by hand. They did this because casting problems in an intermediate programming language, somewhere between mathematics and the highly detailed language of the machine, had the advantage of making it easier to understand the program's logical structure and to correct, or debug, any defects in the program.

      The early HLLs thus were all paper-and-pencil methods of recasting problems in an intermediate form that made it easier to write code for a machine. Herman Goldstine, with contributions from his wife, Adele Goldstine, and from John von Neumann, created a graphical representation of this process: flow diagrams. Although the diagrams were only a notational device, they were widely circulated and had great influence, evolving into what are known today as flowcharts.

Zuse's Plankalkül
      Konrad Zuse developed the first real programming language, Plankalkül (“Plan Calculus”), in 1944–45. Zuse's language allowed for the creation of procedures (also called routines or subroutines; stored chunks of code that could be invoked repeatedly to perform routine operations such as taking a square root) and structured data (such as a record in a database, with a mixture of alphabetic and numeric data representing, for instance, name, address, and birth date). In addition, it provided conditional statements that could modify program execution, as well as repeat, or loop, statements that would cause a marked block of statements or a subroutine to be repeated a specified number of times or for as long as some condition held.

      Zuse knew that computers could do more than arithmetic, but he was aware of the propensity of anyone introduced to them to view them as nothing more than calculators. So he took pains to demonstrate nonnumeric solutions with Plankalkül. He wrote programs to check the syntactical correctness of Boolean expressions (an application in logic and text handling) and even to check chess moves.

      Unlike flowcharts, Zuse's program was no intermediate language intended for pencil-and-paper translation by mathematicians. It was deliberately intended for machine translation, and Zuse did some work toward implementing a translator for Plankalkül. He did not get very far, however; he had to disassemble his machine near the end of the war and was not able to put it back together and work on it for several years. Unfortunately, his language and his work, which were roughly a dozen years ahead of their time, were not generally known outside Germany.

Interpreters
      HLL coding was attempted right from the start of the stored-program era in the late 1940s. Shortcode, or short-order code, was the first such language actually implemented. Suggested by John Mauchly in 1949, it was implemented by William Schmitt for the BINAC computer in that year and for UNIVAC in 1950. Shortcode went through multiple steps: first it converted the alphabetic statements of the language to numeric codes, and then it translated these numeric codes into machine language. It was an interpreter, meaning that it translated HLL statements and executed, or performed, them one at a time—a slow process. Because of their slow execution, interpreters are now rarely used outside of program development, where they may help a programmer to locate errors quickly.

Compilers
      An alternative to this approach is what is now known as compilation. In compilation, the entire HLL program is converted to machine language and stored for later execution. Although translation may take many hours or even days, once the translated program is stored, it can be recalled anytime in the form of a fast-executing machine-language program.

      In 1952 Heinz Rutishauser, who had worked with Zuse on his computers after the war, wrote an influential paper, Automatische Rechenplanfertigung bei programmgesteuerten Rechenmaschinen (loosely translatable as “Computer Automated Conversion of Code to Machine Language”), in which he laid down the foundations of compiler construction and described two proposed compilers. Rutishauser was later involved in creating one of the most carefully defined programming languages of this early era, ALGOL. (See next section, FORTRAN, COBOL, and ALGOL.)

      Then, in September 1952, Alick Glennie, a student at the University of Manchester, England, created the first of several programs called Autocode for the Manchester Mark I. Autocode was the first compiler actually to be implemented. (The language that it compiled was called by the same name.) Glennie's compiler had little influence, however. When J. Halcombe Laning created a compiler for the Whirlwind computer at the Massachusetts Institute of Technology (MIT) two years later, he met with similar lack of interest. Both compilers had the fatal drawback of producing code that ran slower (10 times slower, in the case of Laning's) than code handwritten in machine language.

Grace Murray Hopper (Hopper, Grace Murray)
 While the high cost of computer resources placed a premium on fast hand-coded machine-language programs, one individual worked tirelessly to promote high-level programming languages and their associated compilers. Grace Murray Hopper (Hopper, Grace Murray) taught mathematics at Vassar College, Poughkeepsie, New York, from 1931 to 1943 before joining the U.S. Naval Reserve. In 1944 she was assigned to the Bureau of Ordnance Computation Project at Harvard University, where she programmed the Mark I under the direction of Howard Aiken. After World War II she joined J. Presper Eckert, Jr. (Eckert, J. Presper, Jr.), and John Mauchly (Mauchly, John W.) at their new company and, among other things, wrote compiler software for the BINAC and UNIVAC systems. Throughout the 1950s Hopper campaigned earnestly for high-level languages across the United States, and through her public appearances she helped to remove resistance to the idea. Such urging found a receptive audience at IBM, where the management wanted to add computers to the company's successful line of business machines.

      In the early 1950s John Backus (Backus, John W(arner)) convinced his managers at IBM to let him put together a team to design a language and write a compiler for it. He had a machine in mind: the IBM 704, which had built-in floating-point math operations. That the 704 used floating-point representation made it especially useful for scientific work, and Backus believed that a scientifically oriented programming language would make the machine even more attractive. Still, he understood the resistance to anything that slowed a machine down, and he set out to produce a language and a compiler that would produce code that ran virtually as fast as hand-coded machine language—and at the same time made the program-writing process a lot easier.

      By 1954 Backus and a team of programmers had designed the language, which they called FORTRAN (Formula Translation). Programs written in FORTRAN looked a lot more like mathematics than machine instructions:

DO 10 J = 1,11
I = 11 − J
Y = F(A(I + 1))
IF (400 − Y) 4,8,8
4 PRINT 5,1
5 FORMAT (I10, 10H TOO LARGE)

      The compiler was written, and the language was released with a professional-looking typeset manual (a first for programming languages) in 1957.

      FORTRAN took another step toward making programming more accessible, allowing comments in the programs. The ability to insert annotations, marked to be ignored by the translator program but readable by a human, meant that a well-annotated program could be read in a certain sense by people with no programming knowledge at all. For the first time a nonprogrammer could get an idea what a program did—or at least what it was intended to do—by reading (part of) the code. It was an obvious but powerful step in opening up computers to a wider audience.

      FORTRAN has continued to evolve, and it retains a large user base in academia and among scientists.

      About the time that Backus and his team invented FORTRAN, Hopper's group at UNIVAC released Math-matic, a FORTRAN-like language for UNIVAC computers. It was slower than FORTRAN and not particularly successful. Another language developed at Hopper's laboratory at the same time had more influence. Flow-matic used a more English-like syntax and vocabulary:

1 COMPARE PART-NUMBER (A) TO PART-NUMBER (B);
IF GREATER GO TO OPERATION 13;
IF EQUAL GO TO OPERATION 4;
OTHERWISE GO TO OPERATION 2.

      Flow-matic led to the development by Hopper's group of COBOL (Common Business-Oriented Language) in 1959. COBOL was explicitly a business programming language with a very verbose English-like style. It became central to the wide acceptance of computers by business after 1959.

      Although both FORTRAN and COBOL were universal languages (meaning that they could, in principle, be used to solve any problem that a computer could unravel), FORTRAN was better suited for mathematicians and engineers, whereas COBOL was explicitly a business programming language.

      During the late 1950s a multitude of programming languages appeared. This proliferation of incompatible specialized languages spurred an interest in the United States and Europe to create a single “second-generation (assembly language)” language. A transatlantic committee soon formed to determine specifications for ALGOL (Algorithmic Language), as the new language would be called. Backus, on the American side, and Heinz Rutishauser, on the European side, were among the most influential committee members.

      Although ALGOL introduced some important language ideas, it was not a commercial success. Customers preferred a known specialized language, such as FORTRAN or COBOL, to an unknown general-programming language. Only Pascal, a scientific programming-language offshoot of ALGOL, survives.

Operating systems (operating system)

Control programs
      In order to make the early computers truly useful and efficient, two major innovations in software were needed. One was high-level programming languages (as described in the preceding section, FORTRAN, COBOL, and ALGOL). The other was control. Today the systemwide control functions of a computer are generally subsumed under the term operating system, or OS. An OS handles the behind-the-scenes activities of a computer, such as orchestrating the transitions from one program to another and managing access to disk storage and peripheral devices.

      The need for some kind of supervisor program was quickly recognized, but the design requirements for such a program were daunting. The supervisor program would have to run in parallel with an application program somehow, monitor its actions in some way, and seize control when necessary. Moreover, the essential—and difficult—feature of even a rudimentary supervisor program was the interrupt facility. It had to be able to stop a running program when necessary but save the state of the program and all registers so that after the interruption was over the program could be restarted from where it left off.

      The first computer with such a true interrupt system was the UNIVAC 1103A, which had a single interrupt triggered by one fixed condition. In 1959 the Lincoln Labs TX2 generalized the interrupt capability, making it possible to set various interrupt conditions under software control. However, it would be one company, IBM (International Business Machines Corporation), that would create, and dominate, a market for business computers. IBM established its primacy primarily through one invention: the IBM 360 operating system.

The IBM 360
 IBM had been selling business machines since early in the century and had built Howard Aiken's computer to his architectural specifications. But the company had been slow to implement the stored-program digital computer architecture of the early 1950s. It did develop the IBM 650, a (like UNIVAC) decimal implementation of the IAS plan—and the first computer to sell more than 1,000 units.

      The invention of the transistor in 1947 led IBM to reengineer its early machines from electromechanical or vacuum tube to transistor technology in the late 1950s (although the UNIVAC Model 80, delivered in 1958, was the first transistor computer). These transistorized machines are commonly referred to as second-generation computers.

      Two IBM inventions, the magnetic disk and the high-speed chain printer, led to an expansion of the market and to the unprecedented sale of 12,000 computers of one model: the IBM 1401. The chain printer required a lot of magnetic core memory, and IBM engineers packaged the printer support, core memory, and disk support into the 1401, one of the first computers to use this solid-state technology.

      IBM had several lines of computers developed by independent groups of engineers within the company: a scientific-technical line, a commercial data-processing line, an accounting line, a decimal machine line, and a line of supercomputers (supercomputer). Each line had a distinct hardware-dependent operating system, and each required separate development and maintenance of its associated application software. In the early 1960s IBM began designing a machine that would take the best of all these disparate lines, add some new technology and new ideas, and replace all the company's computers with one single line, the 360. At an estimated development cost of $5 billion, IBM literally bet the company's future on this new, untested architecture.

      The 360 was in fact an architecture, not a single machine. Designers G.M. Amdahl, F.P. Brooks, and G.A. Blaauw explicitly separated the 360 architecture from its implementation details. The 360 architecture was intended to span a wide range of machine implementations and multiple generations of machines. The first 360 models were hybrid transistor–integrated circuit machines. integrated circuit computers are commonly referred to as third-generation computers.

      Key to the architecture was the operating system. OS/360 ran on all machines built to the 360 architecture—initially six machines spanning a wide range of performance characteristics and later many more machines. It had a shielded supervisory system (unlike the 1401, which could be interfered with by application programs), and it reserved certain operations as privileged in that they could be performed only by the supervisor program.

      The first IBM 360 computers were delivered in 1965. The 360 architecture represented a continental divide in the relative importance of hardware and software. After the 360, computers were defined by their operating systems.

      The market, on the other hand, was defined by IBM. In the late 1950s and into the 1960s, it was common to refer to the computer industry as “IBM and the Seven Dwarfs,” a reference to the relatively diminutive market share of its nearest rivals—Sperry Rand (UNIVAC), Control Data Corporation (CDC), Honeywell, Burroughs, General Electric (GE), RCA, and National Cash Register Co. During this time IBM had some 60–70 percent of all computer sales. The 360 did nothing to lessen the giant's dominance. When the market did open up somewhat, it was not due to the efforts of, nor was it in favour of, the dwarfs. Yet, while “IBM and the Seven Dwarfs” (soon reduced to “IBM and the BUNCH of Five,” BUNCH being an acronym for Burroughs, UNIVAC, NCR, CDC, and Honeywell) continued to build Big Iron, a fundamental change was taking place in how computers were accessed.

time-sharing and minicomputers

Time-sharing from Project MAC to UNIX
      In 1959 Christopher Strachey in the United Kingdom and John McCarthy in the United States independently described something they called time-sharing. Meanwhile, computer pioneer J.C.R. Licklider at the Massachusetts Institute of Technology (MIT) began to promote the idea of interactive computing as an alternative to batch processing. Batch processing was the normal mode of operating computers at the time: a user handed a deck of punched cards to an operator, who fed them to the machine, and an hour or more later the printed output would be made available for pickup. Licklider's notion of interactive programming involved typing on a teletype or other keyboard and getting more or less immediate feedback from the computer on the teletype's printer mechanism or some other output device. This was how the Whirlwind computer had been operated at MIT in 1950, and it was essentially what Strachey and McCarthy had in mind at the end of the decade.

      By November 1961 a prototype time-sharing system had been produced and tested. It was built by Fernando Corbato and Robert Jano at MIT, and it connected an IBM 709 computer with three users typing away at IBM Flexowriters. This was only a prototype for a more elaborate time-sharing system that Corbato was working on, called Compatible Time-Sharing System, or CTSS. Still, Corbato was waiting for the appropriate technology to build that system. It was clear that electromechanical and vacuum tube technologies would not be adequate for the computational demands that time-sharing would place on the machines. Fast, transistor-based computers were needed.

      In the meantime, Licklider had been placed in charge of a U.S. government program called the Advanced Research Projects Agency (Defense Advanced Research Projects Agency) (ARPA), created in response to the launch of the Sputnik satellite by the Soviet Union in 1957. ARPA researched interesting technological areas, and under Licklider's leadership it focused on time-sharing and interactive computing. With ARPA support, CTSS evolved into Project MAC, which went online in 1963.

      Project MAC was only the beginning. Other similar time-sharing projects followed rapidly at various research institutions, and some commercial products began to be released that also were called interactive or time-sharing. (The role of ARPA in creating another time-sharing network, ARPANET, became the foundation of the Internet and is discussed in a later section, The Internet (computer).)

      Time-sharing represented a different interaction model, and it needed a new programming language to support it. Researchers created several such languages, most notably BASIC (Beginner's All-Purpose Symbolic Instruction Code), which was invented in 1964 at Dartmouth College, Hanover, New Hampshire, by John Kemeny and Thomas Kurtz. BASIC had features that made it ideal for time-sharing, and it was easy enough to be used by its target audience: college students. Kemeny and Kurtz wanted to open computers to a broader group of users and deliberately designed BASIC with that goal in mind. They succeeded.

      Time-sharing also called for a new kind of operating system. Researchers at AT&T (AT&T Corporation) (American Telephone and Telegraph Company) and GE (General Electric Co.) tackled the problem with funding from ARPA via Project MAC and an ambitious plan to implement time-sharing on a new computer with a new time-sharing-oriented operating system. AT&T dropped out after the project was well under way, but GE went ahead, and the result was the Multics operating system running on the GE 645 computer. GE 645 exemplified the time-shared computer in 1965, and Multics was the model of a time-sharing operating system, built to be up seven days a week, 24 hours a day.

      When AT&T dropped out of the project and removed the GE machines from its laboratories, researchers at AT&T's high-tech research arm, Bell Laboratories, were upset. They felt they needed the time-sharing capabilities of Multics for their work, and so two Bell Labs workers, Ken Thompson and Dennis Ritchie, wrote their own operating system. Since the operating system was inspired by Multics but would initially be somewhat simpler, they called it UNIX.

      UNIX embodied, among other innovations, the notion of pipes. Pipes allowed a user to pass the results of one program to another program for use as input. This led to a style of programming in which small, targeted, single-function programs were joined together to achieve a more complicated goal. Perhaps the most influential aspect of UNIX, though, was that Bell Labs distributed the source code (the uncompiled, human-readable form of the code that made up the operating system) freely to colleges and universities—but made no offer to support it. The freely distributed source code led to a rapid, and somewhat divergent, evolution of UNIX. Whereas initial support was attracted by its free availability, its robust multitasking and well-developed network security features have continued to make it the most common operating system for academic institutions and World Wide Web servers.

Minicomputers
 About 1965, roughly coterminous with the development of time-sharing, a new kind of computer came on the scene. Small and relatively inexpensive (typically one-tenth the cost of the Big Iron machines), the new machines were stored-program computers with all the generality of the computers then in use but stripped down. The new machines were called minicomputers. (About the same time, the larger traditional computers began to be called mainframes.) Minicomputers were designed for easy connection to scientific instruments and other input/output devices, had a simplified architecture, were implemented using fast transistors, and were typically programmed in assembly language with little support for high-level languages.

      Other small, inexpensive computing devices were available at the time but were not considered minicomputers. These were special-purpose scientific machines or small character-based or decimal-based machines such as the IBM 1401. They were not considered “minis,” however, because they did not meet the needs of the initial market for minis—that is, for a lab computer to control instruments and collect and analyze data.

      The market for minicomputers evolved over time, but it was scientific laboratories that created the category. It was an essentially untapped market, and those manufacturers who established an early foothold dominated it. Only one of the mainframe manufacturers, Honeywell, was able to break into the minicomputer market in any significant way. The other main minicomputer players, such as Digital Equipment Corporation (DEC), Data General Corporation, Hewlett-Packard Company, and Texas Instruments Incorporated, all came from fields outside mainframe computing, frequently from the field of electronic test equipment. The failure of the mainframe companies to gain a foothold in the minimarket may have stemmed from their failure to recognize that minis were distinct in important ways from the small computers that these companies were already making.

      The first minicomputer, although it was not recognized as such at the time, may have been the MIT Whirlwind in 1950. It was designed for instrument control and had many, although not all, of the features of later minis. DEC (Digital Equipment Corporation), founded in 1957 by Kenneth Olsen and Harlan Anderson, produced one of the first minicomputers, the Programmed Data Processor, or PDP-1, in 1959. At a price of $120,000, the PDP-1 sold for a fraction of the cost of mainframe computers, albeit with vastly more limited capabilities. But it was the PDP-8, using the recently invented integrated circuit (a set of interconnected transistors and resistors on a single silicon wafer, or chip) and selling for around $20,000 (falling to $3,000 by the late 1970s), that was the first true mass-market minicomputer. The PDP-8 was released in 1965, the same year as the first IBM 360 machines.

      The PDP-8 was the prototypical mini. It was designed to be programmed in assembly language; it was easy—physically, logically, and electrically—to attach a wide variety of input/output devices and scientific instruments to it; and it was architecturally stripped down with little support for programming—it even lacked multiplication and division operations in its initial release. It had a mere 4,096 words of memory, and its word length was 12 bits—very short even by the standards of the times. (The word is the smallest chunk of memory that a program can refer to independently; the size of the word limits the complexity of the instruction set and the efficiency of mathematical operations.) The PDP-8's short word and small memory made it relatively underpowered for the time, but its low price more than compensated for this.

      The PDP-11 shipped five years later, relaxing some of the constraints imposed on the PDP-8. It was designed to support high-level languages, had more memory and more power generally, was produced in 10 different models over 10 years, and was a great success. It was followed by the VAX line, which supported an advanced operating system called VAX/VMS—VMS standing for virtual memory system, an innovation that effectively expanded the memory of the machine by allowing disk or other peripheral storage to serve as extra memory. By this time (the early 1970s) DEC was vying with Sperry Rand (manufacturer of the UNIVAC computer) for position as the second largest computer company in the world, though it was producing machines that had little in common with the original prototypical minis.

      Although the minis' early growth was due to their use as scientific instrument controllers and data loggers, their compelling feature turned out to be their approachability. After years of standing in line to use departmental, universitywide, or companywide machines through intermediaries, scientists and researchers could now buy their own computer and run it themselves in their own laboratories. And they had intimate access to the internals of the machine, the stripped-down architecture making it possible for a smart graduate student to reconfigure the machine to do something not intended by the manufacturer. With their own computers in their labs, researchers began to use minis for all sorts of new purposes, and the manufacturers adapted later releases of the machines to the evolving demands of the market.

      The minicomputer revolution lasted about a decade. By 1975 it was coming to a close, but not because minis were becoming less attractive. The mini was about to be eclipsed by another technology: the new integrated circuits, which would soon be used to build the smallest, most affordable computers to date. The rise of this new technology is described in the next section, The personal computer revolution.

The personal computer revolution
      Before 1970, computers were big machines requiring thousands of separate transistors. They were operated by specialized technicians, who often dressed in white lab coats and were commonly referred to as a computer priesthood. The machines were expensive and difficult to use. Few people came in direct contact with them, not even their programmers. The typical interaction was as follows: a programmer coded instructions and data on preformatted paper, a keypunch operator transferred the data onto punch cards, a computer operator fed the cards into a card reader, and the computer executed the instructions or stored the cards' information for later processing. Advanced installations might allow users limited interaction with the computer more directly, but still remotely, via time-sharing through the use of cathode-ray tube terminals or teletype machines.

      At the beginning of the 1970s there were essentially two types of computers. There were room-sized mainframes, costing hundreds of thousands of dollars, that were built one at a time by companies such as IBM and CDC. There also were smaller, cheaper, mass-produced minicomputers, costing tens of thousands of dollars, that were built by a handful of companies, such as Digital Equipment Corporation and Hewlett-Packard Company, for scientific laboratories and businesses.

      Still, most people had no direct contact with either type of computer, and the machines were popularly viewed as impersonal giant brains that threatened to eliminate jobs through automation. The idea that anyone would have his or her own desktop computer was generally regarded as far-fetched. Nevertheless, with advances in integrated circuit technology, the necessary building blocks for desktop computing began to emerge in the early 1970s.

Integrated circuits (integrated circuit)
      William Shockley (Shockley, William B.), a coinventor of the transistor, started Shockley Semiconductor Laboratories in 1955 in his hometown of Palo Alto, California. In 1957 his eight top researchers left to form Fairchild Semiconductor Corporation, funded by Fairchild Camera and Instrument Corporation. Along with Hewlett-Packard (Hewlett-Packard Company), another Palo Alto firm, Fairchild Semiconductor was the seed of what would become known as Silicon Valley. Historically, Fairchild will always deserve recognition as one of the most important semiconductor (semiconductor device) companies, having served as the training ground for most of the entrepreneurs who went on to start their own computer companies in the 1960s and early 1970s.

      From the mid-1960s into the early '70s, Fairchild Semiconductor Corporation and Texas Instruments Incorporated were the leading manufacturers of integrated circuits (integrated circuit) (ICs) and were continually increasing the number of electronic components embedded in a single silicon wafer, or chip. As the number of components escalated into the thousands, these chips began to be referred to as large-scale integration chips, and computers using them are sometimes called fourth-generation computers. The invention of the microprocessor was the culmination of this trend.

      Although computers were still rare and often regarded as a threat to employment, calculators were common and accepted in offices. With advances in semiconductor technology, a market was emerging for sophisticated electronic desktop calculators. It was, in fact, a calculator project that turned into a milestone in the history of computer technology.

The Intel 4004
      In 1969 Busicom, a Japanese calculator company, commissioned Intel Corporation to make the chips for a line of calculators (calculator) that Busicom intended to sell. Custom chips were made for many clients, and this was one more such contract, hardly unusual at the time.

      Intel was one of several semiconductor companies to emerge in Silicon Valley, having spun off from Fairchild Semiconductor. Intel's president, Robert Noyce (Noyce, Robert), while at Fairchild, had invented planar integrated circuits, a process in which the wiring was directly embedded in the silicon along with the electronic components at the manufacturing stage.

      Intel had planned on focusing its business on memory chips, but Busicom's request for custom chips for a calculator turned out to be a most valuable diversion. While specialized chips were effective at their given task, their small market made them expensive. Three Intel engineers—Federico Faggin, Marcian (“Ted”) Hoff, and Stan Mazor—considered the request of the Japanese firm and proposed a more versatile design.

      Hoff had experience with minicomputers, which could do anything the calculator could do and more. He rebelled at building a special-purpose device when the technology existed to build a general-purpose one. The general-purpose device he had in mind, however, would be a lot like a computer, and at that time computers intimidated people while calculators did not. Moreover, there was a clear and large market for calculators and a limited one for computers—and, after all, the customer had commissioned a calculator chip.

      Nevertheless, Hoff prevailed, and Intel proposed a design that was functionally very similar to a minicomputer (although not in size, power, attachable physical devices such as printers, or many other practical ways). In addition to performing the input/output functions that most ICs carried out, the design would form the instructions for the IC and would help to control, send, and receive signals from other chips and devices. A set of instructions was stored in memory, and the chip could read them and respond to them. The device would thus do everything that Busicom wanted, but it would do a lot more: it was the essence of a general-purpose computer. There was little obvious demand for such a device, but the Intel team, understanding the drawbacks of special-purpose ICs, sensed that it was an economical device that would, somehow, find a market.

      At first Busicom was not interested, but Intel decided to go forward with the design anyway, and the Japanese company eventually accepted it. Intel named the chip the 4004, which referred to the number of features and transistors it had. These included memory, input/output, control, and arithmetical/logical capacities. It came to be called a microprocessor or microcomputer. It is this chip that is referred to as the brain of the personal desktop computer—the central processing unit, or CPU.

      Busicom eventually sold over 100,000 calculators powered by the 4004. Busicom later also accepted a one-time payment of $60,000 that gave Intel exclusive rights to the 4004 design, and Intel began marketing the chip to other manufacturers in 1971.

      The 4004 had significant limitations. As a four-bit processor, it was capable of only 24, or 16, distinct combinations, or “words.” To distinguish the 26 letters of the alphabet and up to six punctuation symbols, the computer had to combine two four-bit words. Nevertheless, the 4004 achieved a level of fame when Intel found a high-profile customer for it: it was used on the Pioneer 10 (Pioneer) space probe, launched on March 2, 1972.

      It became a little easier to see the potential of microprocessors when Intel introduced an eight-bit processor, the 8008, in November 1972. (In 1974 the 8008 was reengineered with a larger, more versatile instruction set as the 8080.) In 1972 Intel was still a small company, albeit with two new and revolutionary products. But no one—certainly not their inventors—had figured out exactly what to do with Intel's microprocessors.

      Intel placed in electronics magazines articles expounding the microprocessors' capabilities and proselytized engineering organizations and companies in the hope that others would come up with applications. With the basic capabilities of a computer now available on a tiny speck of silicon, some observers realized that this was the dawn of a new age of computing. That new age would centre on the microcomputer.

Early computer enthusiasts
      Though the young engineering executives at Intel could sense the ground shifting upon the introduction of their new microprocessors, the leading computer manufacturers did not. It should not have taken a visionary to observe the trend of cheaper, faster, and more powerful devices. Nevertheless, even after the invention of the microprocessor, few could imagine a market for personal computers.

      The advent of the microprocessor did not inspire IBM or any other large company to begin producing personal computers. Time after time, the big computer companies overlooked the opportunity to bring computing capabilities to a much broader market. In some cases, they turned down explicit proposals by their own engineers to build such machines. Instead, the new generation of microcomputers or personal computers emerged from the minds and passions of electronics hobbyists and entrepreneurs.

      In the San Francisco Bay area, the advances of the semiconductor industry were gaining recognition and stimulating a grassroots computer movement. Lee Felsenstein, an electronics engineer active in the student antiwar movement of the 1960s, started an organization called Community Memory to install computer terminals in storefronts. This movement was a sign of the times, an attempt by computer cognoscenti to empower the masses by giving ordinary individuals access to a public computer network.

      The frustration felt by engineers and electronics hobbyists who wanted easier access to computers was expressed in articles in the electronics magazines in the early 1970s. Magazines such as Popular Electronics and Radio Electronics helped spread the notion of a personal computer. And in the San Francisco Bay area and elsewhere hobbyists organized computer clubs to discuss how to build their own computers.

      Dennis Allison wrote a version of BASIC for these early personal computers and, with Bob Albrecht, published the code in 1975 in a newsletter called Dr. Dobb's Journal of Computer Calisthenics and Orthodontia, later changed to Dr. Dobb's Journal. Dr. Dobb's is still publishing programming tips and public domain software, making programs available to anyone willing to type them into a computer. The publication continues to reflect the early passion for sharing computer knowledge and software.

The Altair
 In September 1973 Radio Electronics published an article describing a “TV Typewriter,” which was a computer terminal that could connect a hobbyist with a mainframe computer. It was written by Don Lancaster, an aerospace engineer and fire spotter in Arizona who was also a prolific author of do-it-yourself articles for electronics hobbyists. The TV Typewriter provided the first display of alphanumeric information on a common television set. It influenced a generation of computer hobbyists to start thinking about real “home-brewed” computers.

      The next step was the personal computer itself. That same year a French company, R2E, developed the Micral microcomputer using the 8008 processor. The Micral was the first commercial, non-kit microcomputer. Although the company sold 500 Micrals in France that year, it was little known among American hobbyists.

      Instead, a company called Micro Instrumentation Telemetry Systems, which rapidly became known as MITS, made the big American splash. This company, located in a tiny office in an Albuquerque, New Mexico, shopping centre, had started out selling radio transmitters for model airplanes in 1968. It expanded into the kit calculator business in the early 1970s. This move was terribly ill-timed because other, larger manufacturers such as Hewlett-Packard and Texas Instruments (itself a leading designer of ICs) soon moved into the market with mass-produced calculators (calculator). As a result, calculators quickly became smaller, more powerful, and cheaper. By 1974 the average cost for a calculator had dropped from several hundred dollars to about $25, and MITS was on the verge of bankruptcy.

      In need of a new product, MITS came up with the idea of selling a computer kit. The kit, containing all of the components necessary to build an Altair computer, sold for $397, barely more than the list cost of the Intel 8080 microprocessor that it used. A January 1975 cover article in Popular Electronics generated hundreds of orders for the kit, and MITS was saved.

      The firm did its best to live up to its promise of delivery within 60 days, and to do so it limited manufacture to a bare-bones kit that included a box, a CPU board with 256 bytes of memory, and a front panel. The machines, especially the early ones, had only limited reliability. To make them work required many hours of assembly by an electronics expert.

      When assembled, Altairs were blue, box-shaped machines that measured 17 inches by 18 inches by 7 inches (approximately 43 cm by 46 cm by 18 cm). There was no keyboard, video terminal, paper-tape reader, or printer. There was no software. All programming was in assembly language. The only way to input programs was by setting switches on the front panel for each instruction, step-by-step. A pattern of flashing lights on the front panel indicated the results of a program.

      Just getting the Altair to blink its lights represented an accomplishment. Nevertheless, it sparked people's interest. In Silicon Valley, members of a nascent hobbyist group called the Homebrew Computer Club gathered around an Altair at one of their first meetings. Homebrew epitomized the passion and antiestablishment camaraderie that characterized the hobbyist community in Silicon Valley. At their meetings, chaired by Felsenstein, attendees compared digital devices that they were constructing and discussed the latest articles in electronics magazines.

      In one important way, MITS modeled the Altair after the minicomputer. It had a bus structure, a data path for sending instructions throughout its circuitry that would allow it to house and communicate with add-on circuit boards. The Altair hardly represented a singular revolutionary invention, along the lines of the transistor, but it did encourage sweeping change, giving hobbyists the confidence to take the next step.

The hobby market expands
      Some entrepreneurs, particularly in the San Francisco Bay area, saw opportunities to build add-on devices, or peripherals, for the Altair; others decided to design competitive hardware products. Because different machines might use different data paths, or buses, peripherals built for one computer might not work with another computer. This led the emerging industry to petition the Institute for Electrical and Electronics Engineers to select a standard bus. The resulting standard, the S-100 bus, was open for all to use and became ubiquitous among early personal computers. Standardizing on a common bus helped to expand the market for early peripheral manufacturers, spurred the development of new devices, and relieved computer manufacturers of the onerous need to develop their own proprietary peripherals.

      These early microcomputer companies took the first steps toward building a personal computer industry, but most of them eventually collapsed, unable to build enough reliable machines or to offer sufficient customer support. In general, most of the early companies lacked the proper balance of engineers, entrepreneurs, capital, and marketing experience. But perhaps even more significant was a dearth of software that could make personal computers useful to a larger, nonhobbyist market.

Early microcomputer software

From Star Trek to Microsoft
      The first programs developed for the hobbyists' microcomputers were games (electronic game). With the early machines limited in graphic capabilities, most of these were text-based adventure or role-playing games. However, there were a few graphical games, such as Star Trek, which were popular on mainframes and minicomputers and were converted to run on microcomputers. One company created the game Micro Chess and used the profits to fund the development of an important program called VisiCalc, the industry's first spreadsheet software. These games, in addition to demonstrating some of the microcomputer's capabilities, helped to convince ordinary individuals, in particular small-business owners, that they could operate a computer.

      As was the case with large computers, the creation of application software for the machines waited for the development of programming languages and operating systems. Gary Kildall developed the first operating system for a microcomputer as part of a project he contracted with Intel several years before the release of the Altair. Kildall realized that a computer had to be able to handle storage devices such as disk drives, and for this purpose he developed an operating system called CP/M.

      There was no obvious use for such software at the time, and Intel agreed that Kildall could keep it. Later, when a few microcomputer companies had emerged from among the hobbyists and entrepreneurs inspired by MITS, a company called IMSAI realized that an operating system would attract more software to its machine, and it chose CP/M. Most companies followed suit, and Kildall's company, Digital Research, became one of the first software giants in the emerging microcomputer industry.

      High-level languages were also needed in order for programmers to develop applications. Two young programmers realized this almost immediately upon hearing of the MITS Altair. Childhood friends William (“Bill”) Gates (Gates, Bill) and Paul Allen were whiz kids with computers as they grew up in Seattle, Washington, debugging software on minicomputers at the ages of 13 and 15, respectively. As teenagers they had started a company and had built the hardware and written the software that would provide statistics on traffic flow from a rubber tube strung across a highway. Later, when the Altair came out, Allen quit his job, and Gates left Harvard University, where he was a student, in order to create a version of the programming language BASIC that could run on the new computer. They licensed their version of BASIC to MITS and started calling their partnership Microsoft (Microsoft Corporation). The Microsoft Corporation went on to develop versions of BASIC for nearly every computer that was released. It also developed other high-level languages. When IBM eventually decided to enter the microcomputer business in 1980, it called on Microsoft for both a programming language and an operating system, and the small partnership was on its way to becoming the largest software company in the world. (See the section The IBM Personal Computer (computer).)

Application software
      The availability of BASIC and CP/M enabled more widespread software development. By 1977 a two-person firm called Structured Systems Group started developing a General Ledger program, perhaps the first serious business software, which sold for $995. The company shipped its software in ziplock bags with a manual, a practice that became common in the industry. General Ledger began to familiarize business managers with microcomputers. Another important program was the first microcomputer word processor, called Electric Pencil, developed by a former camera operator turned computer hobbyist. Electric Pencil was one of the first programs that allowed nontechnical people to perform useful tasks on personal computers. Nevertheless, the early personal computer companies still underestimated the value of software, and many refused to pay the software developer to convert Electric Pencil to run on their machines. Eventually the availability of some software would play a major role in determining the success of a computer.

      In 1979 a Harvard business graduate named Dan Bricklin and a programmer named Bob Frankston developed VisiCalc, the first personal computer financial analysis tool. VisiCalc made business forecasting much simpler, allowing individuals to ask “What if” questions about numerical data and get the sort of immediate response that was not even possible for giant corporations using mainframe computer systems. Personal Software, the company that distributed VisiCalc, became hugely successful. With a few companies such as Microsoft leading the way, a software industry separate from the hardware field began to emerge.

Commodore and Tandy enter the field
      In late 1976 Commodore Business Machines, an established electronics firm that had been active in producing electronic calculators, bought a small hobby-computer company named MOS Technology. For the first time, an established company with extensive distribution channels would be selling a microcomputer.

      The next year, another established company entered the microcomputer market. Tandy Corporation, best known for its chain of Radio Shack stores, had followed the development of MITS and decided to enter the market with its own TRS-80 microcomputer, which came with four kilobytes of memory, a Z80 microprocessor, a BASIC programming language, and cassettes for data storage. To cut costs, the machine was built without the ability to type lowercase letters. Thanks to Tandy's chain of stores and the breakthrough price ($399 fully assembled and tested), the machine was successful enough to convince the company to introduce a more powerful computer two years later, the TRS-80 Model II, which could reasonably be marketed as a small-business computer. Tandy started selling its computers in greater volumes than most of the microcomputer start-ups, except for one.

 Like the founding of the early chip companies and the invention of the microprocessor, the story of Apple (Apple Inc.) is a key part of Silicon Valley folklore. Two whiz kids, Stephen G. Wozniak (Wozniak, Stephen Gary) and Steven P. Jobs (Jobs, Steven P.), shared an interest in electronics. Wozniak was an early and regular participant at Homebrew Computer Club meetings (see the earlier section, The Altair (computer)), which Jobs also occasionally attended.

      Wozniak purchased one of the early microprocessors, the Mostek 6502 (made by MOS Technology), and used it to design a computer. When Hewlett-Packard, where he had an internship, declined to build his design, he shared his progress at a Homebrew meeting, where Jobs suggested that they could sell it together. Their initial plans were modest. Jobs figured that they could sell it for $50, twice what the parts cost them, and that they could sell hundreds of them to hobbyists. The product was actually only a printed circuit board. It lacked a case, a keyboard, and a power supply. Jobs got an order for 50 of the machines from Paul Terrell, owner of one of the industry's first computer retail stores and a frequent Homebrew attendee. To raise the capital to buy the parts they needed, Jobs sold his minibus and Wozniak his calculator. They met their 30-day deadline and continued production in Jobs's parents' garage.

      After their initial success, Jobs sought out the kind of help that other industry pioneers had shunned. While he and Wozniak began work on the Apple II, he consulted with a venture capitalist and enlisted an advertising company to aid him in marketing. As a result, in late 1976 A.C. (“Mike”) Markkula, a retired semiconductor company executive, helped write a business plan for Apple, lined up credit from a bank, and hired a serious businessman to run the venture. Apple was clearly taking a different path from its competitors. For instance, while Altair and the other microcomputer start-ups ran advertisements in technical journals, Apple ran an early colour ad in Playboy magazine. Its executive team lined up nationwide distributors. Apple made sure each of its subsequent products featured an elegant, consumer-style design. It also published well-written and carefully designed manuals to instruct consumers on the use of the machines. Other manuals explained all the technical details any third-party hardware or software company would have to know to build peripherals. In addition, Apple quickly built well-engineered products that made the Apple II far more useful: a printer card, a serial card, a communications card, a memory card, and a floppy disk. This distinctive approach resonated well in the marketplace.

      In 1980 the Apple III was introduced. For this new computer Apple designed a new operating system, though it also offered a capability known as emulation that allowed the machine to run the same software, albeit much slower, as the Apple II. After several months on the market the Apple III was recalled so that certain defects could be repaired (proving that Apple was not immune to the technical failures from which most early firms suffered), but upon reintroduction to the marketplace it never achieved the success of its predecessor (demonstrating how difficult it can be for a company to introduce a computer that is not completely compatible with its existing product line).

      Nevertheless, the flagship Apple II and successors in that line—the Apple II+, the Apple IIe, and the Apple IIc—made Apple into the leading personal computer company in the world. In 1980 it announced its first public stock offering, and its young founders became instant millionaires. After three years in business, Apple's revenues had increased from $7.8 million to $117.9 million.

 In 1982 Apple introduced its Lisa computer, a much more powerful computer with many innovations. The Lisa used a more advanced microprocessor, the Motorola 68000. It also had a different way of interacting with the user, called a graphical user interface (GUI). The GUI replaced the typed command lines common on previous computers with graphical icons on the screen that invoked actions when pointed to by a handheld pointing device called the mouse. The Lisa was not successful, but Apple was already preparing a scaled-down, lower-cost version called the Macintosh. Introduced in 1984, the Macintosh became wildly successful and, by making desktop computers easier to use, further popularized personal computers.

 The Lisa and the Macintosh popularized several ideas that originated at other research laboratories in Silicon Valley and elsewhere. These underlying intellectual ideas, centred on the potential impact that computers could have on people, had been nurtured first by Vannevar Bush (Bush, Vannevar) in the 1940s and then by Douglas Engelbart (Engelbart, Douglas). Like Bush, who inspired him, Engelbart was a visionary. As early as 1963 he was predicting that the computer would eventually become a tool to augment human intellect, and he specifically described many of the uses computers would have, such as word processing. In 1968, as a researcher at the Stanford Research Institute (SRI), Engelbart gave a remarkable demonstration of the “NLS” (oNLine System), which featured a keyboard and a mouse, a device he had invented that was used to select commands from a menu of choices shown on a display screen. The screen was divided into multiple windows, each able to display text—a single line or an entire document—or an image. Today almost every popular computer comes with a mouse and features a system that utilizes windows on the display. (See photograph—>.)

      In the 1970s some of Engelbart's colleagues left SRI for Xerox Corporation's Palo Alto (California) Research Center (Xerox PARC) (PARC), which became a hotbed of computer research. In the coming years scientists at PARC pioneered many new technologies. Xerox (Xerox PARC) built a prototype computer with a GUI operating system called the Alto and eventually introduced a commercial version called the Xerox Star in 1981. Xerox's efforts to market this computer were a failure, and the company withdrew from the market. Apple with its Lisa and Macintosh computers and then Microsoft with its Windows operating system imitated the design of the Alto and Star systems in many ways.

      Two computer scientists at PARC, Alan Kay and Adele Goldberg, published a paper in the early 1970s describing a vision of a powerful and portable computer they dubbed the Dynabook. The prototypes of this machine were expensive and resembled sewing machines, but the vision of the two researchers greatly influenced the evolution of products that today are dubbed notebook or laptop computers.

      Another researcher at PARC, Robert Metcalfe, developed a network system in 1973 that could transmit and receive data at three million bits a second, much faster than was generally thought possible at the time. Xerox did not see this as related to its core business of copiers, and it allowed Metcalfe to start his own company based on the system, called Ethernet. Ethernet eventually became the technical standard for connecting digital computers together in an office environment.

      PARC researchers used Ethernet to connect their Altos together and to share another invention of theirs, the laser printer. Laser printers work by shooting a stream of light that gives a charge to the surface of a rotating drum. The charged area attracts toner powder so that when paper rolls over it an image is transferred. PARC programmers also developed numerous other innovations, such as the Smalltalk programming language, designed to make programming accessible to users who were not computer experts, and a text editor called Bravo, which displayed text on a computer screen exactly as it would look on paper.

      Xerox PARC came up with these innovations but left it to others to commercialize them. Today they are viewed as commonplace.

The IBM Personal Computer
 The entry of IBM (International Business Machines Corporation) did more to legitimize personal computers than any event in the industry's history. By 1980 the personal computer field was starting to interest the large computer companies. Hewlett-Packard (Hewlett-Packard Company), which had earlier turned down Stephen G. Wozniak's proposal to enter the personal computer field, was now ready to enter this business, and in January 1980 it brought out its HP-85. Hewlett-Packard's machine was more expensive ($3,250) than those of most competitors, and it used a cassette tape drive for storage while most companies were already using disk drives. Another problem was its closed architecture, which made it difficult for third parties to develop applications or software for it.

      Throughout its history IBM had shown a willingness to place bets on new technologies, such as the 360 architecture. (See the earlier section The IBM 360 (computer).) Its long-term success was due largely to its ability to innovate and to adapt its business to technological change. “Big Blue,” as the company was commonly known, introduced the first computer disk storage system, the RAMAC, which showed off its capabilities by answering world history questions in 10 languages at the 1958 World's Fair. From 1956 to 1971 IBM sales had grown from $900 million to $8 billion, and its number of employees had increased from 72,500 to 270,000. IBM had also innovated new marketing techniques such as the unbundling of hardware, software, and computer services. So it was not a surprise that IBM would enter the fledgling but promising personal computer business.

      In fact, right from project conception, IBM took an intelligent approach to the personal computer field. It noticed that the market for personal computers was spreading rapidly among both businesses and individuals. To move more rapidly than usual, IBM recruited a team of 12 engineers to build a prototype computer. Once the project was approved, IBM picked another small team of engineers to work on the project at its Boca Raton, Florida, laboratories. Philip Estridge, manager of the project, owned an Apple II and appreciated its open architecture, which allowed for the easy development of add-on products. IBM contracted with other companies to produce components for their computer and to base it on an open architecture that could be built with commercially available materials. With this plan, IBM would be able to avoid corporate bottlenecks and bring its computer to market in a year, more rapidly than competitors. Intel Corporation's 16-bit 8088 microprocessor was selected as the central processing unit (CPU) for the computer, and for software IBM turned to Microsoft Corporation. Until then the small software company had concentrated mostly on computer languages, but Bill Gates and Paul Allen found it impossible to turn down this opportunity. They purchased a small operating system from another company and turned it into PC-DOS (or MS-DOS, or sometimes just DOS (MS-DOS), for disk operating system), which quickly became the standard operating system for the IBM Personal Computer. IBM had first approached Digital Research to inquire about its CP/M operating system, but Digital's executives balked at signing IBM's nondisclosure agreement. Later IBM also offered a version of CP/M but priced it higher than DOS, sealing the fate of the operating system. In reality, DOS resembled CP/M in both function and appearance, and users of CP/M found it easy to convert to the new IBM machines.

      IBM had the benefit of its own experience to know that software was needed to make a computer useful. In preparation for the release of its computer, IBM contracted with several software companies to develop important applications. From day one it made available a word processor, a spreadsheet program, and a series of business programs. Personal computers were just starting to gain acceptance in businesses, and in this market IBM had a built-in advantage, as expressed in the adage “Nobody was ever fired for buying from IBM.”

      IBM named its product the IBM Personal Computer, which quickly was shortened to the IBM PC. It was an immediate success, selling more than 500,000 units in its first two years. More powerful than other desktop computers at the time, it came with 16 kilobytes of memory (expandable to 256 kilobytes), one or two floppy disk drives, and an optional colour monitor. The giant company also took an unlikely but wise marketing approach by selling the IBM PC through computer dealers and in department stores, something it had never done before.

      IBM's entry into personal computers broadened the market and energized the industry. Software developers, aware of Big Blue's immense resources and anticipating that the PC would be successful, set out to write programs for the computer. Even competitors benefited from the attention that IBM brought to the field; and when they realized that they could build machines compatible with the IBM PC, the industry rapidly changed.

The market expands

PC clones
 In 1982 a well-funded start-up firm called Compaq Computer Corporation came out with a portable computer that was compatible with the IBM PC. These first portables resembled sewing machines when they were closed and weighed about 28 pounds (approximately 13 kg)—at the time a true lightweight. Compatibility with the IBM PC meant that any software or peripherals, such as printers, developed for use with the IBM PC would also work on the Compaq portable. The machine caught IBM by surprise and was an immediate success. Compaq was not only successful but showed other firms how to compete with IBM. Quickly thereafter many computer firms began offering “PC clones.” IBM's decision to use off-the-shelf parts, which once seemed brilliant, had altered the company's ability to control the computer industry as it always had with previous generations of technology.

      The change also hurt Apple (Apple Inc.), which found itself isolated as the only company not sharing in the standard PC design. Apple's Macintosh was successful, but it could never hope to attract the customer base of all the companies building IBM PC compatibles. Eventually software companies began to favour the PC makers with more of their development efforts, and Apple's market share began to drop. Apple cofounder Stephen Wozniak left in February 1985 to become a teacher, and Apple cofounder Steven Jobs was ousted in a power struggle in September 1985. During the ensuing turmoil, Apple held on to its loyal customer base, thanks to its innovative user interface and overall ease of use, but its market share continued to erode as lower-costing PCs began to catch up with, and even pass, Apple's technological lead.

Microsoft (Microsoft Corporation)'s Windows (Windows OS) operating system
      In 1985 Microsoft came out with its Windows operating system, which gave PC compatibles some of the same capabilities as the Macintosh. Year after year, Microsoft refined and improved Windows so that Apple, which failed to come up with a significant new advantage, lost its edge. IBM tried to establish yet another operating system, OS/2, but lost the battle to Gates's company. In fact, Microsoft also had established itself as the leading provider of application software for the Macintosh. Thus Microsoft dominated not only the operating system and application software business for PC-compatibles but also the application software business for the only nonstandard system with any sizable share of the desktop computer market. In 1998, amid a growing chorus of complaints about Microsoft's business tactics, the U.S. Department of Justice filed a lawsuit charging Microsoft with using its monopoly position to stifle competition.

workstation computers
      While the personal computer market grew and matured, a variation on its theme grew out of university labs and began to threaten the minicomputers for their market. The new machines were called workstations. They looked like personal computers, and they sat on a single desktop and were used by a single individual just like personal computers, but they were distinguished by being more powerful and expensive, by having more complex architectures that spread the computational load over more than one CPU chip, by usually running the UNIX operating system, and by being targeted to scientists and engineers, software and chip designers, graphic artists, moviemakers, and others needing high performance. Workstations existed in a narrow niche between the cheapest minicomputers and the most powerful personal computers, and each year they had to become more powerful, pushing at the minicomputers even as they were pushed at by the high-end personal computers.

      The most successful of the workstation manufacturers were Sun Microsystems (Sun Microsystems, Inc.), Inc., started by people involved in enhancing the UNIX operating system, and, for a time, Silicon Graphics (SGI), Inc., which marketed machines for video and audio editing.

      The microcomputer market now included personal computers, software, peripheral devices, and workstations. Within two decades this market had surpassed the market for mainframes and minicomputers in sales and every other measure. As if to underscore such growth, in 1996 Silicon Graphics (SGI), a workstation manufacturer, bought the star of the supercomputer manufacturers, Cray Research, and began to develop supercomputers as a sideline. Moreover, Compaq Computer Corporation—which had parlayed its success with portable PCs into a perennial position during the 1990s as the leading seller of microcomputers—bought the reigning king of the minicomputer manufacturers, Digital Equipment Corporation (DEC). Compaq announced that it intended to fold DEC technology into its own expanding product line and that the DEC brand name would be gradually phased out. Microcomputers were not only outselling mainframes and minis, they were blotting them out.

Living in cyberspace
Ever smaller computers

Embedded systems (embedded processor)
      One can look at the development of the electronic computer as occurring in waves. The first large wave was the mainframe era, when many people had to share single machines. (The mainframe era is covered in the section The age of Big Iron (computer).) In this view, the minicomputer era can be seen as a mere eddy in the larger wave, a development that allowed a favoured few to have greater contact with the big machines. Overall, the age of mainframes could be characterized by the expression “Many persons, one computer.”

      The second wave of computing history was brought on by the personal computer, which in turn was made possible by the invention of the microprocessor. (This era is described in the section The personal computer revolution (computer).) The impact of personal computers has been far greater than that of mainframes and minicomputers: their processing power has overtaken that of the minicomputers, and networks of personal computers working together to solve problems can be the equal of the fastest supercomputers. The era of the personal computer can be described as the age of “One person, one computer.”

      Since the introduction of the first personal computer, the semiconductor business has grown to more than a quarter-trillion-dollar worldwide industry. However, this phenomenon is only partly ascribable to the general-purpose microprocessor, which accounts for about one-sixth of annual sales. The greatest growth in the semiconductor industry has occurred in the manufacture of special-purpose processors, controllers, and digital signal processors. These computer chips are increasingly being included, or embedded, in a vast array of consumer devices, including pagers, mobile telephones, music players, automobiles, televisions, digital cameras, kitchen appliances, video games, and toys. While the Intel Corporation may be safely said to dominate the worldwide microprocessor business, it has been outpaced in this rapidly growing multibillion-dollar industry by companies such as Motorola, Inc.; Hitachi, Ltd.; Texas Instruments Incorporated; NEC Corporation; and Lucent Technologies Inc. This ongoing third wave may be characterized as “One person, many computers.”

Handheld digital devices (PDA)
 The origins of handheld digital devices go back to the 1960s, when Alan Kay, a researcher at Xerox's Palo Alto Research Center (Xerox PARC) (PARC), promoted the vision of a small, powerful notebook-style computer that he called the Dynabook. Kay never actually built a Dynabook (the technology had yet to be invented), but his vision helped to catalyze the research that would eventually make his dream feasible.

      It happened by small steps. The popularity of the personal computer and the ongoing miniaturization of the semiconductor circuitry and other devices first led to the development of somewhat smaller, portable—or, as they were sometimes called, luggable—computer systems. The first of these, the Osborne 1, designed by Lee Felsenstein, an electronics engineer active in the Homebrew Computer Club in San Francisco, was sold in 1981. Soon most PC manufacturers had portable models. At first these portables looked like sewing machines and weighed in excess of 20 pounds (9 kg). Gradually they became smaller (laptop-, notebook-, and then sub-notebook-size) and came with more powerful processors. These devices allowed people to use computers not only in the office or at home but also while traveling—on airplanes, in waiting rooms, or even at the beach.

      As the size of computers continued to shrink and microprocessors became more and more powerful, researchers and entrepreneurs explored new possibilities in mobile computing. In the late 1980s and early '90s, several companies came out with handheld computers, called personal digital assistants (PDA) (PDAs). PDAs typically replaced the cathode-ray-tube screen with a more compact liquid crystal display, and they either had a miniature keyboard or replaced the keyboard with a stylus and handwriting-recognition software that allowed the user to write directly on the screen. Like the first personal computers, PDAs were built without a clear idea of what people would do with them. In fact, people did not do much at all with the early models. To some extent, the early PDAs, made by Go Corporation and Apple, were technologically premature; with their unreliable handwriting recognition, they offered little advantage over paper-and-pencil planning books.

 The potential of this new kind of device was realized in 1996 when Palm Computing, Inc., released the Palm Pilot, which was about the size of a deck of playing cards and sold for about $400—approximately the same price as the MITS Altair, the first personal computer sold as a kit in 1974. The Pilot did not try to replace the computer but made it possible to organize and carry information with an electronic calendar, telephone number and address list, memo pad, and expense-tracking software and to synchronize that data with a PC. The device included an electronic cradle to connect to a PC and pass information back and forth. It also featured a data-entry system called “graffiti,” which involved writing with a stylus using a slightly altered alphabet that the device recognized. Its success encouraged numerous software companies to develop applications for it.

 In 1998 this market heated up further with the entry of several established consumer electronics firms using Microsoft's Windows CE operating system (a stripped-down version of the Windows system) to sell handheld computer devices and wireless telephones that could connect to PCs. These small devices also often possessed a communications component and benefited from the sudden popularization of the Internet and the World Wide Web. In particular, the BlackBerry PDA, introduced by the Canadian company Research in Motion in 2002, established itself as a favourite in the corporate world because of features that allowed employees to make secure connections with their company's databases.

 In 2001 Apple introduced the iPod, a handheld device capable of storing 1,000 songs for playback. Apple quickly came to dominate a booming market for music players. The iPod could also store notes and appointments. In 2003 Apple opened an online music store, iTunes Store, and in the following software releases added photographs and movies to the media the iPod could handle. The market for iPods and iPod-like devices was second only to cellular telephones among handheld electronic devices.

      While Apple and competitors grew the market for handheld devices with these media players, mobile telephones were increasingly becoming “smart phones,” acquiring more of the functions of computers, including the ability to send and receive e-mail and text messages, and to access the Internet. In 2007 Apple once again shook up a market for handheld devices, this time redefining the smart phone market with its iPhone. The touch-screen interface of the iPhone was in its way more advanced than the graphical user interface used on personal computers, its storage rivaled that of computers from just a few years before, and its operating system was a modified version of the operating system on the Apple Macintosh. This, along with synchronizing and distribution technology, embodied a vision of ubiquitous computing in which personal documents and other media could be moved easily from one device to another. Handheld devices and computers found their link through the Internet.

One interconnected world

      The Internet grew out of funding by the U.S. Advanced Research Projects Agency (ARPA), later renamed the Defense Advanced Research Projects Agency (DARPA (Defense Advanced Research Projects Agency)), to develop a communication system among government and academic computer-research laboratories. The first network component, ARPANET, became operational in October 1969. With only 15 nongovernment (university) sites included in ARPANET, the U.S. National Science Foundation decided to fund the construction and initial maintenance cost of a supplementary network, the Computer Science Network (CSNET). Built in 1980, CSNET was made available, on a subscription basis, to a wide array of academic, government, and industry research labs. As the 1980s wore on, further networks were added. In North America there were (among others): BITNET (Because It's Time Network) from IBM, UUCP (UNIX-to-UNIX Copy Protocol) from Bell Telephone, USENET (initially a connection between Duke University, Durham, North Carolina, and the University of North Carolina and still the home system for the Internet's many newsgroups), NSFNET (a high-speed National Science Foundation network connecting supercomputers), and CDNet (in Canada). In Europe several small academic networks were linked to the growing North American network.

      All these various networks were able to communicate with one another because of two shared protocols: the Transmission-Control Protocol (TCP), which split large files into numerous small files, or packets, assigned sequencing and address information to each packet, and reassembled the packets into the original file after arrival at their final destination; and the Internet Protocol (IP), a hierarchical addressing system that controlled the routing of packets (which might take widely divergent paths before being reassembled).

      What it took to turn a network of computers into something more was the idea of the hyperlink: computer code inside a document that would cause related documents to be fetched and displayed. The concept of hyperlinking was anticipated from the early to the middle decades of the 20th century—in Belgium by Paul Otlet (Otlet, Paul) and in the United States by Ted Nelson, Vannevar Bush (Bush, Vannevar), and, to some extent, Douglas Engelbart (Engelbart, Douglas). Their yearning for some kind of system to link knowledge together, though, did not materialize until 1990, when Tim Berners-Lee (Berners-Lee, Sir Tim) of England and others at CERN (European Organization for Nuclear Research) developed a protocol based on hypertext to make information distribution easier. In 1991 this culminated in the creation of the World Wide Web and its system of links among user-created pages. A team of programmers at the U.S. National Center for Supercomputing Applications, Urbana, Illinois, developed a program called a browser that made it easier to use the World Wide Web, and a spin-off company named Netscape Communications Corp. was founded to commercialize that technology.

      Netscape was an enormous success. The Web grew exponentially, doubling the number of users and the number of sites every few months. Uniform resource locators (URLs) became part of daily life, and the use of electronic mail (e-mail) became commonplace. Increasingly business took advantage of the Internet and adopted new forms of buying and selling in “cyberspace.” (Science fiction author William Gibson popularized this term in the early 1980s.) With Netscape so successful, Microsoft and other firms developed alternative Web browsers.

      Originally created as a closed network for researchers, the Internet was suddenly a new public medium for information. It became the home of virtual shopping malls, bookstores, stockbrokers, newspapers, and entertainment. Schools were “getting connected” to the Internet, and children were learning to do research in novel ways. The combination of the Internet, e-mail, and small and affordable computing and communication devices began to change many aspects of society.

      It soon became apparent that new software was necessary to take advantage of the opportunities created by the Internet. Sun Microsystems (Sun Microsystems, Inc.), maker of powerful desktop computers known as workstations, invented a new object-oriented programming language called Java. Meeting the design needs of embedded and networked devices, this new language was aimed at making it possible to build applications that could be stored on one system but run on another after passing over a network. Alternatively, various parts of applications could be stored in different locations and moved to run in a single device. Java was one of the more effective ways to develop software for “smart cards,” plastic debit cards with embedded computer chips that could store and transfer electronic funds in place of cash.

      Early enthusiasm over the potential profits from e-commerce led to massive cash investments and a “dot-com” boom-and-bust cycle in the 1990s. By the end of the decade, half of these businesses had failed, though certain successful categories of online business had been demonstrated, and most conventional businesses had established an online presence. Search and online advertising proved to be the most successful new business areas.

      Some online businesses created niches that did not exist before. eBay, founded in 1995 as an online auction and shopping Web site, gave members the ability to set up their own stores online. Although sometimes criticized for not creating any new wealth or products, eBay made it possible for members to run small businesses from their homes without a large initial investment. In 2003 Linden Research, Inc., launched Second Life, an Internet-based virtual reality world in which participants (called “residents”) have cartoon-like avatars that move through a graphical environment. Residents socialize, participate in group activities, and create and trade virtual products and virtual or real services. Second Life has its own currency, the Linden Dollar, which can be converted to U.S. dollars at several Internet currency exchange markets. Second Life challenged the boundary between real and virtual economies, with some people earning significant incomes by providing services such as designing and selling virtual clothing and furniture. In addition, many real world businesses, educational institutions, and political organizations found it advantageous to set up virtual shops in Second Life.

      Maintaining an Internet presence became common for conventional businesses during the 1990s and 2000s as they sought to reach out to a public that was increasingly active in online social communities. In addition to seeking some way of responding to the growing numbers of their customers who were sharing their experiences with company products and services online, companies discovered that many potential customers searched online for the best deals and the locations of nearby businesses. With an Internet-enabled smart phone, a customer might, for example, check for nearby restaurants using its built-in access to the Global Positioning System (GPS) (GPS), check a map on the Web for directions to the restaurant, and then call for a reservation, all while en route.

      The growth of online business was accompanied, though, by a rise in cybercrime, particularly identity theft, in which a criminal might gain access to someone's credit card or other identification and use it to make purchases.

Social networking
      Social networking services emerged as a significant online phenomenon in the 2000s. These services used software to facilitate online communities, where members with shared interests swapped files, photographs, videos, and music, sent messages and chatted, set up blogs (blog) (Web diaries) and discussion groups, and shared opinions. Early social networking services included Classmates.com, which connected former schoolmates, and Yahoo! 360° and SixDegrees, which built networks of connections via friends of friends. By 2008 the leading social networking services included MySpace (MySpace.com), Facebook, Friendster, Orkut, and LinkedIn. LinkedIn became an effective tool for business staff recruiting. Businesses began exploring how to exploit these networks, drawing on social networking research and theory which suggested that finding key “influential” members of existing networks of individuals could give access to and credibility with the whole network.

      Blogs became a category unto themselves, and some blogs had thousands of participants. Trust became a commodity, as sharing opinions or ratings proved to be a key to effective blog discussions, as well as an important component of many e-commerce Web sites. Daily Kos, one of the largest of the political blogs, made good use of ratings, with high-rated members gaining more power to rate other members' comments; under such systems, the idea is that the best entries will survive and the worst will quickly disappear. The vendor rating system in eBay similarly allowed for a kind of self-policing that was intended to weed out unethical or otherwise undesirable vendors.

Ubiquitous computing
      The combination of the connectedness of the Internet with the ability of new microprocessors (microprocessor) that can handle multiple tasks in parallel has inspired new ways of programming. Programmers are developing software to divide computational tasks into subtasks that a program can assign to separate processors in order to achieve greater efficiency and speed. This trend is one of various ways that computers are being connected to share information and to solve complex problems. In such distributed computing applications as airline reservation systems and automated teller machines, data pass through networks connected all over the world. Distributed computing promises to make better use of computers connected to ever larger and more complex networks. In effect, a distributed network of personal computers becomes a supercomputer. Many applications, such as research into protein folding, have been done on distributed networks, and some of these applications have involved calculations that would be too demanding for any single computer in existence.

      Considerable work in research laboratories is extending the actual development of embedded microprocessors to a more sweeping vision in which these chips will be found everywhere and will meet human needs wherever people go. For instance, the Global Positioning System (GPS) (GPS)—a satellite communication and positioning system developed for the U.S. military—is now accessible by anyone, anywhere in the world, via a special commercial GPS receiver. In conjunction with various computer-mapping softwares, GPS can be used to locate one's position and plan a travel route, whether by car or on foot.

      Some researchers call this trend ubiquitous computing or pervasive computing. Ubiquitous computing would extend the increasingly networked world and the powerful capabilities of distributed computing—i.e., the sharing of computations among microprocessors connected over a network. (The use of multiple microprocessors within one machine is discussed in the article supercomputer.) With more powerful computers, all connected all the time, thinking machines would be involved in every facet of human life, albeit invisibly.

      Xerox PARC's vision and research in the 1960s and '70s eventually achieved commercial success in the form of the mouse-driven graphical user interface, networked computers, laser printers, and notebook-style machines. Today the vision of ubiquitous computing foresees a day when microprocessors will be found wherever humans go. The technology will be invisible and natural and will respond to normal patterns of behaviour. Computers will disappear, or rather become a transparent part of the physical environment, thus truly bringing about an era of “One person, many computers.”

Paul A. Freiberger Michael R. Swaine

Additional Reading

Computer design and technology
W. Daniel Hillis, The Pattern on the Stone: The Simple Ideas That Make Computers Work (1998), provides lucid informal explanations of the principles of computer hardware and software. Gerrit A. Blaauw and Frederick P. Brooks, Jr., Computer Architecture: Concepts and Evolution (1997), combines a discussion of the principles of computer design with a survey of historically important computer systems. David A. Patterson and John L. Hennessy, Computer Organization and Design: The Hardware/Software Interface, 2nd ed. (1998), is an introductory textbook with detailed descriptions of CPU and computer system design. Andrew S. Tanenbaum, Modern Operating Systems, 2nd ed. (2001), is a well-written introductory survey of this topic. Andrew S. Tanenbaum, Computer Networks, 3rd ed. (1996), is a standard textbook.David Hemmendinger

Computer history
Martin Campbell-Kelly and William Aspray, Computer: A History of the Information Machine (1996), is a comprehensive history that begins with early computational devices and proceeds through the creation of the first computers. Charles Eames and Ray Eames, A Computer Perspective, ed. by Glen Fleck (1973, reprinted 1990), is a pictorial record of the authors' creation of a computer exhibition for IBM that covered developments from the 1890 U.S. Census up to the stored-program computer, 1890–1950. N. Metropolis, J. Howlett, and Gian-Carlo Rota (eds.), A History of Computing in the Twentieth Century (1980), collects essays by participants in the events described, with hard-to-find details on wartime computer work in England, early computer development in Europe and Japan, and ENIAC. Joel Shurkin, Engines of the Mind: The Evolution of the Computer from Mainframes to Microprocessors, updated ed. (1996), is a readable overview of the history of computers with anecdotes and personalities. Richard L. Wexelblat (ed.), History of Programming Languages (1981), presents an academic and anecdotal history of 10 significant early programming languages, including FORTRAN, COBOL, and BASIC. Thomas J. Bergin, Jr., and Richard G. Gibson, Jr. (eds.), History of Programming Languages II (1996), gives a mixture of academic research and anecdotal accounts from participants, covering the history of ALGOL, Pascal, and more modern languages through C and Smalltalk. Paul Freiberger and Michael Swaine, Fire in the Valley: The Making of the Personal Computer (1984), describes the nascent years of the personal computer industry and the growth that took place in Silicon Valley. Peter J. Denning and Robert M. Metcalfe, Beyond Calculation: The Next Fifty Years of Computing (1997), contains essays by experts on the social, scientific, and economic impact of computers during the coming decades.Paul A. Freiberger Michael R. Swaine

* * *


Universalium. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • computer — com‧put‧er [kəmˈpjuːtə ǁ ər] noun [countable, uncountable] COMPUTING an electronic machine that can do calculations very quickly, store information or documents, or do tasks according to a set of instructions called a program: • We store all our… …   Financial and business terms

  • computer — COMPÚTER, computere, s.n. Calculator electronic; ordinator. ♢ Computer familial = microcalculator pentru prelucrarea şi vizualizarea informaţiilor provenite de la o serie de periferice, specific aplicaţiilor familiale (utilitare, educaţionale,… …   Dicționar Român

  • computer — /komˈpjuter, ingl. kəmˈpjuːtə(r)/ [vc. ingl., «calcolatore», da to compute «calcolare», dal fr. computer «computare»] s. m. inv. calcolatore, elaboratore, elaboratore elettronico, cervello elettronico □ (est.) personal computer, PC, home computer …   Sinonimi e Contrari. Terza edizione

  • Computer — Com*put er (k[o^]m*p[=u]t [ e]r), n. 1. One who computes. 2. (Computers) an electronic device for performing calculations automatically. It consists of a clock to provide voltage pulses to synchronize the operations of the devices within the… …   The Collaborative International Dictionary of English

  • computer — ● computer ou computeur nom masculin (anglais computer, de to compute, calculer) Synonyme de ordinateur. ● computer ou computeur (synonymes) nom masculin (anglais computer, de to compute, calculer) Synonymes : ordinateur …   Encyclopédie Universelle

  • Computer — Sm std. (20. Jh.) Entlehnung. Entlehnt aus ne. computer, einer Ableitung von ne. compute berechnen , dieses aus frz. computer, aus l. computāre berechnen, zusammenrechnen, überschlagen , zu l. putāre rechnen, berechnen, putzen, reinigen und l.… …   Etymologisches Wörterbuch der deutschen sprache

  • Computer — [Basiswortschatz (Rating 1 1500)] Auch: • Rechner Bsp.: • Wir haben einen neuen Computer in unserem Büro. • Mein neuer Computer ist sehr leistungsfähig. • Welcher Laden verkauft Computer? …   Deutsch Wörterbuch

  • computer — 1640s, one who calculates, agent noun from COMPUTE (Cf. compute). Meaning calculating machine (of any type) is from 1897; in modern use, programmable digital electronic computer (1945; theoretical from 1937, as Turing machine). ENIAC (Cf. ENIAC)… …   Etymology dictionary

  • computer — [kəm pyo͞ot′ər] n. 1. a person who computes 2. a device used for computing; specif., an electronic machine which, by means of stored instructions and information, performs rapid, often complex calculations or compiles, correlates, and selects… …   English World dictionary

  • Computer — Computer: Die Bezeichnung für »elektronische Rechenanlage; Rechner« wurde in der 2. Hälfte des 20. Jh.s aus gleichbed. engl. computer entlehnt. Das engl. Wort gehört zum Verb engl. to compute »‹be›rechnen«, das auf lat. computare… …   Das Herkunftswörterbuch

  • computer — [n] calculating, data processing machine abacus, adding machine, analog, artificial intelligence, brain*, calculator, clone, CPU, data processor, digital, electronic brain*, laptop*, MAC, mainframe, micro*, microcomputer, mini*, minicomputer,… …   New thesaurus

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”