Grace Hopper’s compiler: the Rosetta stone of modern computing

By Mariana Rocha and Mathieu Tanneau,
PhD candidates at Polytechnique School of Montreal
 

“Hi Google! What’s the weather like today?”

We ask my computer in the morning, from which the machine understands “…001010110…” and promptly replies us back with the forecast of the day. The computer doesn’t know English and we don’t speak Computer, a language of 0s and 1s, however, we can easily communicate!

What made it possible to “talk” to machines with programming languages that look like English and for sure unlocked the potential of communication between humans and computers was the creation of the compiler, by Grace Hopper.

Grace Murray Hopper was born in New York in 1906. Her parents, contrary to the society at the time, always encouraged her studies as they thought men and women deserve the same chance. Family support plus Grace’s great skills in mathematics and sciences lead her to be the first woman to obtain a PhD in mathematics from Yale University, in 1934.

Grace joined the American navy in 1943 as a volunteer in WAVES, Women Accepted for Volunteer Emergency Service, and was appointed to work on the project: computer Harvard Mark I.

Back in 1940, computers were still in their infancy: the Mark I was a 10,000-pound box of metal, powered by a 5-horsepower motor, and occupied most of the basement it was in. Performing a computation required properly setting up manually every switch on the machine, while instructions were passed through punched paper tape. For each new equation, the team had to rewire the entire machine, which took considerable time and was prone to mistakes. Imagine how painful it would be if simply changing gear on your bike required you to stop and replace both your wheel and chain!

After working in the Navy Hopper took a job in a private company, where in 1951 she developed the first compiler, called A-0 system, for the computer UNIVAC I. With that she accomplished her main objective when taking the job, to contribute to the expansion of computer science beyond its predominantly military use.

A few years later, computers’ performances had improved, but programming still meant writing machine-specific binary sequences of Zeros and Ones. With practice, Hopper’s team accumulated numerous chunks of such code, each of them an established, tested routine. Hopper’s great idea was to make each of these routines callable by a high-level, english-like instruction, such as “addition” or “multiplication”: the compiler was born.

The compiler is basically a program that transforms high-level, human-fed instructions into an equivalent sequence of 0s and 1s, called machine code, which the computer can understand. Just like the Rosetta stone enabled scientists to understand the meaning of Egyptian hieroglyphs, a compiler allows computers to recognize the meaning of human input (through programming languages).

There is more! Grace wanted also to create a new programming language, the most similar to English as possible and also viable to be used in any computer. What culminates to the development of the language COBOL in late 50’s by Hopper, while she was working for IBM.

 The compiler became the foundation for a bridge between humans’ abstract algorithms, and computers’ physical processes - whether mechanical, electronic or quantum. This enabled programmers to focus on improving their algorithms, thereby making programming simpler and faster, and paved the way for the now famous distinction between hardware and software.

However, Grace Hopper’s compiler not only allowed programmers to spend their time on algorithms rather than wiring. Together with the spread of personal computers, it eventually made programming accessible to virtually anyone. Nowadays, even a ten year-old can write code, not just an elite group of “high priests”, as Grace used to call computer scientists.

By making programming widely accessible, Grace Hopper’s invention unlocked vast potential and helped shape the world as we know it today. Her past achievements will surely be transcended in the future: although still a longshot, brain-computer interfaces could allow an even deeper connection between human and machines, opening a new world of possibilities...