Professor David Wheeler

Computer pioneer and inventor of the 'closed subroutine'

David John Wheeler, computer scientist: born Birmingham 27 February 1927; Research Fellow, Trinity College, Cambridge 1951-57; Assistant Director of Research, Mathematical Laboratory, Cambridge University 1956-66, Reader in Computer Science 1966-78, Professor of Computer Science 1978-94 (Emeritus); Fellow, Darwin College, Cambridge 1967-94 (Emeritus); FRS 1981; married 1957 Joyce Blackler (one son, two daughters); died Cambridge 13 December 2004.

In October 2003, David Wheeler was inducted into the Hall of Fellows of the Computer History Museum, California, for his contributions to computer science, particularly the "closed subroutine" - one of the first and most enduring software inventions. For Wheeler it was one of the closing pages of a story that began in November 1946 when, as a Cambridge undergraduate, he had attended the inaugural lecture of Douglas Hartree, the newly appointed Plumian Professor of Mathematical Physics. Hartree had then recently returned from the United States, where he had seen the latest electronic computing developments, and he was convinced computers would revolutionise the way science was done.

Wheeler was hooked, and he found his way to the University Mathematical Laboratory, where one of the new computing machines was already being designed under the direction of Maurice Wilkes. Wheeler quickly made his presence felt, by pointing out a bug in the arithmetic circuits. "I must have been a pest!" he recalled. Two years later, he became one of the first two research students in the laboratory and stayed for the remainder of his life.

David Wheeler was born in Birmingham in 1927, the second of three children of Arthur and Agnes Wheeler. He was educated at King Edward VI Camp Hill Grammar School, Birmingham, and, following wartime dislocation, Hanley High School, Stoke-on-Trent. In 1945 he won a scholarship to Trinity College, Cambridge, where he read Mathematics and graduated as a Wrangler.

In October 1948, Wheeler became a research student in the Mathematical Laboratory under the supervision of Wilkes and joined the team that was building the Edsac computer. Wilkes had already decided that, because of the limited resources available to the laboratory, instead of building a machine of the highest performance they would build a computer quickly and cheaply, and then conduct research into programming and applications. Programming would prove to be Wheeler's forte and Wilkes let him take the lead.

The first problem that Wheeler faced was how to avoid having to write programs in binary codes, the only thing that the machine directly understood. Besides using a symbolic programming notation - an innovation it is easy to overlook - he also had to create a set of "Initial Orders" to translate symbolic programs into binary. The Initial Orders had to be written in the ludicrously small space of 30 instructions.

Edsac sprang into life on 6 May 1949. The machine was soon pressed into regular operation, providing the world's first electronic computing service. As operational experience built up, it became clear that programmers would be much more productive if they were provided with a library of subroutines - small, pre-written programs for mathematical functions and the tabulation of printed results.

Wheeler tinkered with the Initial Orders to allow the use of subroutines. Using just 41 instructions (a tiny additional amount of memory had become available), he was able not only to support subroutines, but also to add many additional features. The new Initial Orders were of breathtaking cleverness. The neatest feature was his implementation of subroutines, which used a technique later known as the "Wheeler jump".

The Initial Orders had something of the elegance of a perfectly honed theorem in mathematics. They were much more than an ingenious response to the memory constraints of the Edsac. It was as if these constraints had induced Wheeler to produce a programming artefact of real genius. His work would shape the programming landscape for several years and, to a degree, it still shapes it.

In 1951, the group wrote the first textbook on programming, The Preparation of Programs for an Electronic Digital Computer - usually known after its three authors as "Wilkes, Wheeler and Gill" or simply WWG. (The third author, Stanley Gill, was another young researcher who later became Professor of Computing Science at Imperial College.)

The book arrived on the scene just as the first American computers were coming into service, and the Cambridge programming techniques were widely adopted. For example, the IBM 701, the office-machine giant's first electronic computer, made use of closed subroutines and the Wheeler jump. Even today, closed subroutines persist at the heart of almost all programming systems.

In 1951, Wheeler secured a research fellowship at Cambridge, and during 1951-53 spent two years as a visiting assistant professor at Illinois University, where he contributed to the design of the Illiac computer. In 1956 he was appointed Assistant Director of Research in the Mathematical Laboratory. A successor machine, Edsac 2, was under construction, and Wheeler again designed the programming system. This time he had 768 words of memory at his disposal. He probably got more personal satisfaction from the larger canvas, and the result was another programming masterwork.

In 1966 Wheeler was appointed Reader in Computer Science, and elected a Fellow of Darwin College the following year. The laboratory was at the centre of his whole professional life, as teacher, scholar, and research supervisor. A gentle manner and genuine humility belied his formidable analytical powers and problem-solving ability.

Wheeler's academic career was to consist of a string of important contributions to computer science and practice, of which the programming systems for the Edsac computers were just the first. His work was pivotal to the realisation of the ambitious technical goals the laboratory set itself. He played an important role in the operating system for the laboratory's Titan computer, Britain's leading time-sharing computer project of the 1960s. He worked on the Cap computer in the 1970s, another breakthrough in computer design, and on the Cambridge Ring, a forerunner of the networked computer systems of today.

In 1978 Wheeler was appointed Professor of Computer Science, and in 1981 was elected a Fellow of the Royal Society. Beyond the laboratory (now renamed the Computer Laboratory), he was a consultant for Bell Labs and the Digital Equipment Corporation in the United States. At the latter he worked with Mike Burrows to devise the Burrows-Wheeler Compression Algorithm, a now-standard technique for reducing the size of computer files.

He never lost his talent for writing perfect programs, and one commentator described Wheeler's data compression program as "mathematical/computer magic". Close to retirement in 1994 he invented with Roger Needham an elegant cryptography technique later widely used and called Tea, for Tiny Encryption Algorithm.

Wheeler retired in 1994, becoming Professor Emeritus. His later years were blighted by failing eyesight, but he still spent most days in the laboratory, including his last.

Martin Campbell-Kelly