Computer. A computer is a machine that performs tasks, such as mathematical calculations or electronic communication, under the control of a set of instructions called a program. Programs usually reside within the computer and are retrieved and processed by the computer's electronics, and the program results are stored or routed to output devices, such as video display monitors or printers. Computers are used to perform a wide variety of activities with reliability, accuracy, and speed.
People use computers in a wide variety of ways. In business, computers track inventories with bar codes and scanners, check the credit status of customers, and transfer funds electronically. In homes, tiny computers embedded in the electronic circuitry of most appliances control the indoor temperature, operate home security systems, tell the time, and turn videocassette recorders on and off. Computers in automobiles regulate the flow of fuel, thereby increasing gas mileage. Computers also entertain, creating digitized sound on stereo systems or computer-animated features from a digitally encoded laser disc. Computer programs, or applications, exist to aid every level of education, from programs that teach simple addition or sentence construction to advanced calculus. Educators use computers to track grades and prepare notes; with computer-controlled projection units, they can add graphics, sound, and animation to their lectures. Computers are used extensively in scientific research to solve mathematical problems, display complicated data, or model systems that are too costly or impractical to build, such as testing the air flow around the next generation of space shuttles. The military employs computers in sophisticated communications to encode and unscramble messages, and to keep track of personnel and supplies.
The physical computer and its components are known as hardware. Computer hardware includes the memory that stores data and instructions; the central processing unit (CPU) that carries out instructions; the bus that connects the various computer components; the input devices, such as a keyboard or mouse, that allow the user to communicate with the computer; and the output devices, such as printers and video display monitors, that enable the computer to present information to the user. The programs that run the computer are called software. Software generally is designed to perform a particular type of task-for example, to control the arm of a robot to weld a car's body, to draw a graph, or to direct the general operation of the computer.
When a computer is turned on it searches for instructions in its memory. Usually, the first set of these instructions is a special program called the operating system, which is the software that makes the computer work. It prompts the user (or other machines) for input and commands, reports the results of these commands and other operations, stores and manages data, and controls the sequence of the software and hardware actions. When the user requests that a program run, the operating system loads the program in the computer's memory and runs the program. Popular operating systems, such as Windows 95 and the Macintosh operating system, have a graphical user interface (GUI)-that is, a display that uses tiny pictures, or icons, to represent various commands. To execute these commands, the user clicks the mouse on the icon or presses a combination of keys on the keyboard.
To process information electronically, data are stored in a computer in the form of binary digits, or bits, each having two possible representations (0 or 1). If a second bit is added to a single bit of information, the number of representations is doubled, resulting in four possible combinations: 00, 01, 10, or 11. A third bit added to this two-bit representation again doubles the number of combinations, resulting in eight possibilities: 000, 001, 010, 011, 100, 101, 110, or 111. Each time a bit is added, the number of possible patterns is doubled. Eight bits is called a byte; a byte has 256 possible combinations of 0s and 1s.
A byte is a useful quantity in which to store information because it provides enough possible patterns to represent the entire alphabet, in lower and upper cases, as well as numeric digits, punctuation marks, and several character-sized graphics symbols, including non-English characters such as p. A byte also can be interpreted as a pattern that represents a number between 0 and 255. A kilobyte-1000 bytes-can store 1000 characters; a megabyte can store 1 million characters; and a gigabyte can store 1 billion characters.
The physical memory of a computer is either random access memory (RAM), which can be read or changed by the user or computer, or read-only memory (ROM), which can be read by the computer but not altered. One way to store memory is within the circuitry of the computer, usually in tiny computer chips that hold millions of bytes of information. The memory within these computer chips is RAM. Memory also can be stored outside the circuitry of the computer on external storage devices, such as magnetic floppy disks, which store about 2 megabytes of information; hard drives, which can store thousands of megabytes of information; and CD-ROMs (compact discs), which can store up to 600 megabytes of information.
The bus is usually a flat cable with numerous parallel wires. The bus enables the components in a computer, such as the CPU and memory, to communicate. Typically, several bits at a time are sent along the bus. For example, a 16-bit bus, with 16 parallel wires, allows the simultaneous transmission of 16 bits (2 bytes) of information from one device to another.
Input devices, such as a keyboard or mouse, permit the computer user to communicate with the computer. Other input devices include a joystick, a rodlike device often used by game players; a scanner, which converts images such as photographs into binary information that the computer can manipulate; a light pen, which can draw on, or select objects from, a computer's video display by pressing the pen against the display's surface; a touch panel, which senses the placement of a user's finger; and a microphone, used to gather sound information.
The Central Processing Unit (CPU)
Information from an input device or memory is communicated via the bus to the CPU, which is the part of the computer that translates commands and runs programs. The CPU is a microprocessor chip-that is, a single piece of silicon containing millions of electrical components. Information is stored in a CPU memory location called a register. Registers can be thought of as the CPU's tiny scratchpad, temporarily storing instructions or data. When a program is run, one register called the program counter keeps track of which program instruction comes next. The CPU's control unit coordinates and times the CPU's functions, and it retrieves the next instruction from memory.
In a typical sequence, the CPU locates the next instruction in the appropriate memory device. The instruction then travels along the bus from the computer's memory to the CPU, where it is stored in a special instruction register. Meanwhile, the program counter is incremented to prepare for the next instruction. The current instruction is analyzed by a decoder, which determines what the instruction will do. Any data the instruction needs are retrieved via the bus and placed in the CPU's registers. The CPU executes the instruction, and the results are stored in another register or copied to specific memory locations.
Once the CPU has executed the program instruction, the program may request that information be communicated to an output device, such as a video display monitor or a flat liquid crystal display. Other output devices are printers, overhead projectors, videocassette recorders (VCRs), and speakers.
Programming languages contain the series of commands that create software. In general, a language that is encoded in binary numbers or a language similar to binary numbers that a computer's hardware understands is understood more quickly by the computer. A program written in this type of language also runs faster. Languages that use words or other commands that reflect how humans think are easier for programmers to use, but they are slower because the language must be translated first so the computer can understand it.
Computer programs that can be run by a computer's operating system are called executables. An executable program is a sequence of extremely simple instructions known as machine code. These instructions are specific to the individual computer's CPU and associated hardware; for example, Intel Pentium and Power PC microprocessor chips each have different machine languages and require different sets of codes to perform the same task. Machine code instructions are few in number (roughly 20 to 200, depending on the computer and the CPU). Typical instructions are for copying data from a memory location or for adding the contents of two memory locations (usually registers in the CPU). Machine code instructions are binary-that is, sequences of bits (0s and 1s). Because these numbers are not understood easily by humans, computer instructions usually are not written in machine code.
Assembly language uses commands that are easier for programmers to understand than are machine-language commands. Each machine language instruction has an equivalent command in assembly language. For example, in assembly language, the statement "MOV A, B" instructs the computer to copy data from one location to another. The same instruction in machine code is a string of 16 0s and 1s. Once an assembly-language program is written, it is converted to a machine-language program by another program called an assembler. Assembly language is fast and powerful because of its correspondence with machine language. It is still difficult to use, however, because assembly-language instructions are a series of abstract codes. In addition, different CPUs use different machine languages and therefore require different assembly languages. Assembly language is sometimes inserted into a higher-level language program to carry out specific hardware tasks or to speed up a higher-level program.
Higher-level languages were developed because of the difficulty of programming assembly languages. Higher-level languages are easier to use than machine and assembly languages because their commands resemble natural human language. In addition, these languages are not CPU-specific. Instead, they contain general commands that work on different CPUs. For example, a programmer writing in the higher-level Pascal programming language who wants to display a greeting need include only the following command:
WRITE ('Hello, Encarta User!');
This command directs the computer's CPU to display the greeting, and it will work no matter what type of CPU the computer uses. Like assembly language instructions, higher-level languages also must be translated, but a compiler is used. A compiler turns a higher-level program into a CPU-specific machine language. For example, a programmer may write a program in a higher-level language such as C and then prepare it for different machines, such as a Cray Y-MP supercomputer or a personal computer, using compilers designed for those machines. This speeds the programmer's task and makes the software more portable to different users and machines.
American naval officer and mathematician Grace Murray Hopper helped develop the first commercially available higher-level software language, FLOW-MATIC, in 1957. Hopper is credited for inventing the term bug, which indicates a computer malfunction; in 1945 she discovered a hardware failure in the Mark II computer caused by a moth trapped between its mechanical relays.
From 1954 to 1958 American computer scientist Jim Backus of International Business Macgines, Inc. (IBM) developed FORTRAN, an acronym for FORmula TRANslation. It became a standard programming language because it can process mathematical formulas. FORTRAN and its variations are still in use today.
Beginner's All-purpose Symbolic Instruction Code, or BASIC, was developed by American mathematician John Kemeny and Hungarian-American mathematician Thomas Kurtz at Dartmouth College in 1964. The language was easier to learn than its predecessors and became popular due to its friendly, interactive nature and its inclusion on early personal computers (PCs). Unlike other languages that require that all their instructions be translated into machine code first, BASIC is interpreted-that is, it is turned into machine language line by line as the program runs. BASIC commands typify higher-level languages because of their simplicity and their closeness to natural human language. For example, a program that divides a number in half can be written as
10 INPUT "ENTER A NUMBER," X 20 Y=X/2 30 PRINT "HALF OF THAT NUMBER IS," YThe numbers that precede each line are chosen by the programmer to indicate the sequence of the commands. The first line prints "ENTER A NUMBER" on the computer screen followed by a question mark to prompt the user to type in the number labeled "X." In the next line, that number is divided by two, and in the third line, the result of the operation is displayed on the computer screen.
Other higher-level languages in use today include C, Ada, Pascal, LISP, Prolog, COBOL, HTML, and Java. New compilers are being developed, and many features available in one language are being made available in others.
Object-Oriented Programming Languages
Object-oriented programming (OOP) languages like C++ are based on traditional higher-level languages, but they enable a programmer to think in terms of collections of cooperating objects instead of lists of commands. Objects, such as a circle, have properties such as the radius of the circle and the command that draws it on the computer screen. Classes of objects can inherit features from other classes of objects. For example, a class defining squares can inherit features such as right angles from a class defining rectangles. This set of programming classes simplifies the programmer's task, resulting in more reliable and efficient programs.
Computers can be either digital or analog. Digital refers to the processes in computers that manipulate binary numbers (0s or 1s), which represent switches that are turned on or off by electrical current. Analog refers to numerical values that have a continuous range. Both 0 and 1 are analog numbers, but so is 1.5 or a number like p (approximately 3.14). As an example, consider a desk lamp. If it has a simple on/off switch, then it is digital, because the lamp either produces light at a given moment or it does not. If a dimmer replaces the on/off switch, then the lamp is analog, because the amount of light can vary continuously from on to off and all intensities in between.
Analog computer systems were the first type to be produced. A popular analog computer used in the 20th century was the slide rule. It performs calculations by sliding a narrow, gauged wooden strip inside a rulerlike holder. Because the sliding is continuous and there is no mechanism to stop at one exact value, the slide rule is analog. New interest has been shown recently in analog computers, particularly in areas such as neural networks that respond to continuous electrical signals. Most modern computers, however, are digital machines whose components have a finite number of states-for example, the 0 or 1, or on or off of bits. These bits can be combined to denote information such as numbers, letters, graphics, and program instructions.
Computers exist in a wide range of sizes and power. The smallest are embedded within the circuitry of appliances, such as televisions and wrist watches. These computers are typically preprogrammed for a specific task, such as tuning to a particular television frequency or keeping accurate time.
Programmable computers vary enormously in their computational power, speed, memory, and physical size. The smallest of these computers can be held in one hand and are called personal digital assistants (PDAs). They are used as notepads, scheduling systems, and address books; if equipped with a cellular phone, they can connect to worldwide computer networks to exchange information regardless of location.
Laptop computers and PCs are typically used in businesses and at home to communicate on computer networks, for word processing, to track finances, and to play games. They have large amounts of internal memory to store hundreds of programs and documents. They are equipped with a keyboard; a mouse, trackball, or other pointing device; and a video display monitor or liquid crystal display (LCD) to display information. Laptop computers usually have similar hardware and software as PCs, but they are more compact and have flat, lightweight LCDs instead of video display monitors.
Workstations are similar to personal computers but have greater memory and more extensive mathematical abilities, and they are connected to other workstations or personal computers to exchange data. They are typically found in scientific, industrial, and business environments that require high levels of computational abilities.
Mainframe computers have more memory, speed, and capabilities than workstations and are usually shared by multiple users through a series of interconnected computers. They control businesses and industrial facilities and are used for scientific research. The most powerful mainframe computers, called supercomputers, process complex and time-consuming calculations, such as those used to create weather predictions. They are used by the largest businesses, scientific institutions, and the military. Some supercomputers have many sets of CPUs. These computers break a task into small pieces, and each CPU processes a portion of the task to increase overall speed and efficiency. Such computers are called parallel processors.
Computers can communicate with other computers through a series of connections and associated hardware called a network. The advantage of a network is that data can be exchanged rapidly, and software and hardware resources, such as hard-disk space or printers, can be shared. One type of network, a local area network (LAN), consists of several PCs or workstations connected to a special computer called the server. The server stores and manages programs and data. A server often contains all of a networked group's data and enables LAN workstations to be set up without storage capabilities to reduce cost.
Mainframe computers and supercomputers commonly are networked. They may be connected to PCs, workstations, or terminals that have no computational abilities of their own. These "dumb" terminals are used only to enter data into, or receive output from, the central computer.
Wide area networks (WANs) are networks that span large geographical areas. Computers can connect to these networks to use facilities in another city or country. For example, a person in Los Angeles can browse through the computerized archives of the Library of Congress in Washington, D.C. The largest WAN is the Internet, a global consortium of networks linked by common communication programs. The Internet is a mammoth resource of data, programs, and utilities. It was created mostly by American computer scientist Vinton Cerf in 1973 as part of the United States Department of Defense Advanced Research Projects Agency (DARPA). In 1984 the development of Internet technology was turned over to private, government, and scientific agencies. The World Wide Web is a system of information resources accessed primarily through the Internet. Users can obtain a variety of information in the form of text, graphics, sounds, or animations. These data are extensively cross-indexed, enabling users to browse (transfer from one information site to another) via buttons, highlighted text, or sophisticated searching software known as search engines.
The history of computing began with an analog machine. In 1623 German scientist Wilhelm Schikard invented a machine that used 11 complete and 6 incomplete sprocketed wheels that could add and, with the aid of logarithm tables, multiply and divide.
French philosopher, mathematician, and physicist Blaise Pascal invented a machine in 1642 that added and subtracted, automatically carrying and borrowing digits from column to column. Pascal built 50 copies of his machine, but most served as curiosities in parlors of the wealthy. Seventeenth-century German mathematician Gottfried Liebniz designed a special gearing system to enable multiplication on Pascal's machine.
In the early 19th century French inventor Joseph-Marie Jacquard devised a specialized type of computer: a loom. Jacquard's loom used punched cards to program patterns that were output as woven fabrics by the loom. Though Jacquard was rewarded and admired by French emperor Napoleon I for his work, he fled for his life from the city of Lyon pursued by weavers who feared their jobs were in jeopardy due to Jacquard's invention. The loom prevailed, however: When Jacquard passed away, more than 30,000 of his looms existed in Lyon. The looms are still used today, especially in the manufacture of fine furniture fabrics. Another early mechanical computer was the Difference Engine, designed in the early 1820s by British mathematician and scientist Charles Babbage. Although never completed by Babbage, the Difference Engine was intended to be a machine with a 20-decimal capacity that could solve mathematical problems. Babbage also made plans for another machine, the Analytical Engine, considered to be the mechanical precursor of the modern computer. The Analytical Engine was designed to perform all arithmetic operations efficiently; however, Babbage's lack of political skills kept him from obtaining the approval and funds to build it.
Augusta Ada Byron (Countess of Lovelace, 1815-52) was a personal friend and student of Babbage. She was the daughter of the famous poet Lord Byron and one of only a few woman mathematicians of her time. She prepared extensive notes concerning Babbage's ideas and the Analytical Engine. Ada's conceptual programs for the Engine led to the naming of a programming language (Ada) in her honor. Although the Analytical Engine was never built, its key concepts, such as the capacity to store instructions, the use of punched cards as a primitive memory, and the ability to print, can be found in many modern computers.
Herman Hollerith, an American inventor, used an idea similar to Jacquard's loom when he combined the use of punched cards with devices that created and electronically read the cards. Hollerith's tabulator was used for the 1890 U.S. census, and it made the computational time three to four times shorter than the time previously needed for hand counts. Hollerith's Tabulating Machine Company eventually merged with other companies in 1924 to become IBM.
In 1936 British mathematician Alan Turning proposed the idea of a machine that could process equations without human direction. The machine (now known as a Turing machine) resembled an automatic typewriter that used symbols for math and logic instead of letters. Turing intended the device to be used as a "universal machine" that could be programmed to duplicate the function of any other existing machine. Turing's machine was the theoretical precursor to the modern digital computer.
In the 1930s American mathematician Howard Aiken developed the Mark I calculating machine, which was built by IBM. This electronic calculating machine used relays and electromagnetic components to replace mechanical components. In later machines, Aiken used vacuum tubes and solid state transistors (tiny electrical switches) to manipulate the binary numbers. Aiken also introduced computers to universities by establishing the first computer science program at Harvard University. Aiken never trusted the concept of storing a program within the computer. Instead his computer had to read instructions from punched cards.
At the Institute for Advanced Study in Princeton, Hungarian-American mathematician John von Neumann developed one of the first computers used to solve problems in mathematics, meteorology, economics, and hydrodynamics. Von Neumann's 1945 Electronic Discrete Variable Computer (EDVAC) was the first electronic computer to use a program stored entirely within its memory.
John Mauchley, an American physicist, proposed an electronic digital computer, called the Electronic Numerical Integrator And Computer (ENIAC), which was built at the Moore School of Engineering at the University of Pennsylvania in Philadelphia by Mauchley and J. Presper Eckert, an American engineer. ENIAC was completed in 1945 and is regarded as the first successful, general digital computer. It weighed more than 27,000 kg (60,000 lb), and contained more than 18,000 vacuum tubes. Roughly 2000 of the computer's vacuum tubes were replaced each month by a team of six technicians. Many of ENIAC's first tasks were for military purposes, such as calculating ballistic firing tables and designing atomic weapons. Since ENIAC was initially not a stored program machine, it had to be reprogrammed for each task.
Eckert and Mauchley eventually formed their own company, which was then bought by the Rand Corporation. They produced the Universal Automatic Computer (UNIVAC), which was used for a broader variety of commercial applications. By 1957, 46 UNIVACs were in use. In 1948, at Bell Telephone Laboratories, American physicists Walter Houser Brattain, John Bardeen, and William Bradford Shockley developed the transistor, a device that can act as an electric switch. The transistor had a tremendous impact on computer design, replacing costly, energy-inefficient, and unreliable vacuum tubes.
In the late 1960s integrated circuits, tiny transistors and other electrical components arranged on a single chip of silicon, replaced individual transistors in computers. Integrated circuits became miniaturized, enabling more components to be designed into a single computer circuit. In the 1970s refinements in integrated circuit technology led to the development of the modern microprocessor, integrated circuits that contained thousands of transistors. Modern microprocessors contain as many as 10 million transistors.
Manufacturers used integrated circuit technology to build smaller and cheaper computers. The first of these so-called personal computers (PCs) was sold by Instrumentation Telemetry Systems. The Altair 8800 appeared in 1975. It used an 8-bit Intel 8080 microprocessor, had 256 bytes of RAM, received input through switches on the front panel, and displayed output on rows of light-emitting diodes (LEDs). Refinements in the PC continued with the inclusion of video displays, better storage devices, and CPUs with more computational abilities. Graphical user interfaces were first designed by the Xerox Corporation, then later used successfully by the Apple Computer Corporation with its Macintosh computer. Today the development of sophisticated operating systems such as Windows 95 and Unix enables computer users to run programs and manipulate data in ways that were unimaginable 50 years ago.
Possibly the largest single calculation was accomplished by physicists at IBM in 1995 solving one million trillion mathematical problems by continuously running 448 computers for two years to demonstrate the existence of a previously hypothetical subatomic particle called a glueball. Japan, Italy, and the United States are collaborating to develop new supercomputers that will run these calculations one hundred times faster.
In 1996 IBM challenged Gary Kasparov, the reigning world chess champion, to a chess match with a supercomputer called Deep Blue. The computer had the ability to compute more than 100 million chess positions per second. Kasparov won the match with three wins, two draws, and one loss. Deep Blue was the first computer to win a game against a reigning world chess champion with regulation time controls. Many experts predict these types of parallel processing machines will soon surpass human chess playing ability, and some speculate that massive calculating power will one day replace intelligence. Deep Blue serves as a prototype for future computers that will be required to solve complex problems.
In 1965 semiconductor pioneer Gordon Moore predicted that the number of transistors contained on a computer chip would double every year. This is now known as Moore's Law, and it has proven to be somewhat accurate. The number of transistors and the computational speed of microprocessors currently doubles approximately every 18 months. Components continue to shrink in size and are becoming faster, cheaper, and more versatile.
With their increasing power and versatility, computers simplify day-to-day life. Unfortunately, as computer use becomes more widespread, so do the opportunities for misuse. Computer hackers-people who illegally gain access to computer systems-often violate privacy and can tamper with or destroy records. Programs called viruses or worms can replicate and spread from computer to computer, erasing information or causing computer malfunctions. Other individuals have used computers to electronically embezzle funds and alter credit histories, making computer security a crucial issue. New ethical issues also have arisen, such as how to regulate material on the Internet and the World Wide Web. Individuals, companies, and governments are working to solve these problems by developing better computer security and enacting regulatory legislation.
Computers will become more advanced and they will also become easier to use. Reliable speech recognition will make the operation of a computer easier. Virtual reality, the technology of interacting with a computer using all of the human senses, will also contribute to better human and computer interfaces. Standards for virtual-reality program languages, called Virtual Reality Modeling language (VRML), currently are being developed for the World Wide Web.
Communications between computer users and networks will benefit from new technologies such as broadband communication systems that can carry significantly more data and carry it faster, to and from the vast interconnected databases that continue to grow in number and type.
By Timothy Law Snyder
Copied from Microsoft Encarta 97 Deluxe Encyclopedia
AACS World Wide Web Pages