Скачать книгу

computors’ – were being trained to calculate firing tables for artillery using mechanical desk calculators. With ordnance capable of firing along parabolic trajectories over a range of up to a mile, it was impossible for heavy gunners to take accurate aim by eye. The tables told the gunners how high to aim their weapons given a target at a certain range, calculated on the basis of the weight of the shell, its velocity on leaving the muzzle, and other variables such as the wind speed and direction, and the air temperature and density. A typical trajectory required 750 multiplications, and a typical firing table about 3,000 trajectories. Goldstine was desperate for an alternative to these human computers, whose work was time-consuming and vulnerable to error.

      He found what he was looking for in a proposal to build an ‘electronic computor’ (sic) containing 5,000 valves, put forward in 1942 by John Mauchly, a physicist trained for war-related work in electronics at the Moore School. The army refused to take the proposal seriously until Goldstine took up Mauchly’s cause in the spring of 1943 and, through careful diplomacy and a persuasive manner, won from his superiors funding for an even larger revised version. Mauchly was not a great salesman for his own ideas, but was one of very few people in the world at that time who grasped the potential of electronics in computing. Before the war he had worked on the design of a (non-electronic) machine to automate numerical methods of weather forecasting. Through giving a talk on this work he had met John Atanasoff, a professor at Iowa State College, who invited him to see his own prototype computer. It was an electronic adder – properly a calculator rather than a computer – with a modest 300 valves, which Atanasoff had built with his graduate student Clifford Berry between 1939 and 1942.

      Mauchly had spent five days discussing it, although he later denied that he had learned anything from Atanasoff. The work had received virtually no recognition at the time, and never advanced beyond a working prototype. But the priority of the little Atanasoff-Berry Computer (ABC) was established years later in a successful bid to deny patents on aspects of the ENIAC design to the Moore School team. The question ‘who invented the computer?’ still rages on internet sites and in a succession of publications, and probably does not have a clear answer. Credit for being the first to build a valve-based prototype calculating machine should probably be shared between Atanasoff and Berry, and Konrad Zuse and Helmut Schreyer, who built an electronic demonstration model at the Technical University in Berlin in 1938.

      Whatever it owed to his encounter with John Atanasoff, John Mauchly’s proposal exceeded anything previously seen in its scope and ambition. ENIAC, conceived by Mauchly but brought to life by teams of engineers working sixteen-hour days under the direction of the gifted Moore School engineer Presper Eckert, was a monster. As eventually completed in 1945, it was 2.5 metres high and nearly 50 metres long, its racks of valves, cables and other components arranged in a U-shape around the walls of a large room. It weighed over 30 tons, incorporated almost 18,000 valves, and cost the army $800,000. When it was working, ENIAC could perform 14 10-digit multiplications a second – 500 times faster than the best of the female ‘computors’ with their mechanical machines.

      Its reliability, however, was in inverse proportion to its size: the only certain thing about its performance was that it would break down at least once a day. Valves, like light bulbs, have a limited life, and losing just one out of the 18,000 could ruin a calculation. More serious shortcomings were built into its design. Its builders could have cut the number of valves by over a third if they had considered representing the data in the machine in binary code.

      Human calculators, having ten fingers, find it easiest to do arithmetic using decimal numbers. For computers, however, it makes much more sense to use the binary system. Binary code resembles Morse code in that it has only two symbols, usually written as o and 1. Any number can be converted into its unique binary equivalent – a string of os and 1S in which the value of each place is twice the value of its right-hand neighbour, rather than ten times as much as in the decimal system:

image1

      The advantage for computers of thinking in binary code is that their language consists of identical electrical pulses. At any point in a circuit, either there is a pulse, or there is not. On or off. 1 or 0. While a message written out in binary code might look extraordinarily cumbersome, it is in fact much quicker for a computer to work with instructions in this form than to incorporate some more complicated method of representing all the numbers and letters that human brains cope with quite happily.

      In ENIAC, Eckert and Mauchly represented numbers in their conventional decimal notation. They used ten valves to represent a single digit: the fifth valve in a row of ten indicated the number five, and so on. Using binary code, just five valves would have been enough to represent all the numbers up to 31. To be fair to the Moore School designers, the theory of information processing based on binary digits, or ‘bits’ for short, was still being developed by Claude Shannon at Bell Labs when they began work on ENIAC. It has since been fundamental to the design of all modern computers.

      Another major shortcoming of ENIAC was that it could not store programs. Mauchly had not taken the logical step that as programs consisted of information that could be represented digitally, they could be treated in the same way as data and stored in the computer itself. Each time ENIAC’s engineers wanted to run a new calculation they had to set up the program afresh by plugging wires into sockets, a process that could take a whole day.

      The machine’s own builders realised that by the time they had it working, it was already obsolete. It deserves credit, however, for being the first to demonstrate publicly the power of electronic computing. It did work for the purpose for which it had been designed, and the army went on using it until 1955. Meanwhile, the publicity it attracted stimulated others to develop new avenues in the history of computing that would lead directly to the computers of today.

      Among those who watched the building of ENIAC with interest was the Hungarian émigré mathematician John von Neumann. Von Neumann was by then an international star of mathematics, having established the mathematical foundations of quantum theory as well as developing the principles of game theory, which were to have a huge impact in economics, international relations, population biology and many other areas of modern experience. He was a founder member of the Institute for Advanced Study in Princeton, and had become an adviser to the army in 1940 when he joined the scientific advisory committee of its Ballistics Research Laboratory. Since 1943 he had also been attached to the Los Alamos atomic bomb project. At that time he was trying to model the explosion of the bomb mathematically and to predict the ensuing fireball, but had not been able to find any machine capable of crunching the numbers fast enough.

      According to Herman Goldstine’s widely circulated account, it was his own chance meeting with von Neumann that first brought ENIAC to the renowned mathematician’s attention. One day in 1944 Goldstine looked up while waiting on a station platform for a train from Aberdeen to Philadelphia and saw von Neumann just a few feet away. Conscious of his lowly academic status but never one to miss an opportunity, he introduced himself and they fell into conversation. When the topic turned to ENIAC and what it would be able to do, Goldstine remembered, ‘the whole atmosphere changed from one of relaxed good humor to one more like the oral examination for the doctor’s degree in mathematics’.

      A few months later von Neumann became a consultant to the Moore School team on the design of a successor machine that would avoid the serious shortcomings that had become apparent as ENIAC came into operation. Called the Electronic Discrete Variable Automatic Computer (EDVAC), it would handle data more economically by using binary rather than decimal digits and, most important of all, it would incorporate the means to store programs along with data.

      In June 1945 von Neumann summarised these discussions in a memo, ‘A First Draft of a Report on the EDVAC’, formalising the logical design of such a machine. The report described the principles of an automatic, digital machine, consisting of five basic components: a memory, which stores both program and data; a control unit, which interprets the program; an arithmetic unit, which adds and subtracts data as directed by the program; and input and output units, which read in the program and data and deliver the final results. Computers with this design – and that includes the vast majority of modern computers – have ever since

Скачать книгу