问题标题:
【编译原理中FIRSTVT和LASTVT如题E->E+T.T->T*F|F.F->(E)|id求FIRSTVT(T)答案是FIRSTVT(T)={*,(,id}但是我看FIRSTVT集合的定义是FIRSTVT(A)={blA=>b或A=>Bb.....,b属于终结符,B属于非终结符}这样的】
问题描述:
编译原理中FIRSTVT和LASTVT
如题E->E+T
.T->T*F|F
.F->(E)|id
求FIRSTVT(T)
答案是FIRSTVT(T)={*,(,id}
但是我看FIRSTVT集合的定义是
FIRSTVT(A)={blA=>b或A=>Bb.....,b属于终结符,B属于非终结符}
这样的话FIRSTVT(T)的答案不应该是
*,),id吗?书上给的答案是(,*,id
顾雷回答:
1、FIRSTVT(T)=FIRSTVT(T*F)=*;
2、FIRSTVT(T)=FIRSTVT(F)
(1)FIRSTVT(F)=FIRSTVT((E))=(;
(2)FIRSTVT(F)=FIRSTVT(id)=id;
如此,FIRSTVT(T)={*,(,id}。
点击显示
其它推荐