Algorithm 上下文敏感语法与上下文无关语法的区别

Algorithm 上下文敏感语法与上下文无关语法的区别,algorithm,context-free-grammar,context-sensitive-grammar,Algorithm,Context Free Grammar,Context Sensitive Grammar,可能重复: 在我的教科书中,以下是对这两个术语的解释: 上下文敏感语法: 语法可以有形式为w1的结果→ w2,其中w1=lAr和 w2=lwr,其中A是非终结符号,l和r是零字符串 一个或多个终端或非终端符号,w是 终端或非终端符号。它也可以有生产线→ λ 只要S不出现在任何其他屏幕的右侧 生产 上下文无关语法: 语法只能有形式为w1的结果→ w2,其中w1是a 不是终端符号的单个符号。类型3语法可以有 仅表格w1的产品→ w2,w1=A,w2=aB或 w2=a,其中a和B是非终端符号,a是终

可能重复:

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

上下文敏感语法:

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

上下文无关语法:

语法只能有形式为w1的结果→ w2,其中w1是a 不是终端符号的单个符号。类型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的特例


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

我可以用另一种方式说——CFG是CSG的特例。你能告诉我更多吗。因为,我看到CSG对上下文有一些条件,但是CFG。所以,我认为,CSG应该是CFG的特例,你们可以给我一些例子,并告诉我区别,谢谢:)CFG相当于CSG,其中每个规则在左右上下文中都有一个空字符串。因此,每个CFG都可以写为CSG,但不是每个CSG都可以写为CFG。因此,根据定义,CFG是CSG的特例。