From: Mark Kahrs
Sent: Tuesday, October 01, 2019 7:24 PM
The first implementation was done for the 7090 by
McCarthy (hence
CAR and
CDR --- Contents of Address Register and Contents of Decrement
Register).
In the 70x series of IBM scientific systems (704, 709, 7040, 7090,
7044, 7094),
the word "register" referred to memory locations rather than to the
accumulator
or multiplier/quotient. Each memory register was 36 bits long, and
could be
treated as 4 fields: A 15 bit address, a 15 bit decrement, a 3 bit
tag, and a
3 bit index selector.
In the earliest implementation of LISP, there were 4 functions which
returned
the different parts of a register: CAR, CDR, CTR, and CIR. These
were
abbreviations for "Contents of the {Address, Decrement, Tag, Index}
PART OF THE
Register", not "Contents of the {Address, Decrement} Register" as is
so often
misstated.
Rich
NB: Information from a talk given on the history of Lisp by Herbert
Stoyan at
the 1984 ACM Conference on Lisp and Functional Programming Languages,
and later
verified by personal inspection of the code.
It seems that simh has prebuilt ibm 70xx machines with lisp installed.