John Backus and the Business of Scientific Programming
By David Alan Grier
from an article Why Fortran?, Computing in Science & Engineering,
July/August 2007
As a child, John Backus was unconcerned with either time or money.
Born into a wealthy Delaware family, he was a restless youth with no
clear focus or direction. Though he was able to gain admission to the
University of Virginia, he did so badly in his studies that he was
forced to leave the school in 1943 and spent the remainder of the war
as a draftee in the army. He gained discipline only after he returned
from the war and enrolled in a mathematics program at Columbia
University. Mathematics led him to IBM. IBM introduced him to computer
programming, and computer programming led him to think about the
business of science.
By 1950, when Backus joined IBM, programming was becoming a serious
economic problem. “The expense of operating a computing installation,”
he observed, “is almost equally divided between machine costs and
personnel cost.”1 Programmers had few tools to assist them in their
work, and most wrote their programs either in the basic codes that
controlled the machine or with an assembly language that substituted
simple names for those codes. IBM had one of the few more advanced
programming tools, a system called Speedcode.
Speedcode consisted of an elementary language and a special set of
routines to handle scientific (floating-point) calculations, but it
created bloated and inefficient programs. Backus defended the system
by conceding the problems with the final code and then arguing that
“Speedcoding reduces [overall] coding and testing time considerably,”
and hence, “it will often be the more economical way of solving the
problem.”1
In 1953, Backus proposed that the company create an alternative
that could translate mathematical formulae into computer code, a
project that quickly acquired the name Fortran. He felt the system
would have to have a more expressive language than that of Speedcode
and be more efficient. If the “object program [was] only half as fast
as its hand coded counterpart, then acceptance of our system would be
in serious danger,” he conceded.1
The problem of producing efficient code wasn’t easily solved.
Backus’s Fortran compiler was a complicated system that divided the
source program into its fundamental units, analyzed the connections
between these units, and, from this analysis, tried to create code
that would make good use of the machine. “We were often astonished at
the surprising transformation in the indexing operations and in the
arrangement of the computation which the compiler made,” Backus
recalled. “We would not have thought to make [such changes] as
programmers ourselves.”
When Fortran was released in April 1957, it found quick acceptance
among users of the IBM 704, the company’s big scientific processor. At
every site, a few individuals claimed that they could write better
code in assembly language, but the majority found Fortran to be
simpler and adequately efficient. By 1960, other vendors had started
to write their own Fortran compilers; by 1964, the American Standards
Association had created a common definition of the language. Fifty
years after its creation, Fortran is still employed for scientific
computation and is one of the oldest computer artifacts still in use.
When Backus reviewed his creation, he concluded that the language’s
initial goals remained unfulfilled. The “plain fact is that few
languages make programming sufficiently cheaper or more reliable,” he
wrote in 1977. “There is a desperate need for a powerful methodology
to help us think about programs and no conventional language even
begins to meet that need.”2 These claims were a bit of an
overstatement. Certainly, few people believed that the software of
1977 could have been produced with only the tools of machine code and
assembly languages. Fewer still would accept such an opinion in 2007.
Nonetheless, Backus’s statements point to a fundamental motivation for
the development of computer languages: the desire to make computing
less expensive.
References
-
J. Backus, “The IBM 701 Speedcoding System,” J. ACM, vol. 1, no. 1,
1953, pp. 4–6. -
J. Backus, “Can Programming Be Liberated from the von Neumann
Style? A Functional Style and Its Algebra of Programs,” Comm. ACM,
vol. 21, no. 8, 1978, pp. 613–641.David Alan Grier is the editor in chief of the IEEE Annals of the
History of Computing and writes the “In Our Time” column for Computer
magazine. He’s also the associate dean of academic affairs in the
Elliott School of International Affairs at George Washington
University.
Also interesting:
SOFTWARE; When Few Knew the Code, They Changed the Language
By STEVE LOHR
New York Times
Published: June 13, 2001