【问题标题】:Context-Free Grammar上下文无关语法
【发布时间】:2013-02-23 14:12:25
【问题描述】:

我需要帮助来理解这个概念。

书上说

G1:
    A→0A1
    A→B
    B→#

它声明G1 生成字符串000#111

并显示一个过程

A → 0A1 → 00A11 → 000A111 → 000B111 → 000#111

我明白这里发生了什么。我不确定的是它是否可以无限循环。

例如:

G1 也可以使用这个过程生成0#1

A → 0A1 → 0B1 → 0#1

这本书没有解释清楚这部分。谢谢

【问题讨论】:

    标签: context-free-grammar


    【解决方案1】:

    是的,任何产生式都可以应用无数次,从而生成(在这种情况下以及在大多数情况下)无限数量的字符串。 此语法生成 0n#1n

    形式的所有字符串

    【讨论】:

    • 我很感激。它实际上确实最终在书中说,但在他们给出的几个例子之后几页。他们将定义正式化。非常感谢。
    • @juice 是的,你注意到A → 0A1 这里A 可以在RHS 中自行替换生成此规则使其生成无限大的0^n_1^n,包含A --> B 以进行转换感伤的形式变成句子。您可以重写相同的语法,如A --> 0A1 | #
    【解决方案2】:

    当然可以。给定的语法还会生成0#1 语言。事情已经很清楚了。可以看到,生成的语言 0#1 是前一种语言由相同语法生成的子集。

    【讨论】:

      猜你喜欢
      • 2012-01-04
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-03
      • 1970-01-01
      相关资源
      最近更新 更多