THE PEOPLE BEHIND THE INVENTION:

Plain Speaking

Grace Murray Hopper, a mathematician, was a faculty member at Vassar College when World War II (1939-1945) began. She enlisted in the Navy and in 1943 was assigned to the Bureau of Ordnance Computation Project, where she worked on ballistics problems. In 1944, the Navy began using one of the first electronic computers, the Automatic Sequence Controlled Calculator (ASCC), designed by an International Business Machines (IBM) Corporation team of engineers headed by Howard Hathaway Aiken, to solve ballistics problems. Hopper became the third programmer of the
ASCC.
Hopper’s interest in computer programming continued after the war ended. By the early 1950′s, Hopper’s work with programming languages had led to her development of FLOW-MATIC, the first English-language data processing compiler. Hopper’s work on FLOW-MATIC paved the way for her later work with COBOL (Common Business Oriented Language).
Until Hopper developed FLOW-MATIC, digital computer programming was all machine-specific and was written in machine code. A program designed for one computer could not be used on another. Every program was both machine-specific and problem-specific in that the programmer would be told what problem the machine was going to be asked and then would write a completely new program for that specific problem in the machine code.

Grace Murray Hopper

Grace Brewster Murray was born in New York City in 1906. As a child she revered her great-grandfather, a U.S. Navy admiral, and her grandfather, an engineer. Her career melded their professions.
She studied mathematics and physics at Vassar College, earning a bachelor’s degree in 1928 and a master’s degree in 1930, when she married Vincent Foster Hopper. She accepted a teaching post at Vassar but continued her studies, completing a doctorate at Yale University in 1934. In 1943 she left academia for the Navy and was assigned to the Bureau of Ordnance Computation Project at Harvard University. She worked on the nation’s first modern computer, the Mark I, and contributed to the development of major new models afterward, including Sperry Corporation’s ENIAC and UNIVAC. While still with the Navy project at Harvard, Hopper participated in a minor incident that forever marked computer slang. One day a moth became caught in a switch, causing the computer to malfunction. She and other technicians found it and ever after referred to correcting mechanical glitches as “debugging.”
Hopper joined Sperry Corporation after the war and carried out her seminal work with the FLOW-MATIC and COBOL computer languages. Meanwhile, she retained her commission in the Naval Reserves, helping the service incorporate computers and COBOL into its armaments and administration systems. She retired from the Navy in 1966 and from Sperry in 1971, but the Navy soon had her out of retirement on temporary active duty to help with its computer systems. After her second retirement, the Navy, grateful for her tireless service, promoted her to rear admiral in 1985, the nation’s first woman admiral. She was also awarded the Distinguished Service Cross by the Department of Defense, the National Medal of Technology, and the Legion of Merit. She became an inductee into the Engineering and Science Hall of Fame in 1991. Hopper, nicknamed Amazing Grace, died a year later.
Machine code was based on the programmer’s knowledge of the physical characteristics of the computer as well as the requirements of the problem to be solved; that is, the programmer had to know what was happening within the machine as it worked through a series of
calculations, which relays tripped when and in what order, and what mathematical operations were necessary to solve the problem. Programming was therefore a highly specialized skill requiring a unique combination of linguistic, reasoning, engineering, and mathematical abilities that not even all the mathematicians and electrical engineers who designed and built the early computers possessed.
While every computer still operates in response to the programming, or instructions, built into it, which are formatted in machine code, modern computers can accept programs written in nonmachine code—that is, in various automatic programming languages. They are able to accept nonmachine code programs because specialized programs now exist to translate those programs into the appropriate machine code. These translating programs are known as “compilers,” or “assemblers,” and FLOW-MATIC was the first such program.
Hopper developed FLOW-MATIC after realizing that it would be necessary to eliminate unnecessary steps in programming to make computers more efficient. FLOW-MATIC was based, in part, on Hopper’s recognition that certain elements, or commands, were common to many different programming applications. Hopper theorized that it would not be necessary to write a lengthy series of instructions in machine code to instruct a computer to begin a series of operations; instead, she believed that it would be possible to develop commands in an assembly language in such a way that a programmer could write one command, such as the word add, that would translate into a sequence of several commands in machine code. Hopper’s successful development of a compiler to translate programming languages into machine code thus meant that programming became faster and easier. From assembly languages such as FLOW-MATIC, it was a logical progression to the development of high-level computer languages, such as FORTRAN (Formula Translation) and COBOL.

The Language of Business

Between 1955 (when FLOW-MATIC was introduced) and 1959, a number of attempts at developing a specific business-oriented language were made. IBM and Remington Rand believed that the only way to market computers to the business community was through the development of a language that business people would be comfortable using. Remington Rand officials were especially committed to providing a language that resembled English. None of the attempts to develop a business-oriented language succeeded, however, and by 1959 Hopper and other members of the U.S. Department of Defense had persuaded representatives of various companies of the need to cooperate.
On May 28 and 29,1959, a conference sponsored by the Department of Defense was held at the Pentagon to discuss the problem of establishing a common language for the adaptation of electronic computers for data processing. As a result, the first distribution of COBOL was accomplished on December 17, 1959. Although many people were involved in the development of COBOL, Hopper played a particularly important role. She not only found solutions to technical problems but also succeeded in selling the concept of a common language from an administrative and managerial point of view. Hopper recognized that while the companies involved in the commercial development of computers were in competition with one another, the use of a common, business-oriented language would contribute to the growth of the computer industry as a whole, as well as simplify the training of computer programmers and operators.

Consequences

COBOL was the first compiler developed for business data processing operations. Its development simplified the training required for computer users in business applications and demonstrated that computers could be practical tools in government and industry as well as in science. Prior to the development of COBOL, electronic computers had been characterized as expensive, oversized adding machines that were adequate for performing time-consuming mathematics but lacked the flexibility that business people required.
In addition, the development of COBOL freed programmers not only from the need to know machine code but also from the need to understand the physical functioning of the computers they were using. Programming languages could be written that were both machine-independent and almost universally convertible from one computer to another.
Finally, because Hopper and the other committee members worked under the auspices of the Department of Defense, the software was not copyrighted, and in a short period of time COBOL became widely available to anyone who wanted to use it. It diffused rapidly throughout the industry and contributed to the widespread adaptation of computers for use in countless settings.
See also BASIC programming language; Colossus computer; ENIAC computer; FORTRAN programming language; SAINT.