将词法、语法、代码生成等实验组合成一个大的编译程序.docVIP

将词法、语法、代码生成等实验组合成一个大的编译程序.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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函数,如果不是,进行出

文档评论(0)

yaobanwd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档