| computer program
detailed plan or procedure for solving a problem with
a computer; more specifically, an unambiguous,
ordered sequence of computational instructions necessary
to achieve such a solution. The distinction between computer
programs and equipment is often made by referring to the
former as software and the latter as hardware.
Programs stored in the memory of a computer
enable the computer to perform a variety of tasks
in sequence or even intermittently. The idea of an
internally stored program was introduced in the late
1940s by the Hungarian-born mathematician John von
Neumann. The first digital computer designed with
internal programming capacity was the EDVAC (acronym for
Electronic Discrete Variable Automatic Computer),
constructed in 1949.
A program is prepared by first formulating a task and
then expressing it in an appropriate computer
language, presumably one suited to the application. The
specification thus rendered is translated, commonly in
several stages, into a coded program directly executable
by the computer on which the task is to be run.
The coded program is said to be in machine language,
while languages suitable for original formulation are
called problem-oriented languages. A wide array of
problem-oriented languages has been developed, some of
the principal ones being COBOL (Common Business-Oriented
Language), FORTRAN (Formula Translation), BASIC
(Beginner's All-Purpose Symbolic Instruction Code), and
Pascal.
Computers are supplied with various programs designed
primarily to assist the user to run jobs or optimize
system performance. This collection of programs, called
the operating system, is as important to the operation
of a computer system as its hardware. Current
technology makes it possible to build in some operating
characteristics as fixed programs (introduced by
customer orders) into a computer's central
processing unit at the time of manufacture. Relative to
user programs, the operating system may be in control
during execution, as when a time-sharing monitor
suspends one program and activates another, or at the
time a user program is initiated or terminated, as when
a scheduling program determines which user program is to
be executed next. Certain operating-system programs,
however, may operate as independent units to facilitate
the programming process. These include translators
(either assemblers or compilers), which transform an
entire program from one language to another;
interpreters, which execute a program sequentially,
translating at each step; and debuggers, which execute a
program piecemeal and monitor various circumstances,
enabling the programmer to check whether the operation
of the program is correct or not.
|