![]() |
1
9
我认为这在很大程度上取决于你试图解析的语言。表演的另一个有时被遗忘的部分是词法分析(扫描)部分——它对表演很重要,因为它处理的是字符而不是符号。递归下降是编写解析器的良好第一次迭代,它使遵循解析语言的逻辑变得非常自然。我认为,如果解析的语言适合(没有左递归),你应该从递归下降开始。在这个阶段选择LALR进行性能优化似乎为时过早。 你可以写一个 chart parser 用手,但我怀疑这是你的意思。手工编写LALR解析器是可能的,但很乏味。 |
![]() |
2
3
在LALR和LL之间做出决定 演出 此时的原因听起来像是过早的优化。解析时间很少是编译器的瓶颈。如果我是你,我会根据你是更习惯自下而上还是自上而下来定义语法来做出选择。 就我个人而言,我发现LALR语法很容易使用,F#的fsyacc集成(这就是我学习解析的方式)使得将yacc集成到你的项目中变得非常容易。 |
![]() |
George S. · 是否存在基于元组的控制流语句内部表示? 7 年前 |
![]() |
FlatAssembler · 在x86程序集中计算exp(x) 7 年前 |
![]() |
cib · 即时编译和动态编译有什么区别? 7 年前 |
![]() |
Artemis · 寄存器与指令之间的差异 7 年前 |
![]() |
Sam · 了解go工具编译和链接命令 7 年前 |