My initial motivation for looking into macros was somewhat
trivial. I had heard the Common Lisp zealots talk about
macros and how they made various things easier and how any
language without proper syntax macros was inferior and
beneath consideration. Being a self confessed Smalltalk
zealot, I found this state of affairs annoying and decided
that I would see if I could build a macro system for
Smalltalk if for no other reason than to show that it could
be done.
I received a number of interesting reactions to this plan
when I mentioned it to other Smalltalk developers. Most of
the reactions I read as a "Blub" response, the reaction Paul Graham described as happening when a
programmer encounters a language or language feature
higher up the power scale and doesn't appreciate
it. These people would typically claim that it was
not a necessary feature, everything you could do with
macros could be done using various features of
Smalltalk. I do not dispute this, save to observe that
the same could be said for a Turing machine.
So I developed an experimental implementation of syntax
macros for VisualWorks 7.3 which was informed greatly by
the implementation of macros found in the Slate language.
Unfortunately I messed up the source management and I
had to fix that to move it into another image. This
has been done and the result is on the Cincom Public
StORE.
The parcels are available from the downloads page.
A draft of my notes are at StSM-Overview.html