【发布时间】:2012-02-27 07:38:01
【问题描述】:
我的书对常规语法和常规语言给出了相似但略有不同的解释。 我怀疑这是错误的,常规语言与常规语法是一样的吗? 我的书的定义是: 如果所有产生式都是 V-> aW 或 V->Wa 且带有 V,W 非终结符或终结符,则文法是规则的,“a”终结符。W 也可以为空或与 V 相同。
【问题讨论】:
我的书对常规语法和常规语言给出了相似但略有不同的解释。 我怀疑这是错误的,常规语言与常规语法是一样的吗? 我的书的定义是: 如果所有产生式都是 V-> aW 或 V->Wa 且带有 V,W 非终结符或终结符,则文法是规则的,“a”终结符。W 也可以为空或与 V 相同。
【问题讨论】:
正则语法和正则语言是两个不同的术语:
相同的语言可以用不同类别的语法(常规、上下文无关等)来表示。 如果可以用常规语法来表示语言,则称其为常规语言。另一方面,正则文法总是定义正则语言。你贴的是正则语法的定义。
更多信息请参见this Wikipedia post。
【讨论】:
形式语法是一组规则,而形式语言是一组字符串。
正则文法是描述正则语言的形式文法。
根据Wikipedia:
[T]左正则文法生成所有正则语言。正确的正则文法描述了所有此类语言的逆向,也就是说,也正是正则语言。
如果允许混合左-正则和右-正则规则,我们仍然有线性语法,但不一定是正则语法。
在上面,左正则规则是V->Wa 形式的规则(右正则,V->aW 形式)。
【讨论】:
我想如果我解释language 和grammar 之间的区别,您的查询将自动得到解决。
language 是一组字母表上的一组字符串,它们满足编码为语法的某些规则,而
Grammars 用于生成语言。
所以基本上grammars表示一个字符串的语法规则,可以用语法的开始符号生成的字符串集合称为Language的Language
【讨论】: