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.