"Exploring PDP-1 Lisp (1960)"

When John McCarthy first described Lisp in 1958, he was thinking about symbolic computation — not the kind of number-crunching that dominated computing at the time. By 1960, the first implementations were running on hardware that makes a modern smartwatch look like a supercomputer. One of the most fascinating was the PDP-1 Lisp, documented extensively by the obsolescence.dev project.

The Machine

The PDP-1 was Digital Equipment Corporation's first computer, delivered to Bolt, Beranek and Newman (BBN) in November 1960. It had 4K words of core memory (each word was 18 bits), a 5μs cycle time, and cost $120,000 — about $1.2M in today's money. It had no operating system in any modern sense, no disk, and no screen worth mentioning (just a CRT point-plotting display). Programs were loaded from punched paper tape at a blistering 300 characters per second.

Running Lisp on this machine was an act of radical minimalism.

Lisp on Bare Metal

The PDP-1 Lisp implementation, known as Basic PDP-1 Lisp, was one of the earliest full Lisp systems outside the IBM 704/7090 lineage. It included all the core features that define Lisp even today:

  • S-expressions as the universal data structure
  • Recursion as the primary control mechanism
  • Automatic storage management — a garbage collector on a machine with 4K words of memory
  • EVAL as the heart of the interpreter

The constraints were severe. With only ~8,000 18-bit words of memory (the system itself took a chunk), programmers worked in an environment where every instruction mattered. The compiler was written by Brayton with assistance from David Park, producing code tight enough to fit a usable Lisp environment into the PDP-1's tiny address space.

Why It Matters

PDP-1 Lisp is a case study in how a powerful idea can survive extreme resource constraints. The same Lisp abstractions that power modern AI research — closures, macros, first-class functions — were expressible on a machine with 4K of memory. The garbage collector, that perennial source of angst in modern systems programming, was already there in 1960.

For anyone interested in programming language history, the PDP-1 Lisp documentation (available on obsolescence.dev) is a treasure trove, including full PDP-1 assembly language source code for the interpreter. It's a reminder that the foundations of our field were laid by people working with far less than we have, and building something that would last for decades.

Explore PDP-1 Lisp