esc
Type to search, or take a leap:
1957 AD (FORTRAN)·Computing·verified

Programming languages

Notations that let a person write instructions in something close to human algebra or English, which a translator program — a compiler — turns into the raw numeric machine code the processor actually runs. They put a layer of human-readable abstraction between the programmer and the bare machine.

Programming languages
Tangopaso. · Public domain · Wikimedia Commons

✦ Wait, really?

The word "bug" for a computer fault has a literal specimen behind it. On 9 September 1947 operators of Harvard's Mark II relay computer found a moth jammed in a relay, taped it into the logbook, and wrote "First actual case of bug being found." Grace Hopper — who a few years later built the first compiler, the A-0 system of 1952, that let a machine translate human-written symbols into its own code — loved to retell the story. The moth is still preserved at the Smithsonian.

What it is

A programming language is a notation for expressing computation that people can read and write, paired with a translator that converts it into the numeric instructions a processor executes. Instead of writing the literal opcodes a machine understands — long strings of numbers specifying registers and addresses — you write `AREA = PI * R**2`, and a compiler works out the exact sequence of machine instructions that computes it. The language defines what you are allowed to say (its syntax and semantics); the compiler or interpreter is the machinery that faithfully turns what you said into what the hardware does.

Why it mattered

The earliest stored-program computers were programmed in raw machine code or, slightly better, assembly language — a painstaking craft understood by a small "priesthood" who thought in the machine's own numbers. That was the bottleneck: programs were slow to write, riddled with errors, and locked to one model of computer. High-level languages broke it. IBM's FORTRAN, whose first compiler shipped for the IBM 704 in 1957 under John Backus, let a scientist write ordinary algebraic formulas and have them run nearly as fast as hand-tuned machine code — the objection that mattered most at the time. Suddenly people who were not machine specialists could program, and a program written in the language could be moved to any computer that had a compiler for it.

What it unlocked

Programming languages are the reason software is an industry rather than a specialty. Layer upon layer of abstraction — assemblers, then FORTRAN and COBOL, then thousands of languages since — let programmers describe ever larger systems without tracking the machine's every register, and let the same program run on wildly different hardware. Every application, operating system, website, and AI model is written in one language and compiled or interpreted down toward another. The whole pyramid rests on the modest act of translation Hopper and Backus made routine: say it in human terms, and let a program turn it into the machine's.

Minimum viable version

An assembler: the smallest useful language, one human-readable mnemonic per machine instruction (ADD, LOAD, JMP), translated line-for-line into the numeric opcodes the processor runs. From there, higher-level languages add algebra, loops, and names for things.

This entry is awaiting its full account — the cartographers are at work. Its place in the graph is already verified.

Sources

  • John W. Backus et al., 'The FORTRAN Automatic Coding System' (Proceedings of the Western Joint Computer Conference, 1957)
  • Grace M. Hopper, on the A-0 compiler and automatic programming (1952)
  • Kurt W. Beyer, *Grace Hopper and the Invention of the Information Age* (2009)

Something wrong on this page? Every claim here is meant to survive challenge. Suggest a correction →