LISP implementations on small machines

David david at kdbarto.org
Thu Oct 3 07:35:48 CDT 2019


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 <cctech at classiccmp.org> 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.



More information about the cctalk mailing list