I thought some of you might enjoy this. (I think at least Eliot probably will. ;)
Ian -------- Beeler M., Gosper, R.W. and Schroeppel, R., "HAKMEM", MIT AI Memo 239, Feb. 29, 1972.
ITEM 154 (Gosper):
The myth that any given programming language is machine independent is easily exploded by computing the sum of powers of 2.
- If the result loops with period = 1 with sign +, you are on a sign-magnitude machine.
- If the result loops with period = 1 at -1, you are on a twos-complement machine.
- If the result loops with period > 1, including the beginning, you are on a ones-complement machine.
- If the result loops with period > 1, not including the beginning, your machine isn't binary -- the pattern should tell you the base.
- If you run out of memory, you are on a string or Bignum system.
- If arithmetic overflow is a fatal error, some fascist pig with a read-only mind is trying to enforce machine independence. But the very ability to trap overflow is machine dependent.
By this strategy, consider the universe, or, more precisely, algebra:
let X = the sum of many powers of two = ...111111 now add X to itself; X + X = ...111110 thus, 2X = X - 1 so X = -1 therefore algebra is run on a machine (the universe) which is twos-complement.
squeak-dev@lists.squeakfoundation.org