2012-02-05 138 views
2

我的书给出了类似但有点不同的普通语法和普通语言的解释。 我怀疑这是错误的,是普通语言与正则语法相同的东西吗? 我的书的定义是: 如果所有产品都是V-> aW或V-> Wa,V,W非终端或终端符号,“a”终端符号,则文法是规则的.W也可以是空的或是同样的V.普通语言和普通语法之间的区别

回答

2

形式语法是一套规则,而形式语言是一组字符串。

正则语法是一种形式语法,描述了常规语言。

根据Wikipedia

[T]他离开正规文法产生正是所有正则语言。正确的正则语法描述了所有这些语言的逆转,也就是说正常语言也是如此。

如果允许左规则和右规则的混合,我们仍然有一个线性语法,但不一定是一个常规规则。

在上面,左规则规则的形式为V->Wa(右规则,形式为V->aW)。

1

普通语法和正则语言是两个不同的术语:

  1. 语言是终端码元的有效序列的(可能是无限的)集。
  2. A 语法定义哪些是有效序列。

相同的语言可以用不同的语法类表示(常规,上下文无关等)。 A 语言据说是规则的,如果它可以用常规的语法来表示。另一方面,常规语法总是定义一种常规语言。你发布的是正则语法的定义。

有关更多信息,请参见this Wikipedia post