Thanks for that bit of historical information. Things always make more sense in 
context. When I learned lisp on a B6700 it was hard to understand and harder to 
program. With this bit of context lisp now makes a lot more sense, and looking 
back if I knew this then I’m sure I would have grasped the language much more 
quickly.

        David

> On Oct 2, 2019, at 12:02 PM, Rich Alderson via cctech <[email protected]> 
> wrote:
> 
> 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.

Reply via email to