The Rear Admiral Who Invented The Compiler: 'Amazing Grace' Hopper

Grace Hopper, or "Amazing Grace" as she was sometimes known, was a formidable woman. Not only is she one of the few people to have a U.S. Navy destroyer warship and a supercomputer named after her, she was also a Rear Admiral and a pioneering computer scientist. Hopper invented the first compiler for a computer programming language, and is also credited with coining the phrase 'debugging' in the computer world.


"Humans are allergic to change."

Like other pioneering wartime programmers, Grace Hopper studied mathematics throughout her life. Unlike the young women on the ENIAC team who were almost all fresh out of college when they became pioneering programmers, however, Hopper was already 36 when she joined the war effort in 1943.

Prior to this, her career had been largely academic. She was a precocious child and was admitted to college at the age of 17 after narrowly missing out on early admission the year before. She graduated from Vassar College with a bachelor's degree in Mathematics, and then went on to continue studying at Yale University. From Yale she earned her master's degree in 1930, and then went on to earn a Ph.D. in mathematics in 1934 with her dissertation New Types of Irreducibility Criteria. At the same time, she began teaching in 1931 and became an associate professor ten years later in 1941.

Her Navy career began in 1943, when Hopper took a leave of absence to join the United States Navy Reserve, one of many women to serve in the WAVES (Women Accepted For Volunteer Emergency Service) in World War II. As would turn out to be a theme throughout her naval career, Hopper had to apply for an exemption just to enlist; she was 6.8kg, below the Navy's minimum weight of 54kg.

In 1944, Hopper graduated at the top of her class at the Naval Reserve Midshipmen's School, and was subsequently assigned to the Bureau of Ships Computation Project at Harvard University. Throughout the war she served with the Mark I computer programming staff at Harvard — an early general purpose electro-mechanical computer which played a key role in the Manhattan Project, calculating some of the equations that were essential for the development of the atomic bomb.


"It's easier to ask forgiveness than it is to get permission."

Once the war was finished, Hopper had no desire to return to her teaching position at Vassar, even when she was offered a full professorship. Her request to transfer to the regular Navy was denied, however, as she was already 38 at the time — so she continued to serve in the Navy Reserve for the time being. She remained where she had originally been stationed in the Harvard Computation Lab until 1949, working as a research fellow under Navy contract.

It was while she was working on the Mark I team at Harvard that Hopper popularised the term 'debugging'. In the popular anecdote, Grace had to literally debug her computer, by removing a 2-inch moth from the Mark II computer they were working on.

"From then on, when anything went wrong with a computer, we said it had bugs in it," she said. The term 'bug' had been used in other industries, notably by AT&T to refer to small glitches in the phone line, but Grace is credited with bringing it to popularity within the computing world.

When she left the Navy — but not for the last time, of course — in 1949, Hopper was employed by the Eckert-Mauchly Computer Corporation as a senior mathematician, joining the team developing the UNIVAC I computer. The name may sound familiar if you've been following this series so far. Three of the six women working on the ENIAC computer were also a part of the UNIVAC I project, or developed software for it — Jean Bartik, Kay McNulty and Betty Holberton. One of the co-founders of the company, John Mauchly, was even married to programmer Kay McNulty.


"They told me computers could only do arithmetic."

It was while she was working here, in the early 1950s, that she developed her original compiler, known as the A compiler. "Nobody believed that," Grace said of the day in 1952 when she finally had an operational compiler. "I had a running compiler and nobody would touch it. They told me computers could only do arithmetic."

A compiler is program or set of programs that translates high-level programming language into low-level programming language, such as the Assembly language that most computer software was written in at the time. Hopper's first compiler was more of a loader or a linker than it was a compiler by modern standards, but it still set the standard for the ideas that were to follow. Despite the initial disinterest in her A-0 compiler by 1954 Grace was made the company's first director of automatic programming, with her department subsequently working on the A-1, A-2, A-3 (ARITH-MATIC), AT-3 (MATH-MATIC) and B-0 (FLOW-MATIC) compiler-based programming languages.


