在编译原理中,产生式的推导可以细分为 *=> "星推导"和 +=> "加推导",
那么这两个分别是什么意思呢?
其实,'*' 和 '+' 这两个符号是来自正则表达式的,正则表达式是什么大家可以先不了解,弄懂这个问题暂时只需要知道 '*' 和 '+' 这两个符号的意思就可以了。
符号 * :[1, n) 1到多
符号 + :[0, n) 0到多
则, *=> "星推导" 为对产生式进行1到多次推导; +=> "加推导" 为对产生式进行0到多次推导。
【举例】
(1)v +=> w:意为产生式左端的 v 经过1到多次推导后能得到右端的 w
(2)v * => w: 意为产生式左端的 v 经过0到多次推导后能得到右端的w(其实,
就是比第(1)条多了一种情况,即 v= w,当 v= w 时,v不需要推导即可得到w,所以推导的次数为0)