I also just came across this which looks interesting: First-class Macros Have Types
In modern Scheme, a macro captures the lexical environment where it is defined. This creates an opportunity for extending Scheme so that macros are first-class values. The key to achieving this goal, while preserving the ability to compile programs into reasonable code, is the addition of a type system. Many interesting things can be done with first-class macros, including the construction of a useful module system in which modules are also first-class. http://people.csail.mit.edu/alan/mtt/ Sandro Sandro Magi wrote: > I mean multistage languages ala MetaOCaml. For instance, see "Macros as > MultiStage Computations: TypeSafe, Generative, Binding Macros in > MacroML" [1]. > > However, if macros are the way you're going, I've heard good things > about [2]. > > Sandro > > [1] http://citeseer.ist.psu.edu/440438.html > [2] http://www.cs.utah.edu/plt/publications/macromod.pdf > > > Jonathan S. Shapiro wrote: >> Sandro: >> >> Can you say what you mean by "multistaging"? >> >> It is certainly true that a well-structured macro system can be >> implemented in a pre-processor. There are two differences: >> >> 1. The macro expansion is integrated into the compiler front end. >> This is mainly a matter of implementation. >> >> 2. The macro mechanism is extensible. It is certainly possible to >> build extensible preprocessors, but most preprocessors have >> not been extensible in this way. >> >> shap >> >> >> On Fri, 2008-07-18 at 13:16 -0400, Sandro Magi wrote: >>> Ever since learning about multistaging, I've never seen the point of >>> macros. I'd imagine that BitC would only want to permit one stage, and >>> using staging has the advantage of retaining important type information. >>> >>> Staging can also permit a limited form of reflection/polytypism [1]. I >>> suspect that you might consider even a single stage as a tad too >>> ambitious though. :-) >>> >>> Sandro >>> >>> [1] http://okmij.org/ftp/ML/#gprint >> _______________________________________________ >> bitc-dev mailing list >> [email protected] >> http://www.coyotos.org/mailman/listinfo/bitc-dev > > _______________________________________________ > bitc-dev mailing list > [email protected] > http://www.coyotos.org/mailman/listinfo/bitc-dev _______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
