【发布时间】:2011-09-13 05:29:06
【问题描述】:
似乎 GCC 和 LLVM-Clang 正在使用手写递归下降解析器,并且不是机器生成的、基于 Bison-Flex 的自下而上解析。
这里有人可以确认一下吗? 如果是这样,为什么主流编译器框架都使用手写解析器?
【问题讨论】:
-
几乎所有的主流编译器都在使用手写解析器。这有什么问题?
-
如果您需要性能,您必须(半)手动完成。
-
不仅是性能 - 更好的错误消息、恢复能力等
-
MS VisualStudio 怎么样?虽然不是开源的,但来自 MS 的人能否验证他们也在使用手写递归下降解析器?
-
@GeneBushuyev,来自 GCC wiki:“...虽然 时序显示了 1.5% 的加速,但主要的好处是促进了未来的增强......”这种加速似乎相当边缘......
标签: c parsing compiler-construction compilation