2014-03-27 20 views
2

鉴于以下语法,为什么Z说是不可空为空性在语法分析表

X -> Y | a 
Y -> c | epsilon 
Z -> X Y Z | d 
+0

如果只有一个非终端可以派生空字符串,则它是可以为空的。通过对推导长度的归纳很容易证明,来自'Z'的所有派生都是非空的。 – rici

回答

3

因为它不包含epsilon(空)。例如,Y可以为空,因为Y可以定义为epsilon。由于X,因为X被定义为Ya。如果我们将Y设置为epsilon,那么X也是epsilon

有趣的是,如果ž被定义为XY,则存在用于ž的可能性也可为空的,因为Xÿ可以同时设置为epsilon(如以上)从而使žepsilon,但由于ž必须ž,最终必须在终端END END d(为什么?),Z不能为空。