| | {{infobox |
| | | title = Grace Hopper |
| | | image = grace-hopper.jpg |
| | | caption = Commodore Grace Hopper, USN — the official "covered" portrait |
| | | born = 9 December 1906, New York City |
| | | died = 1 January 1992, Arlington, Virginia (aged 85) |
| | | service = US Navy (WAVES) 1943–1986 — oldest active-duty officer at retirement |
| | | rank = Rear Admiral (lower half) |
| | | education = Vassar; PhD mathematics, Yale 1934 |
| | | known_for = First compiler (A-0) · COBOL advocacy · "debugging" |
| | | machines = Harvard Mark I · UNIVAC |
| | | nicknames = "Amazing Grace" · "Grandma COBOL" |
| | | honors = USS *Hopper* (DDG-70) · Presidential Medal of Freedom (2016) |
| | }} |
| | |
| | **Grace Brewster Murray Hopper** (9 December 1906 – 1 January 1992) was a mathematician, a Navy rear admiral, and the person who proved a computer could write its own program. She built the first compiler, popularized the word "debugging," championed [[COBOL]] into existence as a standard, and spent forty years telling anyone who would listen that computers belonged to people, not priesthoods. The fleet named a destroyer for her. |
| | |
| | ## Before the Navy |
| | |
| | Grace Murray earned her doctorate in mathematics from **Yale in 1934** — one of the few women then holding a math PhD — and taught at **Vassar**, her alma mater. When the United States entered the Second World War she tried to enlist and was rejected on every technicality available: too old at 37, fifteen pounds under the Navy's minimum weight, and — officially — too valuable as a mathematics professor to release. She obtained waivers for all of it and joined the **WAVES** in December 1943, graduating first in her class at Smith College. |
| | |
| | ## Harvard and the Mark I |
| | |
| | Her first assignment was luck disguised as an order: the **Bureau of Ordnance Computation Project** at Harvard, under Commander **Howard Aiken**, running the **Mark I** — IBM's Automatic Sequence Controlled Calculator, a fifty-one-foot relay machine of switches, gears, and five hundred miles of wire, driven by punched paper tape. |
| | |
| | Hopper became one of its first three programmers and wrote its operating manual. The Mark I's programmers coded long arithmetic sequences in a notation somewhere between mathematics and machine code — problems like the rocket-trajectory and implosion-modeling calculations the Navy needed. It was punishing, glorious work; Aiken was famously hard to please, and Hopper famously unafraid of him. She stayed at Harvard's Computation Laboratory after the war as a research fellow — until private industry offered something Harvard couldn't: a machine you could *buy*. |
| | |
| | ## The moth — told honestly |
| | |
| | [[File:first-bug-1947.jpg|right|320px|The logbook page, 9 September 1947 — "First actual case of bug being found"]] |
| | |
| | In September 1947, operators of Harvard's **Mark II** traced a malfunction to a moth trapped in relay #70 and taped the insect into the logbook: "*First actual case of bug being found.*" Hopper didn't find the moth, didn't log it — but she told the story for the rest of her life, and through her the engineering term *bug* (which Edison had used in the 1870s) became *debugging*: the word programming still uses. The logbook page sits in the Smithsonian, moth and all. |
| | |
| | ## The compiler nobody believed |
| | |
| | In 1949 Hopper joined the Eckert–Mauchly Computer Corporation — soon part of Remington Rand — home of **[[UNIVAC_I|UNIVAC]]**, the first commercial American computer. There, in 1952, she did the thing people said couldn't be done. |
| | |
| | Programmers then wrote raw machine code: numeric opcodes, absolute addresses, and hours of copying errors. Hopper's insight was that *the machine could do the tedious part*. Her **A-0 system** read a program written as symbolic calls — "get subroutine number 217 from the tape library, put it here, wire it up thus" — and produced runnable machine code. A program writing a program. She called it a **compiler**. |
| | |
| | The reaction was disbelief and worse: colleagues argued a computer *couldn't* write programs, that code had to be hand-crafted, that her approach would produce inefficient machine instructions. She later said, plainly: *"Nobody believed that. I had a running compiler and nobody would touch it. They told me computers could only do arithmetic."* A-0 became A-2, then **MATH-MATIC** and **FLOW-MATIC** — the first English-like business language, and the direct ancestor of [[COBOL]]. Every compiler, interpreter, and transpiler since — including the one that builds [[AdaLogic BASIC]] — stands on her A-0. |
| | |
| | ## COBOL and the standards war |
| | |
| | COBOL itself was designed by the **CODASYL committee** in 1959–60 (its own page [[COBOL|tells that story]]), but Hopper's fingerprints are everywhere: FLOW-MATIC proved English-like syntax could work, she advised the committee, and then she did the unglamorous part that made COBOL real — **enforcement**. The Navy ran validation tests for COBOL compilers, refusing to certify non-conforming ones, which is a large part of why "COBOL" meant the same language on every vendor's machine. Languages die by dialect; Hopper strangled the dialects. |
| | |
| | She collected an actual **tombstone** engraved "COBOL" — a gift joking about the language's predicted demise — and kept it in her office, pointing at it every time someone declared COBOL dead. It outlived every eulogist. |
| | |
| | ## Amazing Grace |
| | |
| | [[File:hopper-commodore.jpg|left|300px|Promotion to Commodore, 1983 — the Navy's oldest officer, still lecturing]] |
| | |
| | Hopper's second career was teaching the future to people who didn't believe in it yet. Her props were famous: |
| | |
| | - She handed out **"nanoseconds"** — foot-long wires, the distance light travels in a billionth of a second — to executives who asked why satellite communication took so long. (For a "picosecond," she offered a packet of pepper: the space between the flakes.) |
| | - Her office clock ran **backwards**. Asked why, she'd say it was a reminder that arbitrary conventions can be changed. |
| | - Her standing orders to young officers: "*It's easier to ask forgiveness than it is to get permission*" — and "*the most dangerous phrase in the language is 'we've always done it this way.'*" |
| | |
| | She retired from the Navy in **1966** — and was recalled within the year, "temporarily," for what became nineteen more years of service. When she finally retired in **1986**, aboard the USS *Constitution* — the Navy's oldest commissioned ship — she was, at seventy-nine, its oldest active-duty commissioned officer. |
| | |
| | Her private life was quiet: a marriage ended in 1945, she kept her husband's name, never remarried, had no children, and gave the Navy and its sailors the devotion a family might have gotten. The lecture circuit made her, in her seventies, an improbable celebrity — the admiral in dress whites explaining computers to rooms full of people who feared them. |
| | |
| | ## Legacy |
| | |
| | - **USS *Hopper* (DDG-70)** — the guided-missile destroyer commissioned in 1997, the second Navy ship named for a woman |
| | - **Presidential Medal of Freedom**, awarded posthumously in 2016 |
| | - The **Grace Hopper Celebration** — the world's largest gathering of women in computing, running since 1994 |
| | - **Hopper College**, Yale — renamed for her in 2017 |
| | - And the word **debugging**, used by every programmer who ever lived, whether they know her name or not |
| | |
| | Her real epitaph is the compiler: the idea that humans write *intent* and machines write *instructions*. Everything in [[History of Programming|the language era]] — FORTRAN, COBOL, ALB — descends from it. |
| | |
| | ## See also |
| | |
| | - [[COBOL]] · [[History of Programming]] |
| | - [[The first programmers]] — her ENIAC contemporary, Betty Holberton, co-edited COBOL's spec |
| | - [[Alan Turing]] · [[Bletchley Park]] |
| + | - [[Compilers]] — she invented the concept |
| | - [[IBM]] · [[Punched card]] |
| | |
| | [[Category:People]] |
| | [[Category:Programmers]] |
| | [[Category:History]] |
| | [[Category:Languages]] |
| | |