[bitc-dev] DISCUSS: To macro or not to macro?

Sandro Magi naasking at higherlogics.com
Fri Jul 18 14:03:40 CDT 2008


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
> bitc-dev at coyotos.org
> http://www.coyotos.org/mailman/listinfo/bitc-dev



More information about the bitc-dev mailing list