【问题标题】:Parsing table size (bottom-up)解析表大小(自下而上)
【发布时间】:2020-10-02 23:55:00
【问题描述】:

我已经看到了为歧义和明确语法(相同语言)构建的解析表大小之间的比较。为模棱两可而创建的那个要小得多。使用的解析器是 SLR(1)。

我想问你,表示歧义语法的解析表(自底向上解析器的)的大小总是小于对应的明确语法的解析表的大小是否总是正确的?显然假设冲突得到了正确解决。

我做了一些研究,但我找不到任何证据或答案。

【问题讨论】:

    标签: parsing compiler-construction lr bottom-up


    【解决方案1】:

    并非总是如此。考虑平衡括号语言的经典语法

    在 SLR(1) 自动机中明确的有 5 个状态。

    S -> '(' S ')' S | \epsilon
    

    同时,二义性文法在 SLR(1) 自动机中有 6 个状态。

    S -> S S | '(' S ')' | \epsilon 
    

    因此,歧义语法的表大小大于明确语法的表大小。

    a+ 语言的两个语法也是如此:S -> a S | aS -> S S | S S S | a

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-13
      相关资源
      最近更新 更多