旼컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴커 � � � How Von Neumann Showed the Way � 읕컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴켸 Before there could be hardware or software, there had to be a vision of exactly how computers would work. A handful of brilliant mathmeticians, chief among them John Von Neumann, saw the future. Von Neumann had been following his own rules for years. He owned a photographic memory that held the complete texts of works of literature and one of the world's largest collections of off-color limericks. Yet he would phone home to ask his wife to help him remember an appointment. A strong military supporter, he was fond of nuclear-weapons tests. He died of cancer at the age of fifty-three. Through it all, he was one of the century's most creative and productive mathmeticians, lifting his intellectual sceptor across a host of technical fields. Mostly he worked with pencil and paper, but in the years after 1945, for the first time in his life, he set himself the task of managing the design and construction of a piece of equipment. This was the Institute for Advanced Study Computer, and it set the pattern for the subsequent computers we know today. What distinguished this IAS machine was programmability. It embodied Von Neumann's insistence that computers must not be built as glorified adding machines, with all their operations specified in advance. Rather, he declared, they should be built as general purpose logic machines, built to execute programs of wide variety. Such machines would be highly flexible, readily shifted from one task to another. They could react intellegently to the results of their calculations, could choose among alternatives, and could even play checkers or chess. This represented something unheard of: a machine with built-in intellegence, able to operate on internal instructions. Before, even the most complex mechanisms had always been controlled from the outside, as by setting dials or knobs. Von Neumann did not invent the computer, but waht he introduced was equally significant: computing by use of computer programs, the way we do it today. The roots of this invention lay not in electronics but in higher reaches of mathematics,in a problem that tantalized specialists in mathematical logic during this century's early decades: the challenge of establishing basic foundations for math. These would take the form of an explicit set of definitions and axioms, or fundemental statements, from which all known results might be derived. Everyone expected that such foundations could be constructed if people were only clever enough. David Hilbert of Gottingen University, widely regarded as the world's leading mathematician, summarized this viewpoint in a 1900 address: "Every mathematical problem can be solved. We are all convinced of that. After all, one of the things that attract us most when wee apply ourselves to a mathematical probelm is precisely that within us we always hear the call: here is the problem; search the solution; you can find it by pure thought, for in mathematics there is no ignorabimus [we will not know]." In fact, however, a powerful ignorabimus lay at the centerof the problem of mathematical foundations.The man who demonstrated this was Kurt Goedel, a logician at the University of Vienna. He was a smallish man with a thick pair of glasses; he appeared even smaller than he was because of his reluctance to eat. Psychological depressions and other illnesses dogged him throughout much of his life, made more serious at times by his distrust of doctors. In contrast with the gregarious and hearty Von Neumann, Goedel was solitary in his habits, but he did form a few close relationships. One of his lifelong marriage to Adele Nimbursky, a former cabaret dancer. Another was a warm friendship with Albert Einstein. Goedel introduced a notation whereby statements in mathematical logic were encoded as numbers. Every such statement could be expressed as an integer, usually a large one, and every integer corresponded to a statement in logic. This introduced a concept that would be key to the later advent of computer programming: that not only numerical data but also logic statements-and by extensions, programming instructions- could be expressed in a common notation. Further, Goedel's work showed that this notational commonalty could give results of the deepest significance in mathematics. Among the mathemeticians who soon took up the study of these matters was Alan Turing, of Cambridge University. Turing was a vigorous man, fond of cycling, and sometimes eccentric. Issued a gas mask, he wore it to prevent hay fever. Fearing that British currencey would be worthless in World War II, he withdrew his savings and purchased two ingot of silver, buried them in his yard--and then failed to draw a suitable treasure map that would enable him to find them! And when his bicycle developed the habit of havng its chain come loose, he refused to take it in for repairs. Instead he trained himself to estimate when this was about to happen so he could make timely fixes by himself. Turing was a twenty-five year old undergraduate when he made his major contribution to computer science. It came in a 1937 paper, "On Computable Numbers" in which he soecifically dealt with imaginary version of the computer. This idealised machine was to follow coded instructions, equivalent to computer programs. It was to deal with a long paper tape that would be marked off in squares, each square either black or white and thus representing on bit of information. On this tape, in response to the coded commands, the machine would execute a highly limited set of operations: reading, erasing, or marking a paticular square and moving the tape. Analyzing this idealized computer, Turing proved that it offered properties closely related to Goedel's concept of formal undecidability. What was important for computer science, however, was another realization: that with sufficiently legnthy coded instructions this machine would be able to carry out any computation that could be executed in a finite number of steps. Here, in its essential form, was the concept of a general-purpose programmable computer. The basic idea of a calculating machine was not new. The first crude adding machines dated to the seventeenth century. In the nineteenth century Charles Babbage, assisted by Lady Ada Lovelace, had struggled to invent an "analytical Engine" that was really a crude computer. What was new and pathbreaking fot Turing was that for the first time he gave a clear concept of waht a computer should be: a machine that carries out a few simple operations under the direction of a program that can be as intricate as one may wish. These developments were very interesting to John Von Neumann. As a student in Germany (he was born in Hungary in 1903), he had worked closely with Hilbert himself, plunging deeply into the search for mathematical foundations. He had shared Hilbert's belief that such foundations could in fact be constructed, had written a paper that contributed some mathematical bricks to the intellectual masonry-and was suprised and chagrined by Goedel's proofs. He had not thought that formal undecidability might exsist, and he came away with the feeling that Goedel had scooped him. Von Neumann had made his reputation during the 1920's, establishing himself as clearly one of the world's outstanding mathematicians. He was invited to Princeton in 1930 when he was twenty-six. "He was so young", says a collegue from around that time, "that most people who saw him in the halls mistook him for a graduate student." In 1936, Turing came to Princeton to do his graduate work. He was twenty-four. Von Neumann, who moved to the Institute for Advanced Study in 1933, was quite interested in Turing's work and offered him a position as his assistant after he recieved his doctrate, but Turing chose to return to Canbridge. Meanwhile, Von Neumann was doing much more that reading his colleagues papers. During the early 1940's he began to work on problems of fluid flow. These problems were widely regarded as nightmares, marked by tangles of impenetrable equations. To Von Neumann that meant they were interesting; understanding them could lead to such consequences as accurate weather prediction, and because such problems posed intractable difficulties, they were worthy of his attention. Then came the war and the Manhattan project. Von Neumann's expertise in fluid flow now took on the highest national importance. As the work at Los Alamos advanced, he became responsible for solving a problem essential to building the plutonium bomb. This was to understand the intracate physical processes by which a thick layer of high-explosive charges, surrounding a spherical core of plutonium, could detonate to produce an imploding shock wave and initiate the nuclear explosion. In the plutonium bomb, however, George Kistiakowsky, a colleague of Von Neumann's, stated that it would be esential to predict, with some accuracy, the behavior of the shock waves that would converge on the core. Even Von Neumann's brilliance was inadequate for this. His collaborator, Stanislaw Ulam insisted that it would be neccessary to face thier full complexity and calculate them, in an age when there were no computers, using methods that would later be programmed to run computers. Fortunately, the Los Alamos lab was due to recieve a shipment of IBM calculating machines.Stanley Frankel, another Los Alamos man, set up a lengthy sequence of steps that these machines could carry out, with Army enlistees running them. It amounted to a very slow computer with human beings rather than electrical devices as the active elements, but it worked. Von Neuman got the solutions he needed, and he proceeded to design the high-explosive charges for Fat Man, the bomb dropped on Nagasaki. Meanwhile, at the University of Pennsylvania, another effort as secret as the Manhattan Project was under way; the construction of the first electronic computer! This was ENIAC (Electronic Numerical Integrator and Computer), an Army-sponsored project intended for use in calculating the trajectories of atrillery shells. Is employment of vaccum tubes rather than people as active elements represented a decided advance, but while the potential value of such tubes for high-speed computing was widely appreciated, the tubes of the day were not particularly reliable. That did not when only a few were needed, as in radar and radio, but it would matter greatly in a computer, where a single failed tube could vitiate a lengthy calculation. The ENIAC project leaders, John W. Mauchly and J. Presper Eckert Jr., solved the reliability problem in a simple way. They were working with tubes whose manufacturers had guaranteed a service life of 2,500 hours. With 17,468 tubes in ENIAC, that meant one could be expected to fail, on the average, every eight minutes- and with major computations requiring weeks of operations, this was quite unacceptable. Eckert, however, simply "unloaded" the tubes, arranging them so that they would handle no more than 1/2 of their normal voltage and 1/4 of their rated current. This reduced the failure rate from one every 8 minutes to about one every 2 days, which was sufficient for practical operations. ENIAC was a large air conditioned room whose walls were covered with cabinets containinng electronic circuitry-three thousand cubit feet of it! It weighed thirty tons and drew 174 kilowatts of power! Its computational speed and capability would fail to match the hand-held calculator of the mid-70's, but even so, it was such an advance over all previous attempts at automatic computation as to stand in a class by itself. Its main memory (RAM) could only hold a thousand bits of information-about the eqivilent of three lines of text. And it was completely lacking in any arrangements for computer programming. You did not program ENIAC; rather, you set it up, like many other complex systems. You prepared for a particular problem by running patch cords between jacks and other plugs, with cabling up to eighty feet long! The task could take two days or longer. By the summer of 1944, however, Eckert, Mauchly, and their collegues were already beginning to think seriously about ENIAC's successor. This would have the name EDVAC (Electronic Discrete Variable Automatic Computer). Eckert had described a computer in which an "important feature" was that "operating instructions and function tables would be stored in exactly the same sort of memory device as that used for numbers." In October, 1944, at Goldstien's urging, the Army awarded a $105,600 contract for work on the EDVAC concept. By the summer of 1946, Eckert and Mauchly were seeking to bulid a stored-program computer along the lines of the "first draft". The computer was to be built in the boiler room of Fuld Hall, at princeton University. As Bigelow describes the work, "Von Neumann would put half-finished ideas on the blackboard and Goldstien would take them back down and digest them and make them something for the machine. When completed-in a building of its own, well across the IAS campus- the computer only had 2300 vacumm tubes, considerably fewer than ENIAC's almost 18,000. It was fully automatic, digital, and general purpose, but like other programmable computers of its generation, it was built years in advance of programming languages such as Fortran or Pascal. Is commands, instead were written entirely in machine language, long strings of ones and zeros. An expression such as "A+B", for instance, might be rendered as something like 011010010010000 10101111101010010 10101010101 1001101011; a significant program would feature many pages written in such notation. Von Neumann was so clever technically that he had no problem with this notation and could imagine anyone else working with a computer, who couldn't program in machine code. While others were using crude digital instructions for their machines, Von Neumann and his team were developing instructions that would last, with modification, throughout the computer age. The machine recieved its baptism with the nation again at war, in Korea, and with the hydrogen bomb now a matter of the highest priority. Von Neumann, who had maintained his leadership in nuclear-weapons work, arranged to run a problem dealing with H-bomb physics. It would be the most extensive computation ever carried out. "It was computed in the summer of 1950," says Bigelow, "...while the machine had clip leads on it. We had engineers there to keep it running and it ran for six days, day and night, with very few errors. It did a nice job." The way was open, then, for the computer to sweep all before it. There would be substantial technical advances: programming languages beginning in the mid-1950's, then transisitors, integrated circuts, and microprocessors. But these would merely offer better ways to implement the basic concept-the stored program computer-that Von Neumann had described in his 1945 "First Draft". These computers, rather than plaques or busts cast in bronze, are among the true monuments to the cheerful and highly creative man who was John Von Neumann. T.A. Heppenheimer (Times Books, 1988) Scribed by Scott Fleming