定义 定义4.6
  文法G所产生的语言定义为集合{x|S x,其中S为文法识别符号,且x∈VT*}。可用L(G)表示该集合。
  从定义4.6看出两点:第一,符号串x可从识别符号推出,也即x是句型。第二,x仅由终结符号组成,即x是文法G的句子。也就是说,文法描述的语言是该文法一切句子的集合。
  考虑例4.1的文法G,有两条产生式(规则):(1)S→0S1和(2)S→01,通过对第一个产生式使用n-1次,然后使用第2个产生式一次,得到:
  S0S100S110n-1S 1n-10n1n
是不是L(G)中的元素仅是这样的串(0n1n)?是的,这可以由下面的讨论证明。在使用了第二个产生式后,发现句型中S的个数减少了一个。每次使用第一个产生式之后,S的左端多一个0,右端多一个1,S的个数不变。因此,使用了 S→01之后,就再也没有S留在结果串中了。由于两个产生式都是以S为左端,所以为生成句子,仅能按下列次序使用产生式:即使用第一个产生式若干次,然后使用第二个产生式。因此L(G)={0n1n | n≥1}。
  例4.2的文法G的句子是字母字符打头的、字母字符和数字字符构成的串。这就是程序设计语言中用于表示名字的标识符。
定义 定义4.7
  若L(G1)=L(G2),则称文法G1和G2是等价的。
  也就是说,如果两个文法定义的语言一样,则称这两个文法是等价的。
  例如文法G[A]:
  A→0R
  A→01
  R→A1
  和例4.1的文法等价。