gpt4 book ai didi

parsing - 生产编译器是否使用解析器生成器?

转载 作者:行者123 更新时间:2023-12-04 19:18:55 28 4
gpt4 key购买 nike

我听说“真正的编译器编写者”推出了他们自己的手工解析器,而不是使用解析器生成器。我还听说解析器生成器不会为现实世界的语言削减它。据说,有许多特殊情况难以使用解析器生成器来实现。我对此有以下疑问:

  • 理论上,GLR 解析器生成器应该能够处理大多数编程语言设计(C++ 除外...)
  • 我知道至少一种使用解析器生成器的生产语言:Ruby [1]。
  • 当我在学校上编译器课时,我们使用了解析器生成器。

  • 所以我的问题是:使用解析器生成器编写生产编译器是否合理,或者使用解析器生成器是否被编译器社区认为是一个糟糕的设计决策?

    [1] https://github.com/ruby/ruby/blob/trunk/parse.y

    最佳答案

    对于它的值(value),我相信 GCC 使用了 4.0 之前的解析器生成器,然后切换到手写递归下降解析器,因为它更容易维护和扩展。

    解析器生成器确实为“真正的”语言“削减了它”,但是将您的语法转换为可行的工作量呈指数增长。

    编辑:链接到 GCC 文档,详细说明更改的原因和 yield 与成本分析:http://gcc.gnu.org/wiki/New_C_Parser .

    关于parsing - 生产编译器是否使用解析器生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6388932/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com