Go Backindex biographiesgo to mainpage
David John Wheeler

February 9, 1927, Burmingham, UK
December 13, 2004, Cambridge, UK

David Wheeler

principal papers
"The Preparation of Programs for an Electronic Digital Computer" 1951

TEA, a Tiny Encryption Algorithm. Fast Software Encryption 1994:


Assembly Lanaguage

see also

related subjects

assembly language, encryption


A pioneer of the Edsac computer at Cambridge who helped to develop the second generation of a programming language called Assembly Language, assembler.

Long before there was object-oriented programming, David John Wheeler created the closed subroutine, which enabled segments of code to be written independently of the main application flow and called as needed.

He worked on the original EDSAC computer and wrote the first computer program ever to be stored in a computer's working memory. He pioneered the use of sub-routines and is particularly remembered for his work on data compression (TEA)(3).

Wheeler, who also was involved with some of the earliest computers, such as the University of Illinois’ ILLIAC—the first computer to be wholly owned by an educational institution.

David Wheeler at Unviversity of Cambridge during EDSAC99 event(1)


David Wheeler was one of the generation of mathematicians and engineers who were drawn to the newly emerging discipline of computer science in the period immediately after the Second World War. As a member of the team working with Maurice Wilkes on Cambridge’s Edsac (Electronic Delay Storage Automatic Computer), he was responsible for the system that provided instructions to the computer, and the innovations he made at the time still form the basis of modern computer programming.

Wheeler’s “initial orders” allowed Edsac instructions to be provided in a simple language rather than by writing binary numbers, and made it possible for non-specialists to begin to write programs. This was the first “assembly language” and was the direct precursor of every modern programming language, all of which derive from the desire to let programmers write instructions in a legible form that can then be translated into computer-readable binary.

As the first programmer for Edsac, Wheeler invented ways of working which have now become standard. He realised that lines of program code could often be reused, and created the subroutine and the idea of keeping frequently-needed subroutines in a separate library which could be called on as necessary. He also developed the “Wheeler Jump” to allow a program to pass control to a subroutine, the precursor of the “goto” statement known to everyone who has ever written a program in Basic.

Wheeler was an inspiring teacher who helped to develop computer science teaching at Cambridge from its inception in 1953, when the Diploma in Computer Science was launched as the world’s first taught course in computing. Many of his research students now occupy senior positions in major computer companies, or have made their own significant contributions to computer science, including the development of new programming languages.

David John Wheeler was born in 1927 in Birmingham. He was one of many children evacuated from major cities during the period of heavy bombing in the Second World War. In 1945 he was awarded a scholarship to Trinity College, Cambridge, where he read mathematics and graduated in 1948. During this period Maurice Wilkes was working in the reopened Mathematical Laboratory, as the Computer Laboratory was known until 1970, on a project to build a stored-program electronic computer called Edsac. In 1947 Wheeler joined a group of students working with Wilkes, and after graduation he became the lab’s second post-graduate student.

The first program was run on Edsac in March 1949, incorporating many of Wheeler’s innovations in its program system. These included the “initial orders” — a program which could translate simple commands into the binary instructions needed by the computer. This allowed Edsac to be programmed by non-specialists and marked the first step in the development of programming languages. Edsac was not the first computer to store and run a program, because Manchester University’s “Baby” had been doing so since June 1948, but Wheeler’s work meant that Edsac could be made available to researchers outside the Mathematical Laboratory.

Experience with writing programs for Edsac led Wheeler and his colleagues Maurice Wilkes and Stanley Gill to publish the first book for programmers, The Preparation of Programs for an Electronic Digital Computer, in 1951, and Wheeler received the first doctorate awarded by the lab in the same year. However, by the time he heard that he had been awarded a two-year research fellowship at Trinity College he had accepted a post as assistant professor at the University of Illinois, home of the Ordvac (Ordnance Discrete Variable Automatic Computer), the world’s fastest computer at the time. Wheeler worked on the programming system for Ordvac and its successor, the Illiac.

He returned to Cambridge in 1953, taking up his deferred fellowship and returning to the Mathematical Laboratory. Although most of the design work on Edsac 2, the successor to the original Edsac, had been completed, he quickly took on a key role defining its programming system and the basic set of commands that the computer could carry out — what is now called an “instruction set”. Edsac 2 went into service in 1958.

