没有合适的资源?快使用搜索试试~ 我知道了~
语义分析及中间代码生成程序设计原理与实现技术--实验报告及源代码 北京交通大学.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 130 浏览量
2022-06-17
18:11:09
上传
评论
收藏 706KB DOC 举报
温馨提示
语义分析及中间代码生成程序设计原理与实现技术--实验报告及源代码 北京交通大学
资源推荐
资源详情
资源评论
!"#$ !%& '%((( )*+ ,- . #( /%0 %(
- 1 --/( ! ! 2*
3%%%%%3%456178 98 8." 8: -
-;3 ;/
语义分析及中间代码生成程序设计原理与实现技术
XXX 1028XXX2 计科 1XXX 班
1. 程序功能描述
完成以下描述赋值语句和算术表达式文法的语法制导生成中间代码四元式的过程。
说明:终结符号为用户定义的简单变量即标识符的定义。
2. 设计要求
()给出每一产生式对应的语义动作;()设计中间代码四元式的结构(暂不与符
号表有关)。()输入串应是词法分析的输出二元式序列,即某算术表达式“实验项目一”
的输出结果。输出为输入串的四元式序列中间文件。()设计两个测试用例(尽可能完
备),并给出程序执行结果四元式序列。
3. 主要数据结构描述:
本程序采用的是算符优先文法,文法以及算符优先矩阵是根据第四次实验来修改
的,所以主要的数据结构也跟第四次差不多,主要为文法的表示,集和
集以及算符优先矩阵:
算符优先矩阵采用二维字符数组表示的:
!""#算符优先矩阵
< !; < 3! 3 $; 2= . ;) ; 3%%9>8/*
> !+ 3 . + <! ;;2/-.-? -
<! 8 / ! ! ! @1A
;+3 >
struct info{
char left;
vector<string> right;
vector<char> first;
vector<char> last;
};
!"#$ !%& '%((( )*+ ,- . #( /%0 %(
- 1 --/( ! ! 2*
3%%%%%3%456178 98 8." 8: -
-;3 ;/
4. 程序结构描述:
本程序一共有 $ 功能函数:
%&'()#获取文法
%&'*+#打印文法
%&',-+#求 和
%&'!.#求算符优先矩阵
%&')#测试文法
+!* /#比较两个运算符的优先级 0
%&'&- +&1+%(+%(#打印四元式
+&*) &*++/#定义四元式计算方法
5. 实验代码
详见附件
6. 程序测试
6.1 功能测试
程序运行显示如下功能菜单:
选择打印文法:
< !; < 3! 3 $; 2= . ;) ; 3%%9>8/*
> !+ 3 . + <! ;;2/-.-? -
<! 8 / ! ! ! @1A
;+3 >
!"#$ !%& '%((( )*+ ,- . #( /%0 %(
- 1 --/( ! ! 2*
3%%%%%3%456178 98 8." 8: -
-;3 ;/
选择构造 集和 集:
选择构造算符优先矩阵:
< !; < 3! 3 $; 2= . ;) ; 3%%9>8/*
> !+ 3 . + <! ;;2/-.-? -
<! 8 / ! ! ! @1A
;+3 >
!"#$ !%& '%((( )*+ ,- . #( /%0 %(
- 1 --/( ! ! 2*
3%%%%%3%456178 98 8." 8: -
-;3 ;/
6.2 文法测试
测试 1:1+2*3
< !; < 3! 3 $; 2= . ;) ; 3%%9>8/*
> !+ 3 . + <! ;;2/-.-? -
<! 8 / ! ! ! @1A
;+3 >
!"#$ !%& '%((( )*+ ,- . #( /%0 %(
- 1 --/( ! ! 2*
3%%%%%3%456178 98 8." 8: -
-;3 ;/
测试 2:2+3+4*5+(6/2)
7. 学习总结
本次实验完成了语义及中间代码生成的设计原理与实现,所采用的方法为算符优
先分析方法, 首先根据文法求出此文法的 集和 集,然后根据他们求
出此文法的算符优先矩阵。由于此文法和第四次文法基本相同,只是多了一条赋值语
句,所以采用的规则和第四次基本相同。在分析阶段,每当遇到有规约的项目,判断
一下,打印出此部运算的四元式,这样一步一步分析,知道输入的算术表达式计算分
析完毕。
由于本次实验部分代码和第四次实验的代码比较相似,只需增加一点四元式的分
< !; < 3! 3 $; 2= . ;) ; 3%%9>8/*
> !+ 3 . + <! ;;2/-.-? -
<! 8 / ! ! ! @1A
;+3 >
剩余21页未读,继续阅读
资源评论
老帽爬新坡
- 粉丝: 92
- 资源: 2万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功