- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
将词法、语法、代码生成等实验组合成一个大的编译程序
郑州轻工业学院
课程设计说明书
题目: 将词法、语法、代码生成等实验组合成一个大实验
姓 名:
院 (系): 计算机与通信工程学院
专业班级: 计算机科学与技术10-01
学 号:
指导教师: 马吉明
成 绩:
时间: 2013年6月 17 日至 2013 年 6 月21日
郑州轻工业学院
课 程 设 计 任 务 书
题目 将词法、语法、代码生成等实验组合成一个大实验
专业、班级 计算机科学与技术10-01 学号
姓名
主要内容
? 自选一种常见高级语言为背景,对其进行简化.例如只包括整型常数和其四则运算以及相应的赋值语句,转移语句,条件语句和最简单的输入输出语句等.编制一个包括必要处理阶段(词法分析、语法分析、语义分析、代码生成)简化又完整的编译程序。
基本要求
(1)写出符合给定的语法分析方法的文法及属性文法。
(2)完成题目要求的中间代码四元式的描述。?
(3)写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。?
主要参考资料
《程序设计语言编译原理》陈火旺编著 国防工业出版社
《编译原理》吕映芝 张素琴 蒋维杜编著 清华大学出版社
完 成 期 限: 2013 年 6 月 21日
指导教师签名:
课程负责人签名:
年 月 日
目录
1绪论 2
1.1设计目的 2
1.2设计要求 2
1.2.1 算法过程 2
1.2.2主流程图 2
1.3设计内容 3
1.3.1题目 3
1.3.2内容 3
2总体设计 3
2.1算法描述 4
2.2函数说明和数据结构 4
3详细设计与实现 5
3.1词法分析 5
3.2语法分析 7
3.3代码生成器 9
3.4 结果 9
4参考文献 11
5心得体会 11
6附录代码 11
1绪论
1.1设计目的
《编译原理》是理论与实践并重的课程,而其实验课要综合运用所学的多门课程的内容,用来完成一个小型编译程序。从而巩固和加强对词法分析、语法分析、语义分析、代码生成和报错处理等理论的认识和理解;培养学生对完整系统的独立分析和设计的能力,进一步培养学生的独立编程能力。
1.2设计要求
1.2.1 算法过程
词法分析程序 ( 语法分析程序 ( 语义分析程序 (编译器。不断完善,不断改进。渐变的过程。
1.2.2主流程图
1.3设计内容
1.3.1题目
将词法、语法、代码生成等实验组合成一个大实验
1.3.2内容
涉及词法分析、自下而上语法分析程序的实现:SLR(1)分析器的实现以及生成中间代码。
2总体设计
2.1算法描述
语法分析阶段的基本任务是将词法分析阶段产生的二元组作为输入,根据语言的语法规则,识别出各种语法成分,并判断该单词符号序列是否是该语言的一个句子。
在语法分析阶段,采用自上而下的递归下降分析法,根据递归下降分析函数编写规则来编写相应的函数,在各个函数的分析过程中调用词法分析程序中的扫描程序,发出“取下一个单词符号”的命令,以取得下一个单词符号的语法分析。
词法分析和语法分析的整体设计思想可由以下图示表示:
语法分析是在词法分析的基础上加上判断是否符合语法规则的语句。语法分析的基本任务是使用词法分析的结果,使用递归下降算法分析是否符合语法规则,如果符合,则输出“分析成功”,若果不符合,则输出“分析失败”。
2.2函数说明和数据结构
在main函数调用e()函数,如果调用之后返回时,如果((flags[temp]==0)is_right)为真,就输出“分析成功”,否则输出“分析失败”。其中is_right为设定的标志,初值为1,如果在调用子函数的过程中如果有错误,则置is_right为0。
e函数: 调用t函数,调用f函数, 调用p函数,返回后看是否是’+’或’-’,如果是,则调用 e1函数,再调用e2函数,如果不是,进行出错处理,置is_right为0。
e1函数:判断是不是”+”或者“-” 如果是,调用f函数,如果不是,进行出错处理,置is_right为0。
t函数: 调用f函数, 调用p函数,返回后看是否是’*’或’/’,如果是,则调用t1函数,再调用t2函数,如果不是,进行出
您可能关注的文档
最近下载
- Titans系列混合矩阵切换器说明书[汇编].pdf VIP
- 灌区_工程旁站监理方案(3篇).docx VIP
- 浙江省学军、镇海等名校2025年高考模拟命题比赛英语试题试卷含解析.doc VIP
- 05s502图集阀门井图集 .docx VIP
- 青海省泽库县2025年上半年公开招聘辅警试题含答案分析.docx VIP
- C++语言程序设计课后答案(郑莉第4版).pdf VIP
- 大学生人际交往ppt完整版.pptx VIP
- 《飞机结构与系统》全套课件.pptx
- (高清版)DB12∕T 1000-2020 电动自行车消防安全管理规范 .pdf VIP
- 2026届高考英语读后续写 十大语法万能句式 (默写版+背诵版).docx
原创力文档


文档评论(0)