Early Programming Activity at the University of Cambridge (Mar 1978)
Total Page:16
File Type:pdf, Size:1020Kb
EARLY PROGRAMMING ACTIVITY AT THE UNIVERSITY OF CAMBRIDGE (FIRST DRAFT) M. Campbell-Kelly March, 1978 Department of Maths.and Computer Studies Sundetland Polytechnic England CMLEO/DC/RC/197803 David Caminer Papers LEO Computers Society Archive, Centre for Computing History, Cambridge www.computinghistory.org.uk EARLY PROGRAMMING ACTIVITY AT THE UNIVERSITY OF CAMBRIDGE 1. INTRODUCTION 1.1 The EDSAC 1.2 People 1. 3 Sources. 2. DEVELOPMENT OF PROGRAMMING TECHNIQUES 2.1 The EDSAC order code and numbers 2.2 The initial orders - first form 2.3 The co-ordinating orders 2.4 The initial orders - second form 2.5 Sub-routines 2.6 The sub-routine library. 3. A TUTORIAL ON ED SAC PROGRAMMING 3.1 The TPK algorithm 3.2 The TPK algorithm for EDSAC 3.3 Punching and running 3.4 Getting programmes right (part one). 4. FURTHER DEVELOPMENT OF PROGRAMMING TECHNIQUES 4 .1 Getting programmes right (part two) 4.2 Sub-routine assembly, floating addresses and synthetic orders 4.3 Interpretive schemes. 5. CONCLUSIONS Acknowledgements (omitted) References Figures CMLEO/DC/RC/197803 David Caminer Papers LEO Computers Society Archive, -1- Centre for Computing History, Cambridge www.computinghistory.org.uk 1. INTRODUCTION In the spring of 1949 the first two practical stored program computers came into operation : the EDSAC at Cambridge and MADM at Manchester University. The approach to the problem of programming differed considerably at the two centres. The subject of this paper is early programning activity at Cambridge; an account of progranming activity at Manchester will be the subject of a future paper. From the outset, M.V. Wilkes at Cambridge saw that the only acceptable way to write programs was in a form using mnemonic codes and decimal addresses which could easily be used by the human programmer. On the other hand A.M. Turing at Manchester saw no need to make such concessions and forced MADM progra.mners to write each computer instruction as a sequence of four teleprinter characters in base-32-backwards. In the early fifties John W. Carr III aptly characterised the prevailing attitudes to program:ning by dividing programmers into two groups : first the 'primitives' who believed programs should' be written in octal or hexadecimal or even base-32-backwards; second were the 'space cadets' who believed in human oriented codes and letting the machine do the translating. (Wilkes, 1967}. There is no question that in 1949 the Manchester school were the primitives and the Cambridge group the space cadets. CMLEO/DC/RC/197803 David Caminer Papers -2- LEO Computers Society Archive, Centre for Computing History, Cambridge www.computinghistory.org.uk 1, I The EDSAC The background to EDSAC has been entertainingly described in Wilkes 75, Mutch 69 and elsewhere, so that only a brief summary will be given here. EDSAC was patterned very directly on the EDVAC first described in von Neumann's 'First Draft of a Report on the EDVAC', June 1945. In July and August of 1946 an influential series of lectures on EDVAC were held at the Moore School of Electrical Engineering in the University of Pennsylvania, the latter part of which was attended by M,V. Wilkes, Director of the University Mathematical Laboratory (now Computer Laboratory) at Cambridge. Wilkes began work on the design of EDSAC in late 1946 and construction began in early 1947. EDSAC performed its first fully automatic computation on the 6th May 1949, although it was not capable of serious work until sometime later. EDSAC made its debut to the outside world at the Cambridge computer conference held in June 1949, EDSAC provided a regular computing service from early 1950 and was remarkable for the extent to which it was used by other departments in the University from a very early date. By the mid fifties literally dozens of papers had been published based on results obtained using EDSAC, some of them authored by Cambridge's leading men of science. EDSAC prOvided a regular computing service, apart from occasional periods of shut down for re-engineering, until it was dismantled in July 1958. CMLEO/DC/RC/197803 David Caminer Papers -3- LEO Computers Society Archive, Centre for Computing History, Cambridge www.computinghistory.org.uk 1.2 People The most eminent of the people associated with EDSAC was D-.R. Hartree, Plummer Professor of Mathematical Physics. However, his role was mainly one of encouragement and lending his prestige to the project. The driving force behind EDSAC, and its principal designer, was M. V. Wilkes. Prior to the outbreak of war, Wilkes had been involved with the differential analyser in the University Mathematical Laboratory and his war years were spent working on radar and operational research. Thus, on his return to Cambridge in 1945, Wilkes was well versed in the twin disciplines of mathematics and electronics. Wilkes built up a talented team of people to work under his direction; indeed, a list of the names of the people who began their early careers with EDSAC would account for a sizeable proportion of the top level of the British academic h~ rarchy in computer science. A list of the people associated with the early programming activity at Cambridge appears in the preface of Wilkes, Wheeler and Gill, 1951. Unfortunately it is not possible to single out everyone's individual contribution at this distance in time, although wherever possible this will be done. Unquestionably though, apart from Wilkes, the two leading spirits in the programning activity were D.J. Wheeler and S. Gill. D.J. Wheeler became a research student under the supervision of Wilkes in October 1948. Wheeler did brilliant work and was responsible for the input routine on EDSAC, developing the nucleus of the sub-routine library and much besides. He left Cambridge in 1951 to become Visiting Assistant Professor at the University of Illinois for a period of two years, subsequently returning to spend the remainder of his career to date at Cambridge. CMLEO/DC/RC/197803 David Caminer Papers -4- LEO Computers Society Archive, Centre for Computing History, Cambridge www.computinghistory.org.uk S. Gill became a research student under Wilkes in October 1949, coming from the National Physical Laboratory where he had worked under Turing. Gill was responsible for developing checking (trace) subroutines, an interpretive floating point scheme and made important contributions to the subroutine library. Gill left Cambridge in 1954 to follow Wheeler as Visiting Assistant Professor at the University of Illinois, and did not subsequently return to Cambridge. An early contributor to 'the programming effort was R.A. Brooker who originally joined the University Mathematical Laboratory to work on the differential analyser in October 1949, but transferred his interest to EDSAC early in 1950 with the encouragement of Wilkes. Brooker' s most important contribution was an impressive interpretive floating point scheme developed in collaboration with Wheeler. Brooker left Cambridge in Sept 1951 to join Manchester University. J.M. Bennett, an engineering research student under Wilkes, did early work on interpretive sub-routines. K.N. Dodd and A. E. Glennie were seconded from the Armaments Research Establishment from December 1949 for a period of several months and made substantial contributions to the early development of the sub-routine library. Other names mentioned in the preface of Wilkes, Wheeler and Gill were : B. Noble, J.P. Stanley, B,H. Worsley, L.A.G. Dresel, E.E.C. McKee and C.M. Munford. Perhaps to this list we should add the names of the slightly later contributors : A.S. Douglas, B. Hazelgrove and P. Naur. Another important figure was E.N. Mutch who was little concerned with progrannning directly, but was responsible for documentation of the sub-routine library, the preparation of programming bulletins and th~ day to day operation of EDSAC. Mutch' s careful documentation has been one of the most useful sources of information in preparing this account. CMLEO/DC/RC/197803 David Caminer Papers -5- LEO Computers Society Archive, Centre for Computing History, Cambridge www.computinghistory.org.uk 1.3 ~ In addition to the open literature (see references) a number of unpublished or little known sources have been used in preparing this paper. Probably the earliest extant document on EDSAC is a report produced in May 1948 (UML, 1948). This report gives the logical design of EDSAC as it was seen at that time, and is somewhat different in detail to the machine which was eventually constructed. The report was not circulated outside the laboratory. An important e•rly publication is the Proceedings of the first European computer conference held at Cambridge in June 1949 (UML, 1949). These proceedings give an interesting glimpse of the period imnediately after the construction of EDSAC but before the programming techniques had been finalised. This publication has been difficult to obtain but is presently being reprinted by the Computer Laboratory at Cambridge. The earliest systematic account of the progranming techniques developed at Cambridge is a spirit duplicated "Report on the preparation of programmes for the EDSAC and the use of the library of sub-routines" dated September 1950 (UML, 1950). The report had a limited private circulation outside Cambridge. In due course Wilkes arranged with Addison-Wesley to publish the report in book form. The book, 'The Preparation of Programmes for an Electronic Digital Computer', (Wilkes, Wheeler and Gill, 1951) as far as is known was the first text book on programming. The book was essentially the same as the September 1950 report with the addition of a preface (dated March 1951) and a foreword by Hartree. The book was very influential and did much to spread the gospel of symbolic coding and the sub-routine library as the basis of programming.