A program is a sequence of instructions that tells the hardware of a computer what
operations to perform on data. Programs can be built into the hardware itself, or they may
exist independently in a form known as software. In some specialized, or dedicated
computers the operating instructions are embedded in their circuitry; common examples
are the microcomputers found in calculators, wristwatches, automobile engines, and
microwave ovens. A general purpose computer, on the other hand, contains some built-in
programs (in ROM) or instructions (in the processor chip), but it depends on external
programs to perform useful tasks. Once a computer has been programmed, it can do only
as much or as little as the software controlling it at any given moment enables it to do.
Software in widespread use includes a wide range of applications programs-instructions
to the computer on how to perform various tasks.
Languages. A computer must be given instructions in a language that it
understands-that is, a particular pattern of binary digital information. Unfortunately, the
computer's own binary-based language, or machine language, is difficult for humans to
use. Machine-language programming is such a tedious, time consuming, task that the
time saved in running the program rarely justifies the days or weeks needed to write the
Assembly Language. One method programmers devised to shorten and simplify
the process is called assembly-language programming.
By assigning a short (usually
three-letter) mnemonic code to each machine-language command, assembly-language
programs could be written and debugged-cleaned of logic and data errors-in a fraction of
the time needed by machine-language programmers.
What was needed was a shorthand method by which one symbolic statement
could represent a sequence of many machine-language instructions, and a way that would
allow the same program to run on several types of machines. These needs led to the
development of so-called high-level languages.
High-Level Languages. High-level languages often use English-like words-for
example, LIST, PRINT, OPEN, and so on-as commands that might stand for a sequence
of tens or hundreds of machine-language instructions. The commands are entered from
the keyboard or from a program in memory or in a storage device, and they are
intercepted by a program that translates them into machine-language instructions.
Translator programs are of two kinds: interpreters and compilers. With an interpreter,
programs that loop back to re-execute part of their instructions reinterpret the same
instruction each time it appears, so interpreted programs run much more slowly than
machine-language programs. Compilers, by contrast, translate an entire program into
machine language prior to execution, so such programs run as rapidly as though they
were written directly in machine language.
The first commercial programmer was probably Grace Hopper (1906-92), an
American. To facilitate computer use in scientific applications, IBM then developed a
language that would simplify work involving complicated mathematical formulas. Begun
in 1954 and completed in 1957, FORTRAN (FORmula TRANslator) was the first
comprehensive high-level programming language that was widely used. COBOL
(COmmon Business Oriented Language), a commercial and business programming
language, concentrated on data organization and file handling and is widely used today in
business. BASIC (Beginner's All-purpose Symbolic Instruction Code) was developed for
use by nonprofessional computer users. The language came into almost universal use
with the microcomputer explosion of the 1970s and 1980s. Condemned as slow,
inefficient, and inelegant by its detractors, BASIC is nevertheless simple to learn and
easy to use. Because many early microcomputers were sold with BASIC built into the
hardware (in ROM memory) the language rapidly came into widespread use. Although
hundreds of different computer languages and variants exist, several others deserve
mention. PASCAL, originally designed as a teaching tool, is now one of the most popular
microcomputer languages. LOGO was developed to introduce children to computers. C, a
language Bell Laboratories designed in the 1970s, is widely used in developing systems
programs, such as language translators. LISP and PROLOG are widely used in artificial