张增明-0543042176-编译原理课程设计-副本简析.doc

张增明-0543042176-编译原理课程设计-副本简析.doc

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理课程设计报告 课题名称: c-minus 编译器__________ 提交文档学生姓名: 张增明 提交文档学生学号: 0543042176 同组 成 员 名 单: 无 指导 教 师 姓 名: 杨秋辉 指导教师评阅成绩: 指导教师评阅意见: . . 提交报告时间: 2007 年 12 月 4 日 目录 编译原理课程设计报告 1 1. 课程设计目标 3 2. 分析与设计 3 2.1 程序设计思路 3 2.2 系统体系结构 4 2.3数据结构设计 5 2.3.1 各数据结构使用介绍 5 2.3.2 程序中各数据结构的声明 7 2.4 设计类 8 2.4.1 TokenType.java 8 2.4.2 TokenProcess.java 8 2.4.3 FirstSet.java 8 2.4.4 FollowSet.java 9 2.4.5 ParsingTable.java 9 2.4.6 ParsingTreeNode 10 2.4.7 ParsingTree.java 10 2.4.8 TreeFrame.java 11 2.4.9 Controller.java 11 2.5 重要函数流程图 12 2.5.1 FirstSet类 getFirstSet( ) 函数 12 2.5.2 FollowSet类 getFollowSet( ) 函数 13 2.6 程序测试流程设计 14 3. 程序代码实现 15 3.1 C-minus.l 15 3.2 TokenType.java 18 3.3 TokenProcess.java 19 3.4 FirstSet.java 20 3.5 FollowSet.java 22 3.6 ParsingTable.java 27 3.7 ParsingTree.java 29 3.8 TreeFrame.java 32 3.9 Controller.java 35 3.10 ParsingTreeNode 类 39 4. 测试结果 39 4.1 测试数据选择 39 4.2 测试结果分析 41 5. 总结 46 5.1 收获 46 5.2 特色 46 5.3 不足 46 1. 课程设计目标 本课程设计是实现c-minus编译器的前两个部分,即词法分析和语法分析。 要求能够掌握编译原理的基本理论,,理解了编译程序的基本结构,掌握了编译各阶段的基本理论和技术,掌握了编译程序设计的基本理论和步骤.,增强编写和调试高级语言源程序的能力。 并且能够掌握词法分析、语法分析的基本概念和实现方法,能够用给定的c-minus语言文法变换成可以进行LL(1)分析的LL(1)文法,并自动由程序生成其对应的First 集和Follow集,以及分析表,并且能够将给定的c-minus源程序进行词法和语法编译,并最终生成其对应的分析树。 2. 分析与设计 2.1 程序设计思路 系统采用面向对象的设计思想,用Java语言实现。整个系统的实现分三个步骤:词法分析、文法转换和语法分析。 词法分析 所谓词法分析就是将用C-minus语言编写好的源程序解析成一个个编译器可以识别的tokens ,这部分工作是由 Parser Generator软件实现的,我所做的只是编写Parser Generator的输入文件(见3.1节C-minus.l),然后通过Parser Generator生成具体的Java语言的词法分析器。 文法转换 文法转换是将所给的C-minus文法转化为可以进行LL(1)分析的LL(1)文法,这部分的转换分为两个步骤,第一步是将原来非LL(1)文法中的直接的左递归和左因子转化为对应的LL(1)文法的形式,第二个步骤是在第一个步骤的基础之上将间接的左递归和左因子转

文档评论(0)

123****6648 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档