|
V.
PROGRAMMING
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, car engines,
and microwave ovens. A general-purpose computer, on the other
hand, although it contains some built-in programs (in ROM) or
instructions (in the processor chip), 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.
A)
Languages
A
computer must be given instructions in a programming language
that it understands—that is, a particular pattern of binary
digital information. On the earliest computers, programming
was a difficult, laborious task, because vacuum-tube ON-OFF
switches had to be set by hand. Teams of programmers often
took days to program simple tasks such as sorting a list of
names. Since that time numbers of computer languages have been
devised, some with particular kinds of functioning in mind and
others aimed more at ease of use—the "user-friendly"
approach.
B)
Machine Language
The
computer’s own binary-based language, or machine language,
is difficult for human beings to use. The programmer must
input every command and all data in binary form, and a basic
operation such as comparing the contents of a register to the
data in a memory-chip location might look like this: 11001010
00010111 11110101 00101011. 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 program.
C)
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.
In assembly language, each mnemonic command and its symbolic
operands equals one machine instruction. An assembler program
translates the source code, a list of mnemonic operation codes
and symbolic operands, into object code, that is into machine
language, and executes the program.
Each
assembly language, however, can be used with only one type of
CPU chip or microprocessor. Programmers who expended much time
and effort to learn how to program one computer had to learn a
new programming style each time they worked on another machine.
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 high-level languages.
D)
High-Level Languages
High-level
languages often use English 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
American computer scientist Grace Hopper is credited with
implementing the first commercially oriented computer language.
After programming an experimental computer at Harvard
University, she worked on the UNIVAC I and II computers and
developed a commercially usable high-level programming
language called FLOW-MATIC. 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.
In
1957 the Association for Computing Machinery in the United
States set out to develop a universal language that would
correct some of FORTRAN’s shortcomings. A year later they
released ALGOL (ALGOrithmic Language), another scientifically
oriented language; widely used in Europe in the 1960s and
1970s, it has since been superseded by newer languages, while
FORTRAN continues to be used because of the huge investment in
existing programs. 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 at Dartmouth College in the early 1960s for use by
non-professional 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. The following very simple example of
a BASIC program adds the numbers 1 and 2, and displays the
result (the numerals 10 to 40 are line numbers):

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, as is
its successor, C++. LISP and PROLOG are widely used in
artificial intelligence. Still further languages have been
developed to permit programming in hypermedia, as in CD-ROM
and Internet applications.
VI.
FUTURE DEVELOPMENTS
One continuing
trend in computer development is microminiaturization, the
effort to compress more circuit elements into smaller and
smaller chip space. For example, in 1999, scientists developed
a circuit the size of a single layer of molecules, and in 2000
IBM announced that it had developed new technology to produce
computer chips that operate five times faster than the most
advanced models to date. Also in 2000, scientists discovered a
way to transfer information on an atomic level without relying
on traditional wires or circuits. This effect, dubbed the
"quantum mirage", describes how an atom of matter
placed in an elliptical-shaped structure on a solid surface
reflects itself at other points within the ellipse, thereby
relaying information. Researchers are also trying to speed up
circuitry functions through the use of superconductivity, the
phenomenon of decreased electrical resistance observed in
certain materials at very low temperatures. As the physical
limits of silicon-chip computer processors are being
approached, scientists are exploring the potential of the next
generation of computer technology, using, for instance,
devices based on deoxyribonucleic acid (DNA).
The "fifth-generation"
computer effort to develop computers that can solve complex
problems in ways that might eventually merit the description
"creative" is another trend in computer development,
the ideal goal being true artificial intelligence. One path
actively being explored is parallel processing computing,
which uses many chips to perform several different tasks at
the same time. Parallel processing may eventually be able to
duplicate to some degree the complex feedback, approximating,
and assessing functions of human thought. One important
parallel processing approach is the neural network, which
mimics the architecture of the nervous system. Another ongoing
trend is the increase in computer networking, which now
employs the worldwide data communications system of satellite
and cable links to connect computers globally. There is also a
great deal of research into the possibility of "optical"
computers—hardware that processes not pulses of electricity
but much faster pulses of light.
|