2007-09-12
让D代码自己编译自己
关键字: D 元编程刚在 D语言的新闻组里看到了D模板&元编程顶尖高人 Don Clugston 的新作——Compile time lex + parse + semantic = 300 lines of code 一个用300行代码就实现的D语言编译时词法解析、语法解析、语义分析器,换句话说就是一个非常简单的编译器前端。
当然了,这也不是什么新技术,C++ 借助一些模板递归也能实现出像 boost.spirit/boost.phoenix 这样的语法分析器,但是这个语法分析器只是在编译时生成,却不能在编译时运行。而 Don 的实现,借助了D 编译时函数执行(CTFE)的强大功能,能在编译时就完成解析,真是不可思议。
Don 给出的例子:
D 代码
这段代码在编译时,a 是一个编译时的常量,表达式`foo* bar(2.18_3242e+45L, “xyz”) in duck`将被解析为 a 的子节点。
D快变成脚本了,不是吗?
评论
sofire
2007-09-17
看不懂:(
achun
2007-09-16
ideage
2007-09-13
Don Clugston 超级牛人!
qiezi
2007-09-12
oldrev
2007-09-12
Pypy!
发表评论
- 浏览: 105152 次
- 性别:

- 来自: 昆明

- 详细资料
搜索本博客
我的相册
Screenshot
共 1 张
共 1 张
最近加入圈子
最新评论
-
出色的开源项目管理软件— ...
我也是前几天刚刚从trac换到redmine,感觉好多了,trac有的redmi ...
-- by danielking -
转贴:鲁迅未收入全集的文 ...
借问酒家何处有,牧童遥指杏花村
-- by hqs7636 -
Range Coding 的 D 实现
引用oldrev 2008-01-12LZMA SDK 只是一个 LZMA 算法 ...
-- by oldrev -
D 静态数组初始化大bug
看看日期好伐?
-- by oldrev -
D新闻组里的天才代码
没看过产生的汇编代码,测试了是可行的。如果用宏来实现就完美了
-- by oldrev






评论排行榜