我的书对常规语法和常规语言给出了类似但稍微不同的解释。 我怀疑这是错的,常规语言与常规语法相同吗? 我的书的定义是: 如果所有产品都是V->,则语法是规则的。带有V,W非终端或终端符号的aW或V-> Wa,“a”终端符号.W也可以是空的或与V相同。
答案 0 :(得分:2)
形式语法是一组规则,而形式语言是一组字符串。
常规语法是描述常规语言的正式语法。
根据Wikipedia:
[T]他离开了常规语法生成所有常规语言。正确的常规语法描述了所有这些语言的逆转,也就是正确的语言。
如果允许混合使用左正则规则和右规则规则,我们仍然会有线性语法,但不一定是常规规则。
在上文中,左侧常规规则是V->Wa
形式的规则(右侧常规,形式为V->aW
)。
答案 1 :(得分:1)
常规语法和常规语言是两个不同的术语:
相同的语言可以用不同类别的语法表示(常规,无上下文等)。 语言如果可以使用常规语法 表示,则称其为常规语言。另一方面,常规语法总是定义常规语言。你发布的是常规语法的定义。
有关详细信息,请参阅this Wikipedia post。
答案 2 :(得分:0)
我想如果我解释了 language
和 grammar
之间的区别,您的查询将自动得到解决。
A language
是在某些字母表上的一组字符串,满足某些编码为语法的规则,而
Grammars
用于生成语言。
所以基本上grammars
表示一个字符串的句法规则,可以用语法的起始符号生成的字符串集合称为Language
的{{1}}>