编译原理课程设计

编译原理课程设计

ID:9937333

大小:509.00 KB

页数:34页

时间:2018-05-16

编译原理课程设计_第1页
编译原理课程设计_第2页
编译原理课程设计_第3页
编译原理课程设计_第4页
编译原理课程设计_第5页
资源描述:

《编译原理课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、湖南吉首大学编译原理课程设计文档基于算符优先分析方法的表达式语法分析器年级:2007班级:级计算机科学与技术4班组长:刘思佳组员:欧垚毛群晖袁小仨徐碧红邓文杰孙苗苗顿硕伍小军曾洁孙梁吉顺昌指导老师:段明秀二〇二一年八月二十一日1湖南吉首大学编译原理课程设计文档目录前言1第1章课程设计计划41.1员与工作分配41.2课程计划41.3资源需求4第2章功能需求分析52.1功能需求清单5第3章设计、分析与编码63.1总体设计63.1.1模块划分63.1.2程序分包63.2详细设计73.2.1类图73.3程序流程图93.4分析与编码实现103.4.1表

2、达式文法G[E’]构造算符优先关系表103.4.2根据算符优先表用栈结构来实现算符优先分析133.4.3辅助工具类设计18第4章测试用例及程序截图214.1第一版测试………………………………………………………………………………………………………………214.1第二版测试………………………………………………………………………………………………………………254.2第三版测试28第5章用户使用说明325.1使用步骤32附录1.参考文献33附录2.总结331湖南吉首大学编译原理课程设计文档前言1.摘要编译原理是计算机专业的一门重要专业课,旨在介绍编译

3、程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。算符优先分析法是一种简单直观、特别方便于表达式分析,易于手式实现的方法。算符优先法只考虑算符(广义为终结符号)之间的优先关系,它是一种自底向上的归约过程,但这种归约未必严格按照句柄归约。它是一种不规范归约法。算符优先分析法的关键是比较两个相继出

4、现的终结符号的优先级而决定应采取的动作。要完成算符间的优先级比较,就要先定义各种可能出相继出现的运算符的优先级,并将其表示成矩阵形式,在分析过程中通过查询矩阵元素而得出算符间的优先关系。2.问题描述给出该文法E’→#E#E→E+Q

5、QQ→Q-T

6、TT→T*F

7、F1湖南吉首大学编译原理课程设计文档F→F/M|MM→M^P|PP→(E)|i用算符优先分析法实现对表达式的计算。3.项目开发平台语言:Java开发平台:MyEclipse1湖南吉首大学编译原理课程设计文档第1章课程设计计划1.1组员与工作分配组长:刘思佳资料组:毛群晖,邓文杰,曾洁代码组

8、:刘思佳,孙梁,孙苗苗,顿硕测试组:欧垚,吉顺昌,徐碧红,袁小仨,伍小军1.2课程计划表1.2.1课程设计计划清单序号内容需求计划时间实际时间状态1问题定义对课程设计要求分析6月15日6月15日已完成2查询资料对课程设计做必要的资料查询6月16日-6月17日6月17日已完成3概要设计确定课程设计的总体框架与分包6月18日6月18日已完成4详细设计具体分析设计每个类与接口6月19日-6月20日6月20日已完成5编码实现程序6月21日6月21日已完成6测试并修改测试程序BUG并进行修改6月22日-6月26日6月26日已完成1.3资源需求表1.3.1

9、开发资源序号资源作用占用时间当前可用状态获得途径1MyEclipse平台设计平台贯穿整个设计阶段可用网上下载29湖南吉首大学编译原理课程设计文档第2章功能需求分析2.1功能需求清单表2.1.1需求清单功能编号功能名称备注1键盘输入用户能从键盘输入字符串2表达式切分切分算术表达式,结果存入字符串数组,如:字符串:1.5+3*2#将被切分为{1.5,+,3,*,2,#}3扫描表达式检测是否符合给定的文法4出错处理不符合文法的给出错误提示5计算表达式合法的算术表达式将计算出结果6输出将计算结果输出给用户29湖南吉首大学编译原理课程设计文档第3章设计、

10、分析与编码3.1总体设计3.1.1模块划分该语法分析器可分为以下几个主要模块:1.词法分析并计算模块其中应有一个操作符栈和一个操作数栈,用于分析输入的文法和句子,并提供方法检验该表达式是否为给出的文法,如果是则运算出结果,否则提示错误2.算符优先表构建模块用于构建输入文法的算符优先表,并对其中的算符优先表进行各种操作。3.输入功能模块提供从键盘输入功能。3.1.2程序分包com.op.core该包下为核心类,完成核心功能com.op.util该报为工具包,包含一些输入,字符串处理等程序之间应该保持低耦合,高内聚。包之间的依赖关系为core->u

11、til,核心包依赖于util,util不依赖其他包。29湖南吉首大学编译原理课程设计文档3.2详细设计3.2.1类图com.op.core.Opera

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。