a person than is the
corresponding machine language. This enhanced readability tends to decrease the
number of programming errors found in any given segment of code.
Since assembly
language is so close in form to machine language it is relatively easy to
translate it into machine language. In particular, the translation operation
can be accomplished in a single scanning pass through the assembly language
representation. This makes for very efficient processing on computers that do
not have large-scale forms of intermediate memory, as was the case on the
earliest computers. Assembly language, however, is still very tightly
associated with the sensori-motor environment of the computer. To address
problems from the human domain of experience, it is extremely useful to have
programming languages that are significantly closer to natural languages. This
brings us to the high-level programming
languages.
As computers
grew more powerful, they offered sufficient capabilities to support the use of
programming languages that were much closer in form and semantic content to the
problems they were used to solve than were either machine languages or assembly
languages. These languages are rather generically referred to as high-level
languages. While they were close in form to the problems, they were still
significantly less capable than the natural languages of human users of
computers. We noted above that the earliest mainframe computers tended to be
grouped into business-oriented and scientific-oriented systems. Consequently,
the earliest high-level languages followed this same decomposition.
FORTRAN, which
is an acronym that stands for FORmula TRANslation, has become a well-recognized
name in its own right. It refers to a programming language that is very similar
to mathematical formulas. FORTRAN has instructions that allow for procedural
control of parametric information interspersed with the evaluation of various
formulas that incorporate these same parameters. It has found widespread use
within the scientific community as a means of dealing with problems that can be
well expressed algorithmically. So, what does this really mean? Simply that
many scientific oriented problems can be represented through algebraic
formulas: one variable connected through an equal sign to a collection of
variables related with arithmetic operations. With this type of representation,
one seeks to address problems in which the variables in such a formula can be
given values and then evaluated to an answer. In many instances, it is
necessary to vary the values and parameters in a systematic way and to
reevaluate the answer; a process sometimes called iteration.
A related, but also
significantly different way to express certain problems is through recursion. A recursive formulation is
typically a formula for a dependent variable that is expressed in terms of
itself. Thus, to evaluate the formula, it is necessary to begin with some set
of initial conditions, evaluate the dependent variable, and then plug that
value back into the formula and evaluate the dependent variable again. This
process is repeated until some related characteristic of the relationship
indicates that the recursive process is to terminate. Historically FORTRAN had
a serious deficiency in not being able to provide recursion in its operations.
Although corrected in more recent versions, FORTRAN is nevertheless slowly
being supplanted by other languages that have been found superior in dealing
with more complex problems that are not exclusively within the scientific
realm. As we have noted relative to a number of characteristics, including that
of trust, recursion is an important concept relative to real-life problems.
Another early
high-level language is COBOL. This acronym stands for COmmon Business Oriented
Language, and it was (and still is) used as a mechanism to deal with business
problems. We use the term business problems to rather specifically refer to
problems couched in the context of finance; for example, working with equations
dealing in currency and developing reports
|