求大神写出该文法的first集跟follow集.急求
来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/08/29 09:42:26
求大神写出该文法的first集跟follow集.急求
E→E+T|T
T→T*F|F
F→P^F|P
P→(E)|I
如题.
E→E+T|T
T→T*F|F
F→P^F|P
P→(E)|I
如题.
最后一个是P推出(E)或什么,空集么?
first:
E = {(,^,*,+,空}
T = {(,^,*,空}
F = {(,^,空}
P = {(,空}
follow:
E = {$,+,)}
T = {*,$,+,)}
F = {*,$,+,)}
P = {^,*,$,+,)}
很高兴为你解答,希望能够帮助到你.基础教育团队祝你学习进步!
不理解就追问,理解了请采纳!
再问: 最后P推出的是(E)跟终结符i。。。。结果还一样么? 主要是求问这个文法的预测分析文法是怎么样的?
再答: 那就不一样了。如果不存在左递归: first: E = {(,i} T = {(,i} F = {(,i} P = {(,i} follow: E = {$,+,)} T = {*,$,+,)} F = {*,$,+,)} P = {^,*,$,+,)} 在构造预测分析表时对于每一条规则,只有终结符属于这条规则的选择集时就把这条规则填入此终结符与相应非终结符交界处就可以了。 当然,你在做的时候填我给出的答案肯定是错误的。因为文法中本身存在两个直接左递归: E→E+T T→T*F 所以你应当先引入新的非终结符构造等价的文法,然后再求first集和follow集,最后给出预测分析表。
first:
E = {(,^,*,+,空}
T = {(,^,*,空}
F = {(,^,空}
P = {(,空}
follow:
E = {$,+,)}
T = {*,$,+,)}
F = {*,$,+,)}
P = {^,*,$,+,)}
很高兴为你解答,希望能够帮助到你.基础教育团队祝你学习进步!
不理解就追问,理解了请采纳!
再问: 最后P推出的是(E)跟终结符i。。。。结果还一样么? 主要是求问这个文法的预测分析文法是怎么样的?
再答: 那就不一样了。如果不存在左递归: first: E = {(,i} T = {(,i} F = {(,i} P = {(,i} follow: E = {$,+,)} T = {*,$,+,)} F = {*,$,+,)} P = {^,*,$,+,)} 在构造预测分析表时对于每一条规则,只有终结符属于这条规则的选择集时就把这条规则填入此终结符与相应非终结符交界处就可以了。 当然,你在做的时候填我给出的答案肯定是错误的。因为文法中本身存在两个直接左递归: E→E+T T→T*F 所以你应当先引入新的非终结符构造等价的文法,然后再求first集和follow集,最后给出预测分析表。