【问题标题】:LL(2) language that is not LL(1)LL(2) 不是 LL(1) 的语言
【发布时间】:2012-05-17 10:42:09
【问题描述】:

为了加深我对解析器和语法的理解,我正在寻找一个(希望是简单的)语言 的示例,它是 LL(2) 但不是 LL(1)。也就是说,一种语言可以由 LL(2) 文法生成,但不能由任何 LL(1) 文法生成。

该课程中是否有有用的语言?即我们可以想象一种计算机语言是 LL(2) 但不是 LL(1) 吗?

【问题讨论】:

标签: parsing grammar


【解决方案1】:

Gunther 的回答中链接的书中提到的示例:

S -> a S A | epsilon
A -> a^k b S | c

是描述不是 LL(k) 的 LL(k+1) 语言的语法。特别是,

S -> a S A | epsilon
A -> a b S | c

是描述不是 LL(1) 的 LL(2) 语言的语法。

【讨论】:

    【解决方案2】:

    Grune 和 Jacobs 的Parsing Techniques 提供了一个示例。本书的旧版本可在

    上在线获取

    http://dickgrune.com/Books/PTAPG_1st_Edition/BookBody.pdf

    示例在第 181 页。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-09
      • 1970-01-01
      • 2013-04-29
      • 1970-01-01
      • 2017-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多