CTFE - compiling other languages inside D
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Wed Aug 10 11:04:41 PDT 2011
On 8/10/11 11:09 AM, Marco Leise wrote:
> With the recent ORM and RegEx projects dissecting SQL statements and
> regular expressions turning them into D code, I am impressed by the
> possibilities of CTFE. Where are the limitations to this system? An
> unlikely example would be a C compiler within CTFE that takes a string
> of C source code and turns it into a D mixin. Is that possible?
Yah, that would be possible (albeit difficult). I think, however, that
better applications of CTFE are not for translating full-blown languages
into D. Instead, the best added value would be to translate small DSLs
into D code. Examples include:
* regex (I'm very glad Dmitry found the time to implement that - static
regexen will long serve as a poster child of CTFE's power);
* SQL - embedded SQL integrated perfectly with D data would be awesome
and relatively easy to define;
* Tokenizers (think lex);
* Parsers (think yacc, antlr etc);
* String interpolation (think Python's format, printf-style format
parsed statically etc);
* Make :o);
* Protocol description;
* Automata, transducers of various kinds;
* and more.
I hope Dmitry's work will mark a growing trend of defining DSLs in D.
Andrei
More information about the Digitalmars-d
mailing list