Grace Hopper by @SebastianNavasF

Grace Hopper — The Programming Sea-woman

Today is the day of Grace Murray Hopper, aka “Amazing Grace”. Without her work and the influence of her ideas on the development of computer programming, we may not see computer science as we see it today.

The programming sea-woman

After the attack on Pearl Harbor in 1941, Grace decided she wanted to join the U.S. Naval Reserve. At this time, there were no women in the Navy but because of the war a law has been passed to release men for sea duty and replace them with women in shore establishment. Because of WAVES (Women Accepted for Volunteer Emergency Service), Hopper enrolled in the Navy where she ended up working with Howard Aiken in a top-secret basement at Harvard’s University.

As soon as she arrived Aiken put Hopper in charge of the Mark I, an Automatic Sequence Controlled Calculator, a machine that has never existed before and she had never seen any alike. The Mark I, was in fact the first operating machine that could execute long computations automatically. During an interview, Grace was asked:

-How did you know so much about computers back then?
-I didn’t, this was the first one.

Because the Mark I didn’t have a manual of operation, she learned how to operate it and wrote the manual herself. This turned into Grace Hopper’s first publication, “A Manual of Operation for the Automatic Sequence Controlled Calculator”, published in Annals of the Harvard Computation Laboratory in 1946, just two years after she got into that basement!

Probably, the most famous problem she was given to solve with the Mark I was brought by the mathematician John Von Neumann. He wanted to figure out how to cause a sphere to implode upon itself and where to put the charges to create this sphere implosion at a specific rate. What Von Neumann couldn’t do with his human “computers” (usually women with paper and pencil), took Hopper and her team four months. We all know how it ended, with the “Fat Man” being dropped, bringing with it the end of World War II.

New language, old concepts

During those war years Hopper and Aiken’s team came up with several innovative terms commonly used in computer programming today. For example, they started saving sections of tape from previous problems with the idea of using them again and again, forming what they called a library of computer code.

Whenever they wanted to reuse code for a new problem, they would paste back together those tapes. They didn’t call them sub-routines, but we can see they were getting close to that very idea.

They also used the concept of flow-charting, to illustrate the problem they were working on and to allow people who were working on the problem to know what the other person had done before them.

Another term they coined was patch. When performing small corrections to the code, they would add an actual patch to the portions of the paper tape where the errors ocurred, and then they would re-punch the holes in that section. In other words, they patched the code.

The “Patch”

A final well-known anecdote happened one night when the machine stopped working. After inspecting the Mark I, they realized a moth had been captured in one of the relays. So, the operators who found it tapped the bug down in the log book and wrote “first actual case of bug being found”. This was not the first time “bug in the machine” was used, but by recounting the story Hopper certainly amplified the term bug as a cause of malfunction in a computer program.


The First “Computer Bug”

The compiler revolution

Probably her most notable achievement was the creation of the very first compiler. Working for the UNIVAC project in the 1950s, she came up with the idea of a new programming language that would use only English words. The program was known as the A compiler and its first version was A-0. As described by Grace:

“All I had to do was to write down a set of call numbers, let the computer find them on the tape, bring them over and do the additions. This was the first compiler”.

Following her premise it’s easier to ask forgiveness than it is to get permission, the A-0 system was later followed by FLOW-MATIC. This was the first compiler-based and English-like data processing language, which established the basis of COBOL, truly designed for business use but that turned out the most succesful programming language today (70% of all the active code today is COBOL code — Kurt Beyer). For that, she is known as the grandmother (but not the mother) of COBOL.

While compilers are indispensable to programmers today, they were revolutionary at a time. She said:

“Manipulating symbols was fine for mathematicians but it was no good for data processors who were not symbol manipulators. (…) It’s much easier for most people to write an English statement than it is to use symbols. So, I decided data processors ought to be able to write their programs in English, and the computers would translate them into machine code.”

Hopper helped turn mathematical computation into human language and popularized the idea of machine-independent programming languages. She was told, “But Grace, then anyone will be able to write programs!”, and that was exactly her point.


Above all, Grace was also an ordinary person, really passionate about her work and never afraid to accept a challenge. A younger 10-year-old Grace wrote in the school yearbook:

Faithfulness in all things
My motto is you see;
The world will be a better place
When all agree with me

This self-confidence was what let her to become one of the most important pioneers in computer science.


Advent Calendar — Help us make it a book!

From December 1st until December 24th we plan to release one article each day, highlighting the life of one of the many women that have made today’s computing industry as amazing as it is: From early compilers to computer games, from chip design to distributed systems, we will revisit the lives of these pioneers.

Each article will come with an amazing illustration by @SebastianNavasF.

If you want to see these series to become a book with expanded articles and even more illustrations by Sebastián, then subscribe to our newsletter below.

Credits

References:

  • Beyer, K. W. (2015). Grace Hopper and the invention of the information age. BookBaby.
  • Williams, K. (2012). Grace Hopper: Admiral of the cyber sea. Naval Institute Press.
  • Sammet, Jean E. (1992) Farewell to Grace Hopper-end of an era!. Communications of the ACM. 35.4: 128–132.
  • Interview in David Letterman’s late-night talk show. Grace Hopper on Letterman
  • https://en.wikipedia.org/wiki/Grace_Hopper