Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watnot!watmath!clyde!cbatt!ihnp4!ptsfa!lll-lcc!styx!ames!ucbcad!ucbvax!decvax!decwrl!labrea!Shasta!kaufman From: kaufman@Shasta.UUCP Newsgroups: comp.sources.d,misc.misc Subject: Re: Lisp operators Message-ID: <1344@Shasta.STANFORD.EDU> Date: Thu, 26-Feb-87 11:52:34 EST Article-I.D.: Shasta.1344 Posted: Thu Feb 26 11:52:34 1987 Date-Received: Sat, 28-Feb-87 05:39:39 EST References: <1277@beta.UUCP> <517@cod.UUCP> <1297@zeus.TEK.COM> Reply-To: kaufman@Shasta.UUCP (Marc Kaufman) Organization: Stanford University Lines: 25 Xref: utgpu comp.sources.d:364 misc.misc:610 In article <1297@zeus.TEK.COM> dant@tekla.tek.com (Dan Tilque) writes: >learned that there are essentially two operators in the language. These >are "CAR" and "CDR". ("CDR" *is* pronounced "could-er".) The interesting >thing about them is their origin. It seems that on the machine where >the language was developed (at Stanford, I think; don't know what machine) >there were two registers: a Current Address Register (CAR) and a Current >Decrement Register (CDR). >I always thought that this was perfect example of a machine independent >language. The IBM 709 and 7090 had 36 bit words, which were formatted as follows for instructions: 3 bits - Flag 15 bits - Decrement field (used for index modification) 3 bits - Tag 15 bits - Address field (obvious use) Memory size was 32K words (15 bit address). What more natural thing to do in a list structure than store one address in the Address field, and one address in the Decrement field of a list token. The Flag bits were used by the garbage collector marking algorithm, and the Tag bits for typing (Atoms, etc), or perhaps the other way around. John McCarthy was at MIT when LISP was invented..