208 | 20 BABy
1948 letter to Nature with the instructions in Good’s May 1947 set.) Kilburn decided that sub-
traction should be Baby’s only atomic arithmetical operation, making Good’s first two instruc-
tions unnecessary. Williams later explained why addition was not needed:^69
The facilities we decided to provide were the absolute minimum . . . . [Y]ou can do addition by
means of subtraction, because you can subtract something from nothing and get its negative,
and then subtract its negative from what you want to add it to, and you get the sum . . . So we
had the one basic arithmetic operation, subtraction.
The two shift instructions l and r were logically redundant, and could be dispensed with in
a minimal machine: as Good noted,^70 the left shift is just multiplication by two, and the right
shift is division by two. Good’s instructions A → R, R → A, and x → R were also unnecessary, since
there was no arithmetic register R in Baby.
So Kilburn’s reduced instruction set contained Good’s instructions numbered 3, 4, 7, and 11.
There was also a modified form of Good’s instruction 12—namely, skip the next instruction in
the store if the number in the accumulator is less than zero—and additionally a sixth instruc-
tion, stop the machine. Now that Kilburn had an instruction set, he knew what he and Williams
needed to build—as he said to me, ‘You can’t start building until you have got an instruction
code’.^71 The tiny centralized computer they built contained three Williams tubes, forming the
store, accumulator, and control that were presupposed by Good’s instructions. Baby performed
calculations by transferring numbers between the store and the accumulator, and as Table 20.2
shows,^72 Baby’s initial instruction set consisted exactly of the five instructions that Kilburn had
derived from Good’s twelve, plus the additional ‘stop’ instruction.^73
Good did not, it seems, mention to Kilburn that he had distilled his twelve instructions from
a 1946 design paper by von Neumann, Burks, and Goldstine.^74 Like Newman, Good had stud-
ied that paper closely.^75 Of his twelve instructions, only instruction 5—transfer the number in
A to R—was not in the Princeton set. Baby was a very close relative indeed of the more complex
computer described in the Burks–Goldstine–von Neumann paper. Both were single-address
machines with an accumulator;^76 and moreover the control arrangements for the two comput-
ers were effectively the same.^77
The extent to which the design of Baby followed Princeton thinking becomes evident if
Table 20.2 is compared with the following 1947 summary by Harry Huskey of logical aspects of
Table 20.2 Baby’s instruction set given in Williams and Kilburn’s 1948 letter
to Nature (see Note 2). (The square brackets show my translation into Good’s
Princeton-style notation of the instructions as Williams and Kilburn presented them.)
Instructions 1– 4 are all members of Good’s May 1947 instruction set, and instruction
5 is a simplified form of Good’s CC instruction.
- If x is any number in the store, –x can be written into a central accumulator A [–x → A]
- x can be subtracted from what is in A [A – x → A]
- The number A can be written in an assigned address in the store [A → x]
- Control can be shifted to an assigned order in the table [C → x]
- The content of A can be tested for whether x ≥ 0, or x < 0; if x < 0, the order
standing next in the store is passed over
[CC ]
- The machine can be ordered to stop [No equivalent]