In 1955 Joyce Blackler, a research student in applied mathematics, began using Edsac for her work and met David Wheeler. They married in August 1957.

Wheeler spent the rest of his career in Cambridge, although he returned to Illinois in 1959 for a brief period, during which his son Martin was born. In Cambridge he worked on the Titan computer, which replaced Edsac 2 in 1964, and he made significant contributions to work in computer networks, data compression techniques and computer security. His daughters Lois and Alison were born in Cambridge.

He became a Fellow of Darwin College in 1965 and spent 1966 at the University of California in Berkeley, working on ways to connect online terminals to mainframe computers. In 1968 he worked for a period at Bell Labs, the foremost commercial computing research institution of the time, on data compression techniques. He became Professor of Computer Science in 1977.

He retired in 1994 but remained an active member of the Computer Laboratory until his death, despite increasing loss of vision caused by age-related macular degeneration.

David Wheeler was a private man who was not well known outside the academic computer science community, but his significant contribution to modern computing was widely acknowledged within the field. He was elected a fellow of the British Computer Society in 1970, and in 1981 he became one of the earliest computer scientists to be elected a Fellow of the Royal Society. In 1985 the Institute of Electrical and Electronic Engineers awarded him the Pioneer Medal “for assembly language programming”, and last year he was made a fellow of the Computer History Museum.

He continued to work in the Cambridge Computer Lab right up until his death after his retirement.

He is survived by his wife, Joyce, and by their three children.



1927 born in Birmingham.

1945 awarded a scholarship to Trinity College, Cambridge,

1947 started to work on the EDSAC under Maurice Wilkes

1948 Graduated in mathematics

1951 published "The Preparation of Programs for an Electronic Digital Computer";

Ph.D. in computer science at Cambridge UK

1953 computer science teaching at Cambridge

1957 married Joyce Blackler

1959 Returned to Cambridge, Illinois, working on the Titan computer

1965 Fellow of Darwin College

1966 the University of California in Berkeley

1968 Worked at Bell Labs on data compression techniques.

1977 became Professor of Computer Science

1994 Retired but stayed active in Computer Science at Cambridge

2004 Passed away


Honors and awards

1951 received the first doctorate award in computer science.

1970 elected a fellow of the British Computer Society.

1981 elected a Fellow of the Royal Society.

1985 awarded the Pioneer Medal “for assembly language programming”.

2003 fellow of the Computer History Museum for his invention of the closed subroutine, his architectural contributions to the ILLIAC, the Cambridge Ring, and computer testing (3).



Maurice V. Wilkes, David J. Wheeler, and Stanley Gill, The Preparation of Programs for an Electronic Digital Computer, Special Reference to the EDSAC and the Use of a Library of Subroutines 1951 (reprint, Los Angeles, 1982).

Letter to the editor on "A method for transposing a matrix''. Journal of the ACM, 6(2):305; April 1959

Andrew Hopper, David J. Wheeler: Binary Routing Networks. IEEE Trans. Computers 28(10): 609-703; 1979

David J. Wheeler and James E. Robertson Odd binary asynchronous counters; AFIPS_Bibliography_Vol54_1985; 1985

Li Gong and David J. Wheeler, "A matrix key distribution scheme", in Journal of Cryptology 2, 1990, pp. 51-59.; 1990

Donald J. Wheeler, David S. Chambers, Understanding Statistical Process Control
Manufacturer: SPC Press, Inc. ISBN: 0945320132; 01 June, 1992

David J. Wheeler: A Bulk Data Encription Algorithm. Fast Software Encryption 1993: 127-134; 1993

David J. Wheeler, Roger M. Needham: TEA, a Tiny Encryption Algorithm. Fast Software Encryption 1994: 363-366; 1994

Michael Burrows, David J. Wheeler "A Block-sorting Lossless Data Compression Algorithm", Digital Systems Research Center Research Report 124, not published, 1994

David J. Wheeler and Roger M. Needham, TEA, a Tiny Encryption Algorithm, 1995

David J. Wheeler and Roger M. Needham TEA Extension, 1996, Computer Laboratory Cambridge University; 1996

Go BackTime Line Last Updated on August 9, 2006 For suggestions  please mail the editors 

Footnotes & References