Alan Turing and Tony Brooker, Programmers’ Handbook for the Ferranti Mark I computer

Alan Turing and Tony Brooker, Programmers’ Handbook for the Ferranti Mark I computer

Turing, Alan M. (1912 – 1954) and Ralph A. Brooker (1925 – 2019). Programmers’ Handbook for the Manchester Electronic Computer Mark II. [Manchester: University of Manchester], 1953. Third edition, revised. 196 p. 33 cm. Foolscap with printed card wrappers, ring-bound through three hole-punched holes. Sheets of errata and addenda dated as late as March 1955 have been inserted. Some marginal annotations by a previous owner, Peter David Robinson, who has also laid in several sheets of calculations. An earlier ownership name (possibly J. W. Pullan) has been crossed out. Light wear to the covers. Housed in a custom clamshell case.


The third and final edition of the world’s first programming manual for a stored-program computer, the Ferranti Mark I, which Alan Turing preferred to call the Manchester Mark II. Drafted originally by Turing in 1951, this iteration of the Programmers' Handbook was edited by one of his deputies at the Manchester University Computing Laboratory, Ralph A. “Tony” Brooker. Grace Hopper and Howard Aiken’s instructions for operating the Harvard Mark I computer in 1946 constituted some of the earliest published examples of digital computer programs, but these were embedded in a 561-page technical treatise on the mechanics of the machine. The present text is the first publication that can properly be called a manual, prepared for programmers of the first computer to be sold commercially.


turing-and-crew.jpg

Alan Turing (right) and colleagues at the console of the Ferranti Mark I computer, 1951


The Programmers’ Handbook was also one of Turing’s most sustained pieces of writing, comprising 196 pages of text. The first edition included an section on “programming principles” for novices, which broke the processes down to four overarching steps:


(i) Make a plan

(ii) Break the problem down;

(iii) Do the programming of the new subroutines; and

(iv) Programme the main routine


Of course, as Turing remarked with a certain glib humor, the devil is in the details:


The sub-routines of any routine may themselves have sub-routines. This is like the case of the bigger and lesser fleas. I am not sure of the exact meaning the poet attached to the phrase “and so ad infinitum,” but am inclined to think that he meant there was no limit that one could assign to the length of a parasitic chain of fleas, rather than that he believed in infinitely long chains. This is certainly the case with sub-routines. One always eventually comes down to a routine without sub-routines.


Although written ostensibly for newbies, the first edition of the Handbook was not for the faint-hearted. A section titled “Programming hints” offered the following time-saving measure:


It is often sufficient to specify tabular numbers to twenty digits only. One might for instance wish to have values of 238 log n for n from 1 to 32 with an error of not more than 220. This can be achieved by putting e.g. [/¼ + n]s = {log n}1−19. Then [/¼ + n − 1]+ = 238 log n + Θ(220).


turing-crt.jpg

A cathode ray tube (CRT) display from the Ferranti Mark I, with the lights representing data in binary format with 1s (bright) and 0s (dim).


As Turing’s biographer Andrew Hodges notes, “the Handbook brought out many of the problems of communication that he faced at Manchester. . . . It was not that Alan despised doing routine, detailed work within a symbolism such as the Manchester machine demanded: but as in Computable Numbers and the ACE report he tended to veer from the abstract to the detailed in a way that made sense to him, but not to others.” To program the machine, engineers had to write in binary code, which had to be written backward, from right to left, because this was the way the hardware read commands. Turing’s manual was intended for use by a limited group of trained engineers who understood the hardware; it was not geared for general users.

            The second and third editions of the Handbook evince the editorial hand of Tony Brooker, who was brought in to make the manual more intelligible to its users. He solicited help from other staff at Manchester, including Alick Glennie (1925 – 2003), the developer of autocode, the first computer compiler, and Christopher Strachey (1916 – 1975), who is credited with using the Ferranti Mark I to play the first computer-generated music. Both of whom are acknowledged in the preface to this edition. Omitted is Cicely Popplewell (1920 – 1995), who worked closely with Turing to develop the language of the Mark I, and who wrote sections of the second edition.

            This third edition eliminates much of Turing's archness and mathematical shorthand to present users with a much more practical approach. Instead of the four broad steps, Brooker introduces what we believe to be one of the first uses of a flowchart in computing:


