资源描述:
《北邮大三上-编译原理-语法分析实验报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、WORD格式-专业学习资料-可编辑编译原理第四章语法分析班级:09211311学号:姓名:schnee--学习资料分享----WORD格式-专业学习资料-可编辑目录1.实验题目和要求22.递归调用预测分析实现自顶向下分析(方法1)21.消除左递归⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.22.画状态转移图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯33.编程实现递归调用自顶向下分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.33.
2、LR实现自底向上分析(方法三)61.构造识别所有活前缀的DFA⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.62.构造LR分析表⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.73.编程实现算法4.3,实现自底向上LR分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..84.运行结果截图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.11--学习资料分享----WORD格式-专业学习资料-
3、可编辑--学习资料分享----WORD格式-专业学习资料-可编辑1--学习资料分享----WORD格式-专业学习资料-可编辑1.实验题目和要求题目:语法分析程序的设计与实现。实验内容:编写语法分析程序,实现对算术表达式的语法分析。要求所分析算术表达式由如下的文法产生。EET
4、ET
5、TTT*F
6、T/F
7、FFid
8、(E)
9、num实验要求:在对输入表达式进行分析的过程中,输出所采用的产生式。方法1:编写递归调用程序实现自顶向下的分析。方法2:编写LL(1)语法分析程序,要求如下。(1)编程实现算法4.2,为给定文法自动构造预测分析表。(
10、2)编程实现算法4.1,构造LL(1)预测分析程序。方法3:编写语法分析程序实现自底向上的分析,要求如下。(1)构造识别所有活前缀的DFA。(2)构造LR分析表。(3)编程实现算法4.3,构造LR分析程序。方法4:利用YACC自动生成语法分析程序,调用LEX自动生成的词法分析程序。2.递归调用预测分析实现自顶向下分析(方法1)(1)消除文法左递归。文法改写为:ETE'E'TE'
11、TE'
12、TFT'T'*FT'
13、/FT'
14、Fid
15、(E)
16、--学习资料分享----WORD格式-专业学习资料-可编辑num--学习资料分享----WORD格
17、式-专业学习资料-可编辑2--学习资料分享----WORD格式-专业学习资料-可编辑(2)画出状态图得E:0T1E2E:3+4T5E6T:7F8T9T:1*1F1T1F:14(15E16)17id化简得+-E:0T36*/T:7F813F:14(15E16)17id(3)预测分析程序的实现①说明定义函数error()为错误处理子程序。定义函数forward_pointer()为指向输入串的指针前进一位的相关子程序。定义字符cur_token为当前记号,即语法分析时的终结符。对应三个非终结符,各定义一个子程序。--学习资料分享---
18、-WORD格式-专业学习资料-可编辑--学习资料分享----WORD格式-专业学习资料-可编辑3--学习资料分享----WORD格式-专业学习资料-可编辑主函数从开始符出发。②源程序--学习资料分享----WORD格式-专业学习资料-可编辑--学习资料分享----WORD格式-专业学习资料-可编辑4--学习资料分享----WORD格式-专业学习资料-可编辑--学习资料分享----WORD格式-专业学习资料-可编辑5--学习资料分享----WORD格式-专业学习资料-可编辑3.LR实现自底向上分析(方法三)(1)构造识别所有活前缀的
19、DFA。构造扩展文法E'EEET
20、ET
21、TTT*F
22、T/F
23、FFid
24、(E)
25、numFIRST和FOLLOW集如下ETFFIRSTid,(,numid,(,numid,(,numFOLLOW$,),+,-$,),+,-,*,/$,),+,-,*,/构造识别所有活前缀的DFA如下--学习资料分享----WORD格式-专业学习资料-可编辑--学习资料分享----WORD格式-专业学习资料-可编辑6--学习资料分享----WORD格式-专业学习资料-可编辑(2)构造LR分析表。EET(1)TT*F(4)Fid(7)EET(2)TT/F(
26、5)F(E)(8)ET(3)TF(6)Fnum(9)--学习资料分享----WORD格式-专业学习资料-可编辑状action态+-*/idnum()$0s4S6S51s7s8acc2r3r3s9s10r3r33r6r6r6r6r6r64r7r7r7