 |
练习 |
|
若有文法G3的产生式为:
(1) S→aSd
(2) S→Ac
(3) A→aS
(4) A→b
参考答案:
用产生式(3)、(4)中右部替换产生式(2)中右部的A,文法变为:
(1) S→aSd
(2) S→aSc
(3) S→bc
(4) A→aS
(5) A→b
对(1)、(2)提取左公共因子得:
S→aS(d|c)
引入新非终结符A′后变为:
(1) S→aSA′
(2) S→bc
(3) A′→d|c
(4) A→aS
(5) A→b
显然,原文法G3中非终结符A变成不可到达的符号,产生式(4)、(5)也就变为无用产生式,所以应删除。
此外也存在某些文法不能在有限步骤内提取完左公共因子。 |
|