编译原理实验报告-语义分析.doc
《编译原理实验报告-语义分析.doc》由会员分享,可在线阅读,更多相关《编译原理实验报告-语义分析.doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、. .编译原理课程实验报告实验3:语义分析XX玉院系软件学院学号1113710304任课教师鄞指导教师实验地点软件学院三楼机房实验时间2021年11月19日实验课表现出勤、表现得分实验报告得分实验总分操作结果得分一、需求分析得分要求:阐述语义分析系统所要完成的各个功能,并给出如下语言成分所对应的语义动作变量说明def_stmttype id array.type = type.type; array.name=id.name; array.length = type.length; array.dimension = 0; array.arri = new Set(int) array var
2、s.type = type.type; vars.length = type.length vars ;vars ,id array.type = vars.type; array.name = id.name; array.length = vars.length; array.dimension = 0; array.arri = new Set(int) array vars1.type=vars.type; vars1.length = vars.length vars1vars array int array1.type = array.type; array1.name = arr
3、ay.name; array1.length = array.length; array1.dimension = array1.dimension +1; array1.arri = array.arri U int.value array1array new Record(array.type, array.name, array.length, offset, array.arri ); offset += array.lengh赋值S id := E p := lookup(id.name);gen( p := E.addr)E E1 + E2 E. addr := newtemp;g
4、en(E.addr := E1.addr + E2.addr)E E1 * E2 E.addr := newtemp;gen(E.addr := E1.addr * E2.addr)E E1 E.addr := newtemp;gen(E.addr := uminus E1.addr)E (E1) E.addr := E1.addr E id E.addr := lookup(id.name);分支S if B then S1 else S2B.true := newlabel();B.false := newlabel();S1.next := S.next;S2.next := S.nex
5、t;S.code :=B.code | label(B.true) | S1.code |gen(goto,S.next) | label(B.false) | S2.code循环S while B do S1S.begin:= newlabel();B.true := newlabel();B.false := S.next;S1.next := S.begin;S.code:=label(S.begin)|B.code|label(B.true)|S1.code|gen(goto, S.begin)二、概要设计得分要求:给出系统概要设计,以及必要的系统宏观层面设计图,如系统框架图、数据流图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 实验 报告 语义 分析
限制150内