编译原理实验报告《LL(1)语法分析器构造》(推荐文档) 联系客服

发布时间 : 星期六 文章编译原理实验报告《LL(1)语法分析器构造》(推荐文档)更新完毕开始阅读4f0191bb53d380eb6294dd88d0d233d4b04e3f44

(4)构造分析表

(5)分析符号串 匹配成功的情况:

13

匹配失败的情况

五、思考和体会

1、 编写的LL(1)语法分析器应该具有智能性,可以由用户输入任意文法,不需要指定终

结符个数和非终结符个数。而是由分析器自己预处理得到 例如:

14

2、语法分析器应该能够消除同一左部的规则含有多个左递归的情况。并且要能够处理文法中有括号的情况,例如B::=(a|tsa)B,将其处理为B::=aB,B::=tsaB 例如:E::=E+T|T

T::=t|Ta|Ttsa(这里存在两个左递归)

3、构造FIRST和FOLLOW集时可以根据书上方法的思想,但不必完全一样。我的方法是在规则有限的情况下,设置最大推导步数为100,那么循环100次所有的FIRST集和FOLLOW集也就确定了。这个思想同样运用于判断一个非终结符是否可以推导为空,不必去用规则一个一个带入,只要循环足够多的次数,empty数组也就不再更新了。

15