[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
History of "backquote" macro
- To: kmp@mit-mc.ARPA, Lisp-Forum@mc.ARPA
- Subject: History of "backquote" macro
- From: JONL.PA@PARC-MAXC.ARPA
- Date: Mon ,12 Mar 84 23:49:00 EDT
- Cc: McDermott@Yale.ARPA, Guy.Steele@cmuc.ARPA, Dick%MIT-OZ@mc.ARPA,, Hewitt@mc.ARPA, gjs@mc.ARPA, Genesereth@Score.ARPA, Masinter.PA@PARC-MAXC.ARPA, JonL.PA@PARC-MAXC.ARPA
In response to your message sent  Mon, 12 Mar 84
There are two rather distinct components to the MacLisp-Style backquote,
which may have had varying influences from "history".
1) the notion of a template into which somethings were substituted existed
   since the time of Adolfo Guzman's thesis around 1967-8;  he had Lisp-level
   macros called QU and QU* which were essentially like QUOTE except that the
   form was "looked at" by a substitution parser, which substituted for certain
   key words (i.e., the equivalent of "," and ",@").  In later years (meaning
   around the time of Muddle -- 1971-75) some people were using variants of
   a macro-defining function that incorporated similar ideas.  Steele's
   MACRODEF comes to mind and so does a similar package attributed to Chuck
   Rich (both seem to have influenced DEFMACRO as well).
2) the notion of a reader macro that would "compile such a template on the
   fly into Lisp code".  I vaguely remember the influence of Muddle, especially
   for "[" like constructs so that you didn't need to type LIST, (and such
   a macro has been an essential feature of BRANDX for a long time, but with
   more serious development).  Such a reader macro wasn't in common use
   at the MIT AI lab in 1975, but after I returned from IBM (roughly, Jan 1978)
   I remember seeing the LispMachine people using it.  We quickly recognized
   its usefulness, and began a parallel development for PDP-10 MacLisp and NIL.
In fact, the "backquote" reader macro and DEFMACRO are so intertwined
that it has often been said that one can't understand backquote until he's
personally written a bunch of macro-producing macros using the ",'," and ",,"
paradigms.
The Post-1978 development as you (KMP) outlined in your note is more-or-less
as I remember it too.