matthias@leto.rice.edu (Matthias Felleisen) (03/29/90)
Recent references to "hygienic macro expansion" [1] on this mailing
list, in technical reports, and in publications indicate that there is
a prevailing misunderstanding about the term. Our original paper
proved a simple idea: there are macro expansion ALGORITHM(s) that
prevent the accidental capture of free variables by macro-introduced
bindings, and it is therefore unnecessary [indeed we argued that it
was dangerous] to rely on the MACRO PROGRAMMER (macrologist) to do so.
We showed that this is possible by using the simple, existing macro
tools of Lisp as a "target" macro system. This may also be possible
with other target systems such as syntactic closures [2] or other
macro tools, but this is besides the point. Macrologists can program
safely in all systems but the point of hygienic expansion is that a
system builder can ENFORCE such a discipline with an appropriate macro
expander.
-- Bruce Duba and Matthias Felleisen, Rice University
[1] {Kohlbecker E., D.P. Friedman, M. Felleisen, and B.F. Duba}.
Hygienic macro expansion. In {\it Proc. 1986 ACM Conference on Lisp
and Functional Programming}, 1986, 151--161.
[2] {Bawden, A. and J. Rees}. Syntactic closures. In {\it Proc. 1988
ACM Conference on Lisp and Functional Programming}, 1988, 86--95.