Abstract and Keywords
This introductory chapter discusses the development of Alan Turing's ‘universal computing machine’, better known as the universal Turing Machine. The earliest large-scale electronic digital computers, the British Colossus (1943) and American ENIAC (1945), did not store programmes in memory. In 1936, Turing came up with an idea for a machine with limitless memory, in which both data and instructions were to be stored. By 1945, groups in Britain and the US began developing hardware for a universal Turing machine. Turing headed a group at the National Physical Laboratory in London that designed the Automatic Computing Engine (ACE), the first relatively complete specification of an electronic stored-programme digital computer.
As anyone who can operate a personal computer knows, the way to make the machine perform some desired task is to open the appropriate program stored in the computer's memory. Life was not always so simple. The earliest large-scale electronic digital computers, the British Colossus (1943) and the American ENIAC (1945), did not store programs in memory. To set up these computers for a fresh task, it was necessary to modify some of the machine's wiring, re-routing cables by hand and setting switches. The basic principle of the modern computer—the idea of controlling the machine's operations by means of a program of coded instructions stored in the computer's memory—was conceived by Alan Turing. His abstract ‘universal computing machine’ of 1936, soon known simply as the universal Turing machine, consists of a limitless memory, in which both data and instructions are stored, and a scanner that moves back and forth through the memory, symbol by symbol, reading what it finds and writing further symbols.1 By inserting different programs into the memory, the machine is made to carry out different computations. It was a fabulous idea—a single machine of fixed structure that, by making use of coded instructions stored in memory, could change itself, chameleon-like, from a machine dedicated to one task into a machine dedicated to a quite different one. Turing showed that his universal machine is able to accomplish any task that can be carried out by means of a rote method (hence the characterization ‘universal’). Nowadays, when so many people possess a physical realization of the universal Turing machine, Turing's idea of a one-stop-shop computing machine might seem as obvious as the wheel. But in 1936, when engineers thought in terms of building different machines for different purposes, Turing's concept was revolutionary.
By the end of 1945, thanks to wartime developments in digital electronics, groups in Britain and in the United States had embarked on creating a universal Turing machine in hardware. Turing headed a group situated at (p.2) the National Physical Laboratory (NPL) in Teddington, London. His technical report ‘Proposed Electronic Calculator’, dating from the end of 1945 and containing his design for the Automatic Computing Engine (ACE), was the first relatively complete specification of an electronic stored-program digital computer. Turing saw that speed and memory were the keys to computing (in the words of his assistant, Jim Wilkinson, Turing ‘was obsessed with the idea of speed on the machine’2). Turing's design for the ACE had much in common with today's RISC (Reduced Instruction Set Computer) architectures and called for a high-speed memory of roughly the same capacity as an early Apple Macintosh computer (enormous by the standards of his day).
In the United States the Hungarian American mathematician John von Neumann shared Turing's dream of building an electronic universal stored-program computing machine. Von Neumann had learned of the universal Turing machine before the war—he and Turing came to know each other during 1936–8, when both were at Princeton University. Like Turing, von Neumann became aware of the potential of high speed digital electronics as a result of wartime work. Von Neumann's ‘First Draft of a Report on the EDVAC’, completed in the spring of 1945, also set out a design for an electronic stored-program digital computer (‘EDVAC’ stood for ‘Electronic Discrete Variable Computer’). Von Neumann's report, to which Turing referred in ‘Proposed Electronic Calculator’, was more abstract than Turing's, saying little about programming or electronics. Harry Huskey, the electronic engineer who subsequently drew up the first detailed hardware designs for the EDVAC, said that the information in von Neumann's report was of no help to him in this.3 Turing, in contrast, supplied detailed circuit designs, full specifications of hardware units, specimen programs in machine code, and even an estimate of the cost of building the ACE.
Turing's ACE and the EDVAC differed fundamentally in design. The ACE was a ‘low level’ machine (a point taken up in the chapter ‘Computer Architecture and the ACE Computers’)—programs were made up entirely of instructions like ‘Transfer the contents of Temporary Store 15 to Temporary Store 16’. The EDVAC had (what is now called) a central processing unit or CPU, whereas in the ACE the different Temporary Stores and other memory locations had specific logical or numerical functions associated with them. For example, if two numbers were transferred to a certain destination in memory their sum would be formed there, ready to be transferred elsewhere by a subsequent instruction. Instead of writing mathematically (p.3) significant instructions such as
the programmer composed a series of low-level transfer instructions producing that effect. A related difference was that, in Turing's design, complex behaviour was to be achieved by complex programming rather than by complex equipment: his philosophy was to dispense with additional hardware (such as a multiplier, divider, and hardware for floating-point arithmetic) in favour of software, and he spoke disparagingly of ‘the American tradition of solving one's difficulties by means of much equipment rather than thought’.4
Multiply x by y and store the result in z,
In order to increase the speed of a program's execution, Turing proposed that instructions be stored, not consecutively, but at carefully chosen positions in memory, with each instruction containing a reference to the position of the next. Also with a view to speed, he included a small fast-access memory for the temporary storage of whichever numbers were used most frequently at a given stage of a computation. According to Wilkinson in 1955, Turing ‘was the first to realise that it was possible to overcome access time difficulties with … mercury lines … or drum stores by providing a comparatively small amount of fast access store. Many of the commercial machines in the USA and … in this country make great use of this principle.’5
The delays mentioned by Davies in the Foreword (and described more fully in the chapter ‘The Origins and Development of the ACE Project’) meant that it was several years after the completion of ‘Proposed Electronic Calculator’ before any significant progress was made on the physical construction of the ACE. While waiting for the hardware to be built, Turing and his group pioneered the science of computer programming, writing a library of sophisticated mathematical programs for the planned machine. The result of these delays, which were not of Turing's making, was that the NPL lost the race to build the world's first stored-program electronic digital computer—an honour that went to the University of Manchester, where the ‘Manchester Baby’ ran its first program on 21 June 1948. As its name implies, the Baby was a very small computer, and the news that it had run what was only a tiny program—just 17 instructions long—for a mathematically trivial task was ‘greeted with hilarity’ by Turing's group.6
The Manchester computer project was the brainchild of Turing's friend and colleague Max Newman, whose section at Britain's wartime codebreaking headquarters, Bletchley Park, had contained 10 Colossus computers working (p.4) around the clock to break German codes. Newman, like von Neumann in the United States, was profoundly influenced by Turing's pre-war conception of a universal computing machine. Frustrated by the delays at the NPL, and eager to get his hands at last on a stored-program computer, Turing accepted his friend's offer of a job and left London for Manchester.
Had Turing's ACE been built as planned, it would have been in a different league from the other early computers, but his colleagues at the NPL thought the engineering work too ambitious and a considerably smaller machine was built. Known as the Pilot Model ACE, this machine ran its first program on 10 May 1950. With a clock speed of 1 MHz it was for some time the fastest computer in the world. Despite having only a few per cent of the memory capacity that Turing had specified, the Pilot ACE in other respects adhered closely to what Turing called ‘Version V’ of his ACE design.
The Pilot ACE was preceded by several other electronic stored-program computers. The EDSAC, built by Maurice Wilkes at the University of Cambridge Mathematical Laboratory, was the second to run, in May 1949. Later in 1949 came the BINAC, built by the creators of the ENIAC, Presper Eckert and John Mauchly, at their Electronic Control Company, Philadelphia (opinions differ as to whether the BINAC ever actually worked, however), the CSIR Mark 1, built by Trevor Pearcey at the Commonwealth Scientific and Industrial Research Organisation Division of Radiophysics, Sydney, Australia, and Whirlwind I, built by Jay Forrester at the Digital Computer Laboratory, Massachusetts Institute of Technology. The SEAC, built by Samuel Alexander and Ralph Slutz at the US Bureau of Standards Eastern Division, Washington DC, first ran in April 1950. The EDVAC itself was not completed until 1952 but most of the computers just mentioned were influenced by the EDVAC design.
The English Electric Company built a production version of the Pilot Model ACE called the ‘DEUCE’ (Digital Electronic Universal Computing Engine). The first DEUCE was delivered in March 1955 (to the NPL). The DEUCE was a huge success and more than 30 were sold—confounding the suggestion, made in 1946 by the Director of the NPL, Sir Charles Darwin, that ‘it is very possible that … one machine would suffice to solve all the problems that are demanded of it from the whole country’.7 The last DEUCE went out of service in about 1970.
The basic principles of Turing's ACE design were used in the G15 computer, built and marketed by the Detroit-based Bendix Corporation. The G15 was designed by Huskey, who spent 1947 at the NPL, working in the ACE Section.
(p.5) The G15 was arguably the first personal computer. By following Turing's philosophy of minimizing hardware in favour of software, Huskey was able to make the G15 small enough (it was the size of a large domestic refrigerator) and cheap enough to be marketed as a single-user computer. Yet thanks to the ACE-like design, the G15 was as fast as computers many times its size. The first G15 ran in 1954.8 Over 400 were sold worldwide and the G15 remained in use until about 1970.
Other derivatives of Turing's ACE design include the MOSAIC (Ministry of Supply Automatic Integrator and Computer), which played a role in Britain's air defences during the Cold War period, the EMI Business Machine, a relatively slow electronic computer with a large memory, designed for the shallow processing of large quantities of data that is typically demanded by business applications, the low-cost transistorized Packard-Bell PB250, and the ‘Big ACE’, constructed at the NPL and fully operational in 1960.9
This book tells the story of the ACE computers. Much of it is in the words of the pioneers who designed or programmed these machines: Clayden, Davies, Hayes, Huskey, Norton, Vowels, Vickers, Wilkinson, Woodger, and, of course, Alan Turing himself. Wilkes compares the electronic techniques that he used in the EDSAC with those adopted in the Pilot ACE. Chapters by Magnello, Croarken, and Copeland explain how Britain's first attempt to build an electronic stored-program computer came to take place at the NPL and describe the ups and downs of the ACE project. Chapters by Copeland and Proudfoot, Campbell-Kelly, Numerico, and Doran assess the ACE computers, evaluate their impact, and investigate the claim—based upon the influence of his pre-war work—that Turing is the father of the modern computer. Turing's work on Artificial Intelligence and Artificial Life is also described.10
(1.) Turing, A. M. (1936) ‘On computable numbers, with an application to the Entscheidungsproblem’, Proceedings of the London Mathematical Society, Series 2, 42 (1936–37), 230–65.
(2.) Wilkinson in interview with Christopher Evans in 1976 (The Pioneers of Computing: An Oral History of Computing. London: Science Museum).
(3.) Letter from Huskey to Copeland (4 February 2002).
(4.) Memo from Turing to Womersley, c. December 1946 (in the Woodger Papers, National Museum of Science and Industry, Kensington, London (catalogue reference M15/77); a digital facsimile is in the Turing Archive for the History of Computing <www.AlanTuring.net/turing_womersley_cdec46>).
(5.) Letter from Wilkinson to Newman, 10 June 1955 (among the Turing Papers in the Modern Archive Centre, King's College, Cambridge (catalogue reference A.7)).
(6.) Woodger in interview with Copeland (June 1998).
(7.) Sir Charles Darwin, ‘Automatic Computing Engine (ACE)’, 17 April 1946 (in the British Public Record Office (PRO), Kew, Richmond, Surrey (document reference DSIR 10/385); a digital facsimile is in The Turing Archive for the History of Computing <www.AlanTuring.net/darwin_ace>). A leading British expert on automatic computation, Douglas Hartree, appears to have thought that on the contrary a total of three digital computers would probably be adequate for the country's computing needs (Hartree's opinion is reported by Vivian Bowden (1975) in ‘The 25th anniversary of the stored program computer’, The Radio and Electronic Engineer, 45, 326.
(8.) Letter from Huskey to Copeland (20 December 2001).
(9.) Coombs, A. W. M. (1954) ‘MOSAIC’, in Automatic Digital Computation: Proceedings of a Symposium Held at the National Physical Laboratory. London: Her Majesty's Stationery Office; Froggatt, R. J. (1957) ‘Logical design of a computer for business use’, Journal of the British Institution of Radio Engineers, 17, 681–96; Bell, C. G. and Newell, A. (1971) Computer Structures: Readings and Examples. New York: McGraw-Hill, pp. 44, 74; Yates, D. M. (1997) Turing's Legacy: A History of Computing at the National Physical Laboratory 1945–1995. London: Science Museum.
(10.) This book grew out of the ACE 2000 Conference, a joint meeting of the British Society for the History of Science and the Computer Conservation Society, organized by Copeland in order to mark the 50th Anniversary of the Pilot Model ACE. ACE 2000 was held on 18–19 May 2000 at the London Science Museum and the National Physical Laboratory. A total of 103 people attended and 18 papers were presented. Details of the conference, including the programme and a list of the attendees, is at <www.AlanTuring.net/ace2000>. Thirteen chapters of this volume are derived from papers presented at ACE 2000.