"But Grace, then anyone will be able to write programs!"

In 1959, Grace served as the technical consultant to a committee formed to define a new programming language called COBOL (COmmon Business-Oriented Language, based on her earlier FLOW-MATIC language. This happened at a two-day conference called the Conference on Data Systems Languages, when a number of computer experts came together to develop this language. Hopper championed her idea that a program should be written in a language close to English, rather than using technical machine code or assembly languages. COBOL ended up being the most ubiquitous business language to date, and even earned Grace Hopper the nickname of 'Grandma COBOL', being 52 at the time. An example of what a command in COBOL would look like can be seen below, in the Google Doodle for Hopper's 107th birthday that appeared on December 9, 2013.

Hopper returned to working with the Navy in 1967, serving as the director of the Navy Programming Languages Group in the Navy's Office of Information Systems Planning. Despite her slight stature and (relatively) advanced age, Hopper continued to rise through the Navy ranks, being promoted to Captain in 1973 at approximately 66 years old. She continued to develop COBOL with the Navy, standardising the program for the US Navy.

Indeed in her work with Defense Hopper managed to advocate for a number of new, modernised standards, such as replacing large, centralised computer systems with networks of small, distributed computers. This introduced common databases that users on the small computer nodes could access via the network. Hopper also implemented standards for testing computer systems and components — such as programming languages like COBOL and FORTRAN. In 1980, her tests were assumed by the National Bureau of Standards, helping to further standardise the programming language dialects of major computer companies.


"I've always been more interested in the future than in the past."

Hooper retired from the Naval Reserve at the age of 60, as the Navy's regulations demanded though only a year later she was recalled to active duty for six months. With a woman as tenacious as Hopper, that six months soon turned into an indefinite period, at least until she retired again in 1971. Yet again, her retirement didn't last long and she went back in 1972, the year before she was promoted to Captain.

More than ten years later in 1983 a joint resolution in the House of Representatives led to her promotion to Commodore (a rank which was later renamed Rear Admiral) by special Presidential appointment — a movement which began when a Republican representative saw her on a segment of 60 Minutes.

A few years later in 1986 Grace finally retired from the Navy for good, albeit involuntarily. Indeed, the only reason she was still serving at that age was thanks to the special approval of Congress. At the time of her retirement she was the oldest active-duty commissioned officers in the US Navy, at the age of 79 years, eight months and five days. Only four other officers in the Navy's history have served at a higher age than Grace Hooper did, and no doubt she would have broken a few more records if they had allowed her to stay on.

Not one to ever fully retire, Hopper worked until her death at age 85, as a senior consultant at Digital Equipment Corporation. Her role at this company was mainly as an ambassador, lecturing on her experience in the early days of computing. She was known as a frank speaker, and had many interesting stories from the early days of the war to share, often receiving a standing ovation for her speeches — for which she still wore her Navy full dress uniform.

"The most important thing I've accomplished, other than building the compiler, is training young people. They come to me, you know, and say, 'Do you think we can do this?' I say, "Try it." And I back 'em up. They need that. I keep track of them as they get older and I stir 'em up at intervals so they don't forget to take chances." — Grace Hopper

A huge number of awards and honours in the computing world were both awarded to and named after "Amazing Grace", as she was sometimes called. Aside from the aforementioned warship Hopper also has lent her name to the 'Gracies' (the Government Technology Leadership Awards), the NERSC's flagship system 'Hopper', the annual Grace Murray Hopper Award for Outstanding Young Computer Professionals and the Office of Naval Intelligence's Grace Hopper Information Services Center.

These Are Your Numbers is a new Lifehacker series where we profile great minds that have made significant contributions to robotics and computing.


Comments

    Despite my glib comment on the previous Turing article, these are really interesting - hope the series carries on for a good while to come :)

Join the discussion!

Trending Stories Right Now