parsing - 将语法转换为最有效的解析器

标签 parsing compiler-construction

是否有一种在线算法可以将某些语法转换为最有效的解析器?

例如:SLR/LR(k)如k>=0

最佳答案

对于你正在讨论的语法类(xLR(k)),无论如何它们都是线性时间,如果你必须检查每个字符,那么不可能做亚线性时间。

如果你坚持优化解析时间,你应该得到一个非常快的LR解析引擎。 LRStar 曾经是这个话题的猫喵,但其背后的人从“我想要免费”的世界中获得了零奖励,并将其所有实例从网上撤下。你可以选择 Bison。

坦率地说,大部分解析时间将取决于解析器处理单个字符的速度,例如词法分析器。首先调整它,您可能会发现不需要调整解析器。

关于parsing - 将语法转换为最有效的解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62784447/

相关文章:

c# - 将 C# 编译为 Native?

jquery - 在 Safari 中使用 JQuery 解析 XML

parsing - 这些语法 : LL1, SLR1、LR0、LR1 和 LALR1 的层次结构是什么?

c++ - 链接 C++ 代码的问题

c++ - gcc: undefined reference 错误

macos - 无法让 GCC 的 -static-libgcc 在 Mac OS X 上与 DYLIB 库一起使用

c - 这个函数有什么问题吗?

C++ - 无法将 CSV 解析到我的结构中

java - Android - Java 解析 JSON

javascript - 如何解析JSON多维数组