Assembly Line

Where software comes from

Every program is two lines at once. One runs back through the compilers that built it, to holes punched in paper. The other runs down to the chip it runs on, made from sand.

  1. 01

    Down the stack

    Open any project in the directory and follow what it is built from. A CRM sits on a web framework, the framework on a language, and the language on a compiler, usually GCC or LLVM.

  2. 02

    The compilers

    Richard Stallman first released GCC in 1987, when it compiled only C. LLVM began in 2000 at the University of Illinois Urbana–Champaign and is written in C++.

  3. 03

    Built by an older compiler

    A compiler written in its own language has to be built once by something else. Its first version is written in another language, sometimes assembly, and each later version is compiled by the one before. C, Go, Rust and Python compilers were all started this way.

  4. 04

    Back to B and the PDP-7

    Ken Thompson wrote the compiler for B on a PDP-7 in 1970, a year after he wrote the first Unix for the same machine. B was the immediate ancestor of C.

  5. 05

    The first compilers and assemblers

    Grace Hopper wrote the first implemented compiler, her A-0 system, and coined the word. Before compilers there were assemblers, which were the first language tools to build themselves.

  6. 06

    Switches, then paper

    The Manchester Baby ran its first program on 21 June 1948. It had no paper-tape reader, so each word of a program was set by hand on 32 buttons and switches. Machines after it read programs from punched cards and punched paper tape, at up to 1,000 characters a second from tape.

  7. 07

    Older than computers

    Paper tape with punched holes first controlled looms in 1725, in Basile Bouchon's design. By 1801 Joseph Marie Jacquard was chaining punched cards into tape for his looms. FORTRAN programmers later numbered columns 73 to 80 of each card, so a dropped deck could be sorted back into order by machine.

The paper it was punched into

Paper → Limestone

The chip it runs on

Compiled code runs as machine code on a microchip, and the chip traces back to sand.

Microchip

Sources