Search code examples
macroslispschemehistoryracket

When did the idea of macros (user-defined code transformation) appear?


I have read McCarthy's 1960 paper on LISP and found no reference to anything that's similar to user-defined macros or normal order evaluation. I was wondering when macros first appeared in programming language history (and also in Lisp history):

  • When was the idea of user-defined code transformation (before interpretation or compilation) first described (theoretically)?
  • What was the first programming language implementation to have Lisp-like macros (by "Lisp-like" I mean "using a readable Turing-complete language to do code-transformation")? (including non-Lisps -- Forth for example is quite old, but I'm not sure if the first Forth implementation already had "IMMEDIATE")
  • Also which of those was the first high-level programming language (exclude assembler languages...)
  • What was the first Lisp dialect to have macros?

Thank you!


Solution

  • From The Evolution of Lisp (PDF) (Steele/Gabriel):

    3.3 Macros

    Macros appear to have been introduced into Lisp by Timothy P. Hart in 1963 in a short MIT AI Memo [Hart, 1963],

    See:

    MIT AI Memo 57, Timothy P. Hart, MACRO Definitions for LISP, October 1963