北邮大三上-编译原理-语法分析实验报告

上传人:桔**** 文档编号:473356999 上传时间:2023-04-14 格式:DOC 页数:14 大小:932KB
返回 下载 相关 举报
北邮大三上-编译原理-语法分析实验报告_第1页
第1页 / 共14页
北邮大三上-编译原理-语法分析实验报告_第2页
第2页 / 共14页
北邮大三上-编译原理-语法分析实验报告_第3页
第3页 / 共14页
北邮大三上-编译原理-语法分析实验报告_第4页
第4页 / 共14页
北邮大三上-编译原理-语法分析实验报告_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《北邮大三上-编译原理-语法分析实验报告》由会员分享,可在线阅读,更多相关《北邮大三上-编译原理-语法分析实验报告(14页珍藏版)》请在金锄头文库上搜索。

1、编译原理第四章语法分析班级: 09211311学号:姓名: schnee专业资料目录1.实验题目和要求.22.递归调用预测分析实现自顶向下分析(方法1) .31.22.33.33.LR 实现 自底向上分析(方法三).61.DFA.62.LR.73.4.3LR.84.11专业资料1. 实验题目和要求题目 :语法分析程序的设计与实现。实验内容 :编写语法分析程序,实现对算术表达式的语法分析。要求所分析算术表达式由如下的文法产生。EET|ET|TT T*F|T/F|F F id | ( E) | num实验要求 :在对输入表达式进行分析的过程中,输出所采用的产生式。方法 1:编写递归调用程序实现自顶

2、向下的分析。方法 2:编写 LL(1)语法分析程序,要求如下。(1) 编程实现算法 4.2 ,为给定文法自动构造预测分析表。(2) 编程实现算法 4.1,构造 LL(1)预测分析程序。方法 3:编写语法分析程序实现自底向上的分析,要求如下。(1) 构造识别所有活前缀的 DFA 。(2) 构造 LR 分析表。(3) 编程实现算法 4.3 ,构造 LR 分析程序。方法 4:利用 YACC 自动生成语法分析程序,调用LEX 自动生成的词法分析程序。专业资料2. 递归调用预测分析实现自顶向下分析(方法1)(1) 消除文法左递归。文法改写为:ETE E TE | TE |TFT T *FT|/FT|Fi

3、d | ( E) | num(2) 画出状态图 得F:化简得专业资料F:(3) 预测分析程序的实现说明定义函数error() 为错误处理子程序。定义函数forward_pointer()为指向输入串的指针前进一位的相关子程序。定义字符cur_token 为当前记号,即语法分析时的终结符。对应三个非终结符,各定义一个子程序。主函数从开始符出发。源程序专业资料专业资料3. LR 实现 自底向上分析(方法三)(1) 构造识别所有活前缀的 DFA。构造扩展文法EEEET|ET|TT T*F |T/F |F F id | ( E) | numFIRST 和 FOLLOW集如下ETFFIRSTid, (,

4、 numid, (, numid, (, numFOLLOW$,),+,-$,),+,-,*,/$,),+,-,*,/构造识别所有活前缀的DFA 如下专业资料(2) 构造 LR 分析表。状态EET(1)TT * F(4)Fid(7)EET(2)TT / F(5)F(E)(8)ET(3)TF(6)Fnum(9)actiongoto+-*/idnum()$ETF0s4S6S51231s7s8acc2r3r3s9s10r3r33r6r6r6r6r6r6专业资料4r7r7r7r7r7r75s4s6s511236r9r9r9r9r9r97s4s6s51238s4s6s51339s4s6s51410s4s6s51511s7s8s161612r1r1s9s10r1r113r2r2s9s10r2r214r4r4r4r4r4r415r5r5r5r5r5r516r8r8r8r8r8r8(3) 编程实现算法 4.3 , 构造 LR 分析程序。专业资料专业资料专业资料专业资料(4) 运行结果截图:输入符号串为id + id,即记号流为4 0 4 时的运行结果输入符号串为(id+id)*num/(id-num), 即记号流为token=6, 4, 0, 4, 7, 2, 5, 3, 6, 4, 1, 5, 7;时的运行结果

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 演讲稿/致辞

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号