As with programming a whole problem a plan is needed for a routine. A convenient aid in this is a detailed flow diagram. The operations appearing as blocks may soon be replaced by actual instructions.


img-8166.jpg

A model flowchart from the third edition of the Handbook.


There is also an extensive discussion of debugging computer algorithms. The condensed mathematics of the first edition are replaced with examples to demystify the processes of programming, making this a much more user-friendly edition than the first. Brooker's approach would serve as a model for other programming manuals for many years to come.

This particular iteration of the Handbook thus may be regarded as the vital moment of transition from Turing’s mathematical abstractions to the intuitive processes that allow anyone to browse the internet or use apps on a smartphone.

            Brooker would later build on his work with Glennie and Turing to develop a new autocode for Ferranti computers that has been identified as the first commercially available “high-level” language, languages that provide increasingly simple ways of giving commands to computers. Whereas the Manchester computer was notoriously difficult to program, requiring two weeks of intensive training, Brooker’s simplified autocode system was fully described on two sides of foolscap and took just half a day to learn. Working with Ferranti, Brooker assembled a team that wrote test programs using autocode. One member was Mary Lee Woods, whose son, Tim Berners-Lee, would go on to invent the World Wide Web.


brooker.jpg

Brooker in the 1950s (top right), and in the 1970s with colleagues at the University of Essex


Although it was the world’s first commercially available general purpose digital computer, the Ferranti Mark I did not meet sales expectations. Only two units were built – one for the University of Manchester, and another that was ordered by the Atomic Energy Research Established but ended up at the University of Toronto. This accounts for the extraordinary rarity of the Programmers’ Handbook. Historian Simon Lavington suggests that only “several tens of these manuals were printed,” and few have survived. Only two other copies of the third edition are recorded, one at the John Rylands library at the University of Manchester, the other at the Ingenium Library and Archives, Ottawa. Unlike the first and second editions of the Handbook, which may be consulted online at the Turing Archive for the History of Computing, the Turing Digital Archive at Cambridge, and elsewhere, this third edition has not been digitized.


Provenance: From the estate of Peter David Robinson (1933 – 2003), the author of Fourier and Laplace Transforms (1968) and The oldest and the youngest science (1972). Robinson started his career at the University of York, and served as Professor at the recently formed University of Bradford from 1970 to 1986, when he took early retirement. He later held positions as the Sultan Qaboos Unversity of Oman and the University of Bristol. An earlier ownership signature has been crossed out. We we think this is likely J. W. Pullan, Operations and Data Supervisor, Computing Laboratory, University of Bradford.


Selected References

  • Campbell-Kelly, Martin. “Programming the Mark I: Early Programming Activity at the University of Manchester.” IEEE Annals of the History of Computing 2 (1980): 130-168
  • Cooper, S. Barry and Jan Van Leeuwen, Alan Turing: His Work and Impact (Waltham: Elsevier, 2013)
  • Croarken, Mary. “The beginnings of the Manchester computer phenomenon: people and influences.” IEEE Annals of the History of Computing 15 (1993): 9-16.
  • Hodges, Andrew. Alan Turing: the enigma (New York: Simon & Schuster, 1983)
  • Lavington, Simon. A history of Manchester computers, 2nd ed. London: British Computer Society, 1998.
  • Rojas, Raúl and Ulf Hashagen. The first computers: history and architectures (Cambridge: MIT Press, 2000)
  • Lean, Thomas. Interview with Tony Brooker, part 9 (audio recording). Oral History of British Science, British Library, 2010. Online at: https://sounds.bl.uk/Oral-history/Science/021M-C1379X0009XX-0009V0
  • Swinton, Jonathan. Alan Turing's Manchester (Manchester: Infang Publishing, 2019)
  • Turing, Alan M. “Local programming methods and conventions.” Manchester University Computer: Inaugural Conference (Manchester, 1951), p. 12
  • Williams, Frederic Calland and Tom Kilburn. “Electronic Digital Computers.” Nature 162 (1948): 487-487

Note: The laboratory photos above are from the Ferranti Mark I gallery at the University of Manchester.

Product tabs

    $0
    $22,500
    Earn 0Reward points

    You're enquiring about:

    Alan Turing and Tony Brooker, Programmers’ Handbook for the Ferranti Mark I computer


    Recommend this product

    Alan Turing and Tony Brooker, Programmers’ Handbook for the Ferranti Mark I computer