Newsgroups: comp.lang.lisp,comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!ix.netcom.com!netcom.com!hbaker
From: hbaker@netcom.com (Henry G. Baker)
Subject: Macros
Message-ID: <hbakerCzp4IM.6F6@netcom.com>
Followup-To: poster
Summary: Need references to papers on macros
Organization: nil
Date: Wed, 23 Nov 1994 01:08:45 GMT
Lines: 45
Xref: glinda.oz.cs.cmu.edu comp.lang.lisp:15768 comp.lang.scheme:11417

I would be interested in collecting references on papers which discuss
the need for, and the uses of, macros.  I am trying to refute a
general trend away from macros as 'ugly', bad programming style,
and/or 'unprincipled'.

I don't want to start a flame war on this subject (at least not at this
time :-), but I'd like to collect a bibliography of papers which discuss
the various reasons for having macros.

The usual reasons _for_ macros that I have heard include:

1.  poor man's 'in-lining' for dumb compilers.
2.  poor man's 'compiler optimizers' for dumb compilers.
3.  language extension ('how even _you_ can add new special forms').
4.  language extension compilers (incorporating optimizations for newly
added language extensions).
5.  Macros substitute for lazy programmers (i.e., doing globally careful
replacements).
6.  Macros substitute for poor programming environments (ditto).
etc.

I'm particularly interested in references which have new (to me)
arguments for or against macros.

The papers do _not_ have to talk about Lisp or Scheme macros, but could
be about C macros or assembly macros.

If any of the papers are on-line, please include WWW references for them.

Very old references from the 1950's and 1960's are especially
valuable, because they might have insights which have been forgotten.

Papers which simply describe valuable macro packages -- e.g., 'loop'
-- are interesting for this purpose only if they argue a case for
macros in general (i.e., they explain why this stuff shouldn't be
built into a language and/or compiler).

I'll try to gather the results into a list, or even a WWW page (if I
have trouble sleeping after too much turkey this week. :-)

Thanks in advance.

Henry Baker
Read (192.100.81.1) ftp.netcom.com:/pub/hbaker/README for ftp-able papers.
WWW archive: ftp://ftp.netcom.com/pub/hbaker/home-page.html
