CAR and CDR - Etymology

Etymology

Lisp was originally implemented on the IBM 704 computer, in the late 1950s. The 704 hardware had special support for splitting a 36-bit machine word into four parts, an "address part" and "decrement part" of 15 bits each and a "prefix part" and "tag part" of three bits each.

Precursors to Lisp included functions:

  • car (short for "Contents of the Address part of Register number"),
  • cdr ("Contents of the Decrement part of Register number"),
  • cpr ("Contents of the Prefix part of Register number"), and
  • ctr ("Contents of the Tag part of Register number"),

each of which took a machine address as an argument, loaded the corresponding word from memory, and extracted the appropriate bits.

The 704 assembler macro for cdr was

LXD JLOC,4 CLA 0,4 PDX 0,4 PXD 0,4

A machine word could be reassembled by cons, which took four arguments (a,d,p,t).

The prefix and tag parts were dropped in the early stages of Lisp's design, leaving CAR, CDR, and a two-argument CONS.

Read more about this topic:  CAR And CDR

Famous quotes containing the word etymology:

    Semantically, taste is rich and confusing, its etymology as odd and interesting as that of “style.” But while style—deriving from the stylus or pointed rod which Roman scribes used to make marks on wax tablets—suggests activity, taste is more passive.... Etymologically, the word we use derives from the Old French, meaning touch or feel, a sense that is preserved in the current Italian word for a keyboard, tastiera.
    Stephen Bayley, British historian, art critic. “Taste: The Story of an Idea,” Taste: The Secret Meaning of Things, Random House (1991)

    The universal principle of etymology in all languages: words are carried over from bodies and from the properties of bodies to express the things of the mind and spirit. The order of ideas must follow the order of things.
    Giambattista Vico (1688–1744)