On Saturday, 17 March 2018 at 14:52:29 -0400, Arthur Krewat wrote:
On 3/17/2018 1:49 PM, Paul McJones wrote:
It first ran on the IBM 704, whose index
registers subtracted (as did
the follow-on 709, 7090, etc), so array indexing went from higher
memory addresses to lower.
Leave it to IBM to do something backwards.
Of course, that was in 1954, so I can't complain, it was 11 years before
I was born. But that's ... odd.
Was subtraction easier than addition with digital electronics back
then?
Yes. The basic arithmetic operation on ones-complement machines
(which meant just about every big computer of the day) was
subtraction.
I would think that they were both the same level of
effort (clock
cycles) so why do something obviously backwards logically?
If I recall this correctly, the big issue was -0. It was easier to
avoid this value with a subtractive adder than with an additive adder.
Possibly the adder itself was also marginally simpler as a result.
The other interesting thing about the 704 and 709 was that there was a
3 bit field for the decrement registers (as the index were called),
and each bit selected one register, so you could use any or all of the
registers in an operation. I'd like to claim that this was the reason
for 3 array subscripts in early FORTRAN, but last time I made a claim
like that I was soundly trounced.
Later 70* machines expanded to 7 decrement registers, and this feature
was lost.
Greg
--
Sent from my desktop computer.
Finger grog(a)lemis.com for PGP public key.
See complete headers for address and phone numbers.
This message is digitally signed. If your Microsoft mail program
reports problems, please read
http://lemis.com/broken-MUA