- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中间代码生成实验指导
1.文法及LR(1)分析表
文法使用包含加法、乘法及括号的文法,如图1.1所示(未消除左递归)。
该文法的拓广文法已存入文件Bnf.txt中,供语法分析程序调用,读取产生式信息。其Action表已存入LR1.lr1。
产生式对应语义动作:
E(E(1)+T: {E.Place=NewTemp; Gen(+, E(1).Place, T.Place, E.Place);}
E(T: {E.Place=T.Place;}
T(T(1)*F: {T.Place=NewTemp; Gen(*, T(1).Place, F.Place, T.Place);}
T(F: {T.Place=F.Place;}
F((E): {F.Place=E.Place;}
F(i: {F.Place=Entry(i);}
2.总控程序
编程在语法分析基础上完成,在用产生式进行归约时,根据所用产生式,产生一定的动作。
请将语法分析时所作程序的LR1Analysis()函数中的内容拷贝到新程序中相应位置,然后增加语义动作部分代码。
3.数据结构说明
从编程角度考虑,数据结构与语法分析的数据结构相比没有变化。
4.可能调用的函数
4.1 产生临时变量
在main()函数中,增加了临时变量链表WORDNODE *pTemp,该链表在调用LR1Analysis()时传入该函数,用于存放产生的临时变量。
函数WORDNODE *NewTemp(WORDNODE *pTempTail)用于产生一个临时变量,入口参数pTempTail是链表pTemp的尾节点,返回值是新创建的节点。
4.2 压入符号的变化
语法分析中,符号栈的每个元素应为如下结构:
struct CHARNODE
{
char cCur; // 当前符号
WORDNODE *pWord; // 单词节点
};
在中间代码生成中,该结构没有变化,但意义略有变化。语法分析中,当cCur为VN时,pWord为NULL,即不对应任何单词,这是通过调用PushChar()函数,第二个参数传入NULL实现的。
但在语法制导翻译中,文法中的VN有属性Place,这是一个指向单词值的指针。该指针可能指向词法分析器中分析出的单词,也可能指向一个临时变量。因此,在调用PushChar()时第二个参数有所变化。
如在用r1归约时,第二个参数应为新产生的临时变量的指针;在用r2进行归约时,第二个参数应为符号栈弹出的栈顶元素的单词指针;用r5归约时,则应该是弹出的第二个符号对应的单词指针(第一个和第三个是左括号和右括号,第二个是E的单词指针)。
4.3 四元式
InitMidCode():四元式初始化,在语法分析前初始化时调用。
void Gen(char Op, WORDNODE *pArg1, WORDNODE *pArg2, WORDNODE *pResult):生成一个四元式。
void PrintMidCode():打印出所产生的四元式,这个函数在main()函数中已经调用。
图1.1 实验所用文法
您可能关注的文档
- 论文格式要求解读.doc
- 云南省首届技工杯技能大赛解说.doc
- 关于小学语文学科示范基地圆通小学一次走向专业听评课的研训.doc
- 货物需求一览表摘要.doc
- 华蓥市城市管理局洒水车、压缩式垃圾车采购项目摘要.doc
- 暨南大学媒体实验教学示范中心创新实验作品立项摘要.doc
- 作文进步谁最快!解析.ppt
- 天津市高等教育自学考试课程考试大纲选编.doc
- 《微机原理及应用》实验指导书创新.doc
- 每周一条名言警句或一首诗词解读.doc
- 考点解析-人教版八年级上册物理机械运动《运动的描述》综合练习试题(详解).docx
- 考点解析-人教版八年级上册物理机械运动《运动的描述》达标测试试题.docx
- 考点解析-人教版八年级上册物理机械运动《运动的描述》综合训练试题(解析卷).docx
- 考点解析-人教版八年级上册物理机械运动《运动的描述》达标测试试卷(详解版).docx
- 考点解析-人教版八年级上册物理机械运动《运动的描述》综合练习试题(解析版).docx
- 考点解析-人教版八年级上册物理机械运动《运动的描述》达标测试试卷.docx
- 考点解析-人教版八年级上册物理机械运动《运动的描述》综合练习试题(含答案解析).docx
- 考点解析-人教版八年级上册物理机械运动《运动的描述》综合练习试题(详解版).docx
- 考点解析-人教版八年级上册物理机械运动《运动的描述》综合练习试题(含解析).docx
- 考点解析-人教版八年级上册物理机械运动《运动的描述》综合练习试卷(含答案详解).docx
最近下载
- 并网光伏电站项目工程现场电气二次施工方案.doc
- 英语新课标背景下:非纸笔测试在小学英语期末评价中的实践研究.pdf VIP
- 液体伤口敷料产品技术要求标准2023版.docx VIP
- 股市实战绝技汇总篇(精华).doc VIP
- 历年行情的十大牛股.doc VIP
- 安徽省六校联考暨安徽六校教育研究会2026届高三入学素质检测-物理试卷答案.docx VIP
- 基于Ansys CFX的风扇叶片双向流固耦合分析.docx VIP
- (高清版)DB1307∕T 334-2020 蛋鸡无抗养殖技术规范.pdf VIP
- 中小学教育班班通系统校级解决方案.doc VIP
- 涉税检举奖励制度的运行问题...于68份裁判文书的考察分析_金超.pdf VIP
文档评论(0)