网站大量收购独家精品文档,联系QQ:2885784924

《编译原理》课程设计任务书--小型语言编译器的设计-编译技术的计算机实现.docVIP

《编译原理》课程设计任务书--小型语言编译器的设计-编译技术的计算机实现.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《编译原理》课程设计指导书 一、课程设计的目的 本次课程设计的时间为2周,目的是通过实际的题目如:词法分析、语法分析、代码优化等,使学生了解和掌握编译程序的工作原理,同时培养学生用相关的程序设计语言进行程序设计,实现编译的功能,从而提高学生的综合能力。 二、设计名称:小型语言编译器的设计/编译技术的计算机实现。 三、设计要求 本次课程设计有两种选择:合作完成与独立完成。若选择合作完成,则需自行组合5位学生成为一个小组,小组成员合作完成一个小型编译器(见设计内容题目一)。若选择独立完成,则从设计内容题目二的13个题目中任选一个独立实现。这13个题目,都有一定的工作量,涵盖本课程内容和实际应用相关的主要技术。 四、设计内容 题目一:小型语言编译器的设计。 通过设计、编制、调试一个对于小型语言词法的词法分析程序,加深对词法分析原理的理解,并实现输出单词序列的词法检查和分析。(建议1名学生完成) 设计、编制、调试一个算术表达式的语法及语义分析程序,加深对语法及语义分析原理的理解。(建议1名学生完成) 设计、编制、调试一个布尔表达式的语法及语义分析程序,加深对语法及语义分析原理的理解。(建议1名学生完成) 设计、编制、调试一个条件语句的语法及语义分析程序,加深对语法及语义分析原理的理解。(建议1名学生完成) 设计、编制、调试一个循环语句的语法及语义分析程序,加深对语法及语义分析原理的理解。(建议1名学生完成) 将前5个要求得到的程序合并成一个小型语言的语法制导的三地址代码生成器。(5名学生共同完成) 题目二:下列13个题目任选。 选题说明:可以从下列题目中任选一题,每个题目按难度设定不同的参考分数,上机成绩采用100分制。题目指定的参考分数仅适用于上机程序部分,实验报告成绩有自己的标准。 1.文法的计算机表示 设计要求: 可以使用任何语言来完成,例如:Java、C、C++。 文法中的空字符串统一使用@表示。 包括各种可能出现的文法描述方法。 使用定义描述文法 只用产生式描述文法 用大写字母和小写字母分别表示非终结符和终结符 用带尖括号的和不带尖括号分别表示非终结符和终结符 产生式可以使用-或::=表示的方法 对给定文法判断是乔姆斯基文法中的哪一种文法 文法要求以文本文件方式输入,不同的文法只要修改文件即可。不允许使用键盘输入文法。 将文法中不可到达和不可终止的非终结符去除,化简文法。 参考资源: 《编译原理》,清华大学,吕映芝 参考分数: 完成1~4功能得60分。 完成5,加10分。 完成6,加10分。 2.自动机的形式定义 设计要求: 可以使用任何语言来完成,例如:Java、C、C++。 自动机中的空字符串统一使用@表示。 分别使用定义和状态转换矩阵方法表示自动机,并且两种表示方法可以相互转化。 自动机的状态个数和状态转换函数的个数可以任意指定并随意修改,即可以增加或减少状态或状态转换函数。 判定是确定的自动机还是不确定的自动机。 采用文本文件方式存储自动机,若修改自动机可以仅通过修改该文本文件即可完成。程序可以读取文本文件保存的自动机。 参考资源: 《编译原理》,清华大学,吕映芝 参考分数: 完成1~4,得60分 完成5,加10分 完成6,加10分 3.自动机的图形表示 设计要求: 可以使用任何语言来完成,例如:Java、C++。 自动机中的空字符串统一使用@表示。 自动机的状态个数和状态转换函数的个数可以任意指定并随意修改,即可以增加或减少状态或状态转换函数。 使用状态转换图表示自动机。 要求设计一个具有简单的绘图功能的程序,可以手工绘制自动机。 采用文本文件方式存储自动机,若修改自动机可以仅通过修改该文本文件即可完成。程序可以读取文本文件保存的自动机。 附加要求(可以不完成): 自动机的定义形式、状态转换图和状态转换矩阵三种形式可以相互转化。 参考资源: 《编译原理》,清华大学,吕映芝 相关语言的关于如何绘图的参考书或数据。 参考分数: 完成1~5,得100分 完成6,加10分 4.自动机的确定化和最小化 设计要求: 可以使用任何语言来完成,例如:Java、C++。 文法中的空字符串统一使用@表示。 以文件方式读取自动机。 判断读取的自动机是确定的还是不确定的自动机。 若是不确定的自动机,将自动机确定化。 将确定化后的自动机最小化。 参考资源: 《编译原理》,清华大学,吕映芝 参考分数: 完成1~6,得70分 5.有穷自动机与正规文法的相互转换 设计要求: 可以使用任何语言来完成,例如:Java、C、C++。 文法和自动机中的空字符串统一使用@表示。 以文件方式读取自动机和正规文法。 判断读取的文法是否是正规文法。 完成有穷自动机与正规文法的相互转换。 参考资源: 《编译原理》,清华大学,吕映芝 参考分数: 完成1~5,得70分

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档