Page 2 of 2
Manuals and tables
It is clear that Aiken was a hard task master because Hopper also reports that like generations of programmers to come she spent many long nights working hard to make something work properly. As an aside it is also worth mentioning that it was her job to write the first manual for the Mark I. A job that Aiken gave to her with the words "you're in the Navy now" to dispel any doubts that she might have about completing the task!
After the War Hopper spent some time programming actuarial tables for the Prudential and then teaching at Harvard. Her next important move was to the Eckert-Mauchly Corporation which was nearing completion of the UNIVAC. Before that machine was available she programmed the BINAC - a small binary machine built in secret for the Snark Missile project. This used an octal representation for its Op codes and Hopper quickly learned to think in octal - even to the extent of mistakenly adding up her bank balance in octal!
It was at this time that she seems to have realised that the computer was a symbol manipulator rather than just a big calculator. This may have been due to her exposure to some of the more philosophical ideas of Babbage, or just because the machines were becoming more capable. Even if it was a natural progression it is clear that the majority of people, programmers included, tended not to share this now obvious viewpoint.
Towards a higher level language
At first she thought about ways of making machines easier to use by creating higher level languages. This again seems like an obvious move but at the time there were no compilers in existence let alone compilers that could produce efficient code.
In 1952 Hopper and her team at Remington wrote the A-0 compiler, almost just to show that it could be done. To make it all work they had to invent many of the fundamental techniques of translation. For example, she solved the problem of forward references by using a fixed jump area where the addresses of routines could be stored when they were discovered later in the program's text. Hopper claims that the idea came from her days playing women's basketball where the forward pass was well-used strategy. This same technique is still used today in all sorts of ways and the programmers who use it always think that it is very clever and ever so sophisticated! The belief that the computer was just a number cruncher and couldn't be used to translate or work with general symbols was so widespread that A-0 wasn't perceived as being particularly important.
In another attempt to widen horizons she wrote the first symbolic differentiator, i.e. a calculus program. Hopper invited people to bring her problems for solution. One poor man had been working for six months on the derivatives of a particularly horrible function - the machine spat out the first fifteen derivatives in 18 minutes. The man refused to believe that there wasn't a human hiding somewhere in the system!
At a more trivial level she demonstrated that a compiler could translate programs written in French and German into machine code. The company executives were shocked that a machine built in the USA could do anything in a foreign language!
The tide slowly turned in her favour and at last she was given the chance to put together a compiler for a large language - the B-0 compiler which then became Flow-matic in 1957. The language was targeted at business use and Hopper even felt that arithmetic expressions were too complicated for the average user and introduced a very wordy language - for example
Add One To Total
After the huge success of Fortran in providing a high level language for the scientific community the business community felt a little left out. The result was the Cobol language which included much of Flow-matic. Grace Hopper did much to influence the newer details of the Cobol language and, while she was not a working member of the final standards committee, there is no doubt that she deserves to be called the mother of Cobol.
Grace Hopper stayed in the Naval reserve all of the time that she was working on advanced uses of computers. Indeed she even applied to be transferred to the regular Navy at the end of the war but, at 40, she was deemed too old. In 1966 she retired with the rank of Commander but the Navy still needed her and seven months later she was asked to take on the job of standardising the Navy's use of languages. She returned to active duty at 60 and was promoted to Captain.
In 1969 the Data Processing Management Association selected her as their first "man" of the year. Something that I'm sure would have amused her as she held the view that women were in general better programmers than men! In 1983 she was promoted to the rank of Commodore in a ceremony at the White House and her later years brought the recognition that was denied to so many other early computer pioneers. The Grace Murray Hopper Award for young computer personnel was established by the ACM (Association for Computing Machinery) in 1971.
In 1985 she was promoted to Rear Admiral - the same rank as that held by her grandfather and the following year she retired for the last time. At her retirement ceremony she reminded the assembled sailors that she was told at forty that she was too old for the navy and yet she had remained in uniform for the subsequent 40 years. All through her career with the Navy she had acted as a publicist - giving lectures. She estimated that she gave 200 lectures per year. At 86 she may have retired from the Navy but she started a new career with DEC in public relations. She died in 1992 certainly as the longest serving computer enthusiast of her day.