Tutorials Developer

Grace Hopper: Machines That Read Human Instructions

By Infinite Creation · Profile
Historical photograph of Grace Hopper.Image credit & licence

At a Glance

Grace Brewster Murray Hopper (1906-1992) wrote the first compiler, the A-0 system, in 1952, establishing that a computer could translate human-readable instructions into machine code. She drove the development of COBOL and the idea that programming languages should be readable and machine-independent, and served in the US Navy to the rank of rear admiral.

  • Lived: 1906-1992, United States
  • Anchor year: 1952, the first compiler
  • Strand: canon

Career

1

The problem as it stood

Programming meant writing machine code by hand: numeric instructions specific to one machine. It was slow, error-prone, and had to be redone entirely for different hardware. The prevailing view was that computers did arithmetic and nothing else.

2

What she actually did

Hopper wrote a program that took symbolic instructions and produced machine code, and then pushed for languages resembling English so that people who were not mathematicians could write programs. That thinking produced FLOW-MATIC and then COBOL.

3

How it worked

A compiler is a program whose input is a program. Once you accept that code is just data to be transformed, the machine can do the translation, including the tedious, error-prone parts. Everything in modern software rests on that recursion.

4

What it made possible

All high-level programming, and therefore every piece of software in the rest of this corpus: codecs, streaming servers, editing systems. Machine-independence also meant programs outliving the hardware they were written for.

5

What happened to her

She served in the Navy for decades, retiring as a rear admiral in 1986, and remained a prominent advocate for standards and for questioning "we have always done it this way". She also popularised, though did not originate, the term "bug" after a moth was found in a Mark II relay.

6

Where the credit landed

Hopper is well credited and, unusually for this corpus, was publicly celebrated in her own lifetime. The claim that she "invented COBOL" overstates it: she drove the effort and the language was a committee product, which is standards-body authorship again, this time with one participant famous enough to absorb the credit.

Known For

  • A compiler is a program whose input is a program: that recursion is the whole idea.
  • Machine independence meant programs could outlive their hardware.
  • She drove COBOL rather than inventing it. It was a committee product.

What You'll Learn

Everything digital in this corpus is written in something, and something compiles it.

Why "computers only do arithmetic" was the obstacle

The objection Hopper met was conceptual rather than technical. If a computer is an arithmetic machine, then translating symbolic text into instructions is not the kind of thing it does. Accepting that a program is data the machine can manipulate removes the objection entirely and opens compilers, interpreters, operating systems and everything after. It is a category shift, not an engineering advance.

Where This Fits

Compilers made software possible, and A History of Broadcast Technology covers the media chain that software later took over.

FAQ

Q: Did Grace Hopper write the first compiler?
A: She wrote the A-0 system in 1952, generally regarded as the first compiler: a program translating symbolic instructions into machine code.

Q: Did she invent COBOL?
A: She drove its development and its design philosophy of English-like, machine-independent code, but COBOL was produced by a committee. Attributing it to her alone overstates it.

Vocabulary

Compiler. A program translating human-readable instructions into the machine code a processor executes. Removes the need to write in a processor's own numeric language, and makes the same source usable on different machines.

Machine code. The numeric instructions a processor executes directly. Specific to a particular processor design, which is why programs written in it cannot move between different machines.

High-level language. A programming notation closer to human description than to processor instructions. Makes programs shorter, more portable, and readable by people who did not write them.

Abstraction. Hiding detail behind a simpler interface so that work can proceed without it. The idea underneath every layer of computing, from compilers to file formats to network protocols.

Sources

The paper was checked against its publication record. Checked 20 August 2026.

Translate this page

Machine translation provided by Google Translate, on Google’s servers. We do not check these translations and they will get technical terms wrong. The English page is the authoritative one. Following a link sends this page’s address to Google. Your browser may also offer to translate this page itself, which keeps the request on your device.