# David Wheeler

> 1927–2004 · Computer Scientist
>
> **Recorded contribution:** Operationalized closed subroutines and reusable libraries with Maurice Wilkes and Stanley Gill; EDSAC; Wheeler jump; early computer-science doctorate

## How to use this dossier

Read for a causal chain, not a hero story: inherited problem → contribution → mechanism → downstream capability → limit. Then close the page and complete the reconstruction exercise from memory.

## 1. Historical orientation

David Wheeler (1927–2004) joined Maurice Wilkes's EDSAC group at Cambridge and completed a 1951 doctorate often described as the first PhD in computer science. His more durable technical association is the reusable subroutine. EDSAC programmers stored commonly needed routines in a library and used calling conventions and the 'Wheeler jump' to enter a routine while preserving a return path. The idea had theoretical and machine-code precedents, so 'invented the subroutine' is too absolute; Wheeler, Wilkes, and Stanley Gill made a disciplined library method operational and documented it in one of the earliest programming textbooks.

## 2. The problem inherited

Early programmers repeatedly rewrote arithmetic and input/output sequences, wasting scarce memory and effort while introducing new errors into every program.

## 3. The central contribution

Wheeler helped establish closed subroutines, calling conventions, relocation practices, and a shared EDSAC library so one tested sequence could be invoked from many programs and return correctly.

## 4. Reconstruct the mechanism

1. Place a tested operation sequence at a known library location with documented input, output, and clobbered storage.
2. Before transfer, arrange a return instruction or address derived from the caller's current location.
3. Jump into the routine, perform the shared calculation, and branch through the saved return path to resume the caller.
4. Relocate or modify addresses as the routine is loaded so the same symbolic library text works at different memory positions.

## 5. What changed downstream

- Reusable libraries made programming faster, more reliable, and more modular.
- Calling conventions became the bridge between independently compiled components and later operating systems.
- Wheeler's work helped turn programming technique into a teachable discipline.

## 6. Attribution, limits, and uncertainty

- Subroutine ideas predate EDSAC; the historical achievement is a practical stored-program convention and library, not creation from nothing.
- Wilkes, Gill, EDSAC engineers, and library users jointly developed and documented the programming system.
- Self-modifying return techniques were machine-specific and less robust than later stacks and link registers.

## 7. Reconstruction lab

On a toy machine without a stack, implement a square-root subroutine that patches its own final jump with the caller's return address. Call it from two sites, show why nesting fails, then add a stack and state the modern calling-convention invariants.

## 8. Evidence trail

- [David Wheeler: Computer Pioneer](https://www.cl.cam.ac.uk/archive/djw24/) — University of Cambridge
- [The Preparation of Programs for an Electronic Digital Computer](https://archive.org/details/programsforelect00wilk) — Internet Archive

---

*Research checked 2026-08-09. Dates, roles, and claims about living people are historical snapshots. Linked sources remain the authority; this dossier is original instructional synthesis.*
