A-0 Compiler
In the spring of 1952, American mathematician Grace Murray Hopper created the A-0 (Arithmetic Language 0), the first compiler ever designed. This creation occurred at a time when computing was attempting to break free from military laboratories and open up to other horizons.
The path toward this innovation began during World War II. In 1943, this Yale graduate joined the U.S. Naval Reserve before being assigned to Harvard. There she worked on the Mark I, then the most imposing digital calculator, under the supervision of Howard Aiken. She was among the first three programmers in history to operate this ancestor of modern computers.
On the Mark I, programming was performed via punched tape: a hole symbolized a 1, the absence of a perforation a 0. Hopper wrote the machine’s operating manual, a 500-page Manual of Operation for the Automatic Sequence Controlled Calculator. This deep dive into the machine’s inner workings gave her a unique perspective on the difficulties of programming at its most elementary level.
In 1949, she left Harvard for the Eckert-Mauchly Computer Corporation. She participated in the design of UNIVAC I, the first commercial electronic computer. It was there that she noticed a practical problem: programmers were wasting hours copying existing code to adapt it to new projects. This tedious task generated numerous errors, primarily when manually adjusting memory addresses.
This observation led her in 1951 to create a system to automate the process. She developed the A-0, capable of assembling pre-existing subroutines into a coherent program. Her system used alphabetic characters to indicate the nature of operations (a for arithmetic, x for exponential). Arguments and results appeared in a numbered list, referenced by their position.
The magic of the A-0 lay in its ability to translate between symbolic language and machine code. To calculate the square of a number, a programmer simply specified the operation and references to variables, without writing all the corresponding binary instructions. This abstraction constituted a breakthrough because, for the first time, humans programmed in a language more natural to them.
The gains proved considerable, with weeks of programming reduced to a few hours. Errors decreased, reliability increased. The A-0 introduced a layer of abstraction between humans and machines that would become the cornerstone of modern computing.
The system evolved with versions A-1 and then A-2 in 1953. This latter version introduced short mnemonics for operations, making the code more readable. For example, ADD 00X 00Y 00Z adds X and Y, storing the result in Z. A-2 was the first compiler widely adopted by UNIVAC users, thus validating the concept.
In 1954, Hopper took charge of automatic programming for the UNIVAC division. This position gave her the opportunity to realize her vision of a more accessible language. She understood that most users had little appreciation for mathematical symbols and preferred something more natural: English. This reflection led to B-0 (Business Language 0) in 1955, renamed FLOW-MATIC, which allowed programs to be written with syntax close to everyday English.
The A-0 reached its peak in the development of COBOL starting in 1959. At the Conference on Data Systems Languages (CODASYL), where Hopper served as technical advisor, the foundations established with A-0 and FLOW-MATIC directly inspired this language. The structure of code in distinct sections and the use of syntax close to English primarily characterized COBOL.
The A-0 compiler established several foundational principles for computing: code reusability, abstraction of machine operations toward high-level instructions, and accessibility of programming. These concepts remain essential, to the point that it’s difficult to imagine contemporary computing without them.
Hopper’s contribution earned her numerous distinctions. In 1969, she received the Computer Sciences Man-of-the-Year Award from the Data Processing Management Association, a title whose irony doesn’t escape anyone with our contemporary perspective. She continued her career in the U.S. Navy until 1986, reaching the rank of Rear Admiral, while advocating for computer innovation and the democratization of programming.
The A-0 compiler transformed a field once reserved for mathematicians and scientists into a more broadly accessible tool. Ease of use on one hand, and abstraction of technical complexities on the other, remain today at the heart of programming language designers’ concerns, a direct legacy of Grace Hopper’s work 73 years ago.