Zeroing Working Variables

Nobody programming today would consider it, but AAL wrote on p. 708:

At the end of a calculation, therefore, every column ought as a general rule to be zero, excepting those for results.

That's why I think a zero is missing in line 24 column V13.

From the mechanical plans, it might be required – but not mentioned in the papers – that to transfer a value from the mill via the outgress shaft to the store, that store must be zero, otherwise a digit-wise add (without carry) would be done.

The Bernoulli number example fits perfectly into this scheme.

In case that an input operand is replaced by the result, it is no problem to use the – anyhow quicker – zeroing load.

Checking the table shows that all (working-) variables are zeroed before replaced with another value:

  • In line 9, V11 is set, but was cleared in line 6
  • in line 15, V8 is set, was initially zero, and is zeroed in the next line, so if looped, will be zero again
  • in line 19, the same is true for V9
  • same in line 20

Thus, it is clear that in line 24, the table should have a zero for V13.

So it is probably not a mere extra, but necessary for the correct functioning.

Note

Zeroing out intermediate values still seems to be current practice when Alan Turing wrote his On Computational Numbers…; on page 232:

The others are just rough notes to “assist the memory”. It will only be these rough notes which will be liable to erasure.

Note that this is in contrast to our modern understanding of Turing machines.


Log In