The origin of CAR and CDR in LISP

CDR A discussion in alt.folklore.computers , that started with a question from someone: (To which Iain A F Fleming replied: I have always, and still do, use car and cdr as content and forward pointer, even in C. ) According to the LISP 1.5 Programmer's Manual ISBN 0 262 13011 4, `A' and `D' stand for `address' and `decrement', as on page 36 it says: +-----------+-----------+ | add. | dec. | +-----------+-----------+ I would conclude from this that CAR and CDR are names of cpu instructions and stand for something like: Copy Address Register Copy Decrement Register. As I recall (and it has been a long time) the IBM 7090 (and possibly the 709 before it) had a 15 bit address register and a 15 bit decrement register that could be loaded from a 36 bit word in memory (the other 6 bits were used for marking words as being atoms versus s-expressions, and...

Linked on 2016-12-28 03:50:47 | Similar Links