On Tue, May 26, 2009 at 11:01 PM, John Clements
<[email protected]> wrote:
> I'm way out of my depth here, but I'm going to refine your assertion by
> suggesting that 'phase towers' are not decades old; I believe they are an
> innovation of the "You want it when?" paper. Naturally, a quick look at
> that paper would probably answer h...
>
> Nope, I'm wrong. Matthew cites Quienniec:
>
> [19] C. Queinnec. Macroexpansion reflective tower. In Proc. Re-
> flections Conference, pages 93–194, Apr. 1996.
I don't know who introduced the concept of the tower for the first time,
but implicitly the tower is there from the beginning, at least from
the time when Lisp was compiled for the first time. Once you have
the ability to nest macros, you have a non-trivial tower of meta-levels,
with positive and negative levels.
The new thing in the R6RS report is that now the tower is made
very explicit to the programmer whereas before it was somewhat
of a secret. Implementations with implicit phasing make a good
job of hiding it again (the levels are still there conceptually,
but once an identifier is imported at all levels with the same binding,
the programmer is not forced to distinguish them explicitly).
M. Simionato