Short Code, or the first time a machine did the translating
In July 1949, John Mauchly circulated a proposal at the Eckert-Mauchly Computer Corporation in Philadelphia with a premise that would have seemed almost impolite in its simplicity: give programmers the right to write a = (b + c) / b * c and let the machine sort out the rest.
The machine in question was the BINAC — Binary Automatic Computer — and in 1949 it spoke nothing resembling human mathematics. Every instruction arrived as a precise numeric opcode mapped to a specific memory address. If you wanted to add two numbers, you wrote the opcode for addition; if you wanted to store a result, you wrote the opcode for store. A single formula might require dozens of such instructions, each exact or abandoned entirely. Mauchly, who had co-invented ENIAC with J. Presper Eckert four years earlier, had grown tired of explaining arithmetic to machines in their own terms.
His proposal was called Brief Code, later renamed Short Code or Short Order Code. The idea was a translation table: each element of a mathematical expression got a two-character numeric code. The numeral 03 meant equals; 07 meant add; 06 meant absolute value. A programmer wrote the expression using these codes, grouped them into six-character clusters to fit the BINAC’s 12-byte word structure, and handed the whole thing to the machine. The machine then translated each statement into the raw opcodes the hardware expected.
The programmer who actually built this was William Schmitt. He had a version running on the BINAC before 1949 was out, though it was never fully debugged. The following year he completed a working implementation for the UNIVAC I and had the interpreter running.
Here is the performance report: Short Code ran approximately fifty times slower than equivalent hand-written machine code. Fifty times. By any reasonable measure, this was a disaster.
And yet programmers used it. Britannica identifies Short Code as the first high-level programming language actually implemented on a working electronic computer — which distinguishes it from Plankalkül, Zuse’s earlier but unimplemented design. The speed penalty was real, but it bought something programmers valued more than throughput: the ability to write in something approximating mathematical notation rather than pages of cryptic opcodes. Mauchly had, without quite naming it, invented the trade-off at the center of every high-level language that followed — human time costs more than machine time, so let the machine pay.
What Short Code could not do was compile. It interpreted: each time the program ran, every encoded expression was translated afresh into machine instructions, which is where the fifty-to-one overhead lived. A decade later, John Backus at IBM would solve this with Fortran — compiling once, running fast. But Short Code came first, and the question it answered was the harder one: can a machine be made to understand something approximating human notation at all?
The concept spread quickly. A. B. Tonik and J. R. Logan revised Short Code for UNIVAC II in 1952. Grace Hopper, also working on UNIVAC machines at Remington Rand and watching closely, took the idea considerably further when she began building her A-0 system that same year.
The fifty-to-one overhead eventually shrank to nothing. The question Mauchly asked in 1949 never did.
Sources
- Short Code (computer language) — Wikipedia — proposal date, Brief Code origins, two-character encoding scheme, Schmitt’s implementation for BINAC and UNIVAC I, performance figures.
- Shortcode — Encyclopaedia Britannica — significance as first implemented high-level language, Mauchly and Schmitt roles.