【问题标题】:Difference between Context-sensitive grammar and Context-free grammar [duplicate]上下文相关语法和上下文无关语法之间的区别[重复]
【发布时间】:2012-10-17 04:35:21
【问题描述】:

可能重复:
Context-sensitive grammar and Context-free grammar

在我的教科书中,这是对这两个术语的解释:

上下文相关语法:

语法可以有 w1 → w2 形式的产生式,其中 w1 = lAr 和 w2 = lwr,其中 A 是非终结符,l 和 r 是零字符串 或多个终端或非终端符号,并且 w 是一个非空字符串 终端或非终端符号。它也可以有产生式 S → λ 只要 S 没有出现在任何其他的右侧 生产。

上下文无关语法:

语法只能有 w1 → w2 形式的产生式,其中 w1 是 不是终端符号的单个符号。类型 3 语法可以有 仅形式为 w1 → w2 且 w1 = A 且 w2 = aB 或 w2 = a,其中 A 和 B 是非终结符,a 是终结符 符号,或者 w1 = S 和 w2 = λ。

在我的教科书中,作者说:CSG是CFG的一个特例。但是,我不明白这一点。因为在 CSG 中,lAr -> lwr。 l 和 r 可以是 零字符串 或多个终结符或非终结符。因此,当它是零字符串时(意味着:长度 = 0)。我们可以将 lAr 写为 A。因此,CSG 将是 CFG。所以,CSG CFG

我理解错了吗?请为我更正。

谢谢:)

【问题讨论】:

  • 换一种说法——CFG是CSG的一个特例。
  • This answer 可能会有所帮助

标签: algorithm context-free-grammar context-sensitive-grammar


【解决方案1】:

教科书有误。正如您所说,CFG 是 CSG 的特例。

CSG 可以比 CFG 表达更多的语言。

【讨论】:

  • 你能告诉我更多吗,拜托。因为,我看到 CSG 有一些上下文条件,但 CFG。所以,我认为,CSG 应该是 CFG 的特例
  • 你能给我一些例子,告诉我不同​​之处吗,谢谢:)
  • 一个 CFG 相当于一个 CSG,其中每个规则的左右上下文都有一个空字符串。因此,每个 CFG 都可以写成 CSG,但并不是每个 CSG 都可以写成 CFG。因此,根据定义,CFG 是 CSG 的特例。
猜你喜欢
  • 2012-01-04
  • 2012-04-12
  • 2014-04-26
  • 2013-02-23
  • 1970-01-01
  • 2014-02-28
  • 2011-07-03
  • 1970-01-01
相关资源
最近更新 更多