There are two sizes of electric charge or quantity of electrons; we can call these 1 and 0. In about a millionth of a second, we can put either size of charge on one of the spots of the screen. With other circuits we can keep it there as long as we want, if the power does not flicker off. We can “remember” perhaps 2 or 3 thousand units of information in one of these electronic tubes. We can read, write, or erase any unit of information in a few millionths of a second.
Neither the mercury tank nor the electrostatic storage tube had, by the end of 1947, been put into a working mechanical brain. But there is good reason to believe that they will be successful devices and will open up a new era of speed in storing and referring to information. In fact, several laboratories are developing electronic calculating circuits using these devices which will perform up to 100,000 additions a second or 10,000 multiplications a second. Our minds certainly stagger at the thought of such speeds.
NEW OPERATIONS
Many kinds of combining operations have already been built into one or more mechanical brains. The operations may be arithmetical: addition, subtraction, multiplication, division, looking up numbers in tables, etc. Or the operations may be logical: comparing, selecting, checking, etc. Additional logical operations will be built into some of the mechanical brains now being constructed: sorting, collating, matching, merging, etc.
NEW IDEAS IN PROGRAMMING
Programming—the way to give instructions to machines—is also being studied in the laboratories. Several new ideas of importance have developed as a result.
One idea is that the machine should be able to store its instructions or program or routine in its memory in just the same physical ways as it stores numbers. There is basically no reason why numbers only should be stored in some registers, and instructions only stored in other registers.
Another idea is that the machine should have in its permanent memory any subroutine it may need. For example, a subroutine should always be available in the machine for finding square root. At any time when a square root was needed, we would only have to call on the machine for the subroutine of square root. The machine would then consult the right part of its memory and carry out the subroutine for square root.
A third idea, and one of the most interesting, is that the machine should be able to compute its own instructions. For example, consider a program for finding the product of two matrices ([see Supplement 2]), each of 100 terms in an array of 10 columns and 10 rows, resulting in a new matrix of 100 terms. The whole program can be made to consist of about 50 orders. Only one of them is “multiply,” and only one of them is “add”; the other orders consist of how to choose expressions to be multiplied or added, etc.
Such problems as these are often fascinating to mathematicians, who love to play with the intricate ideas needed.