- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于SNL语言编译器的面向对象开发
文件状态:
[ ] 草稿
[ ] 正式发布
[√] 正在修改 文件标识: 基于SNL语言编译器的面向对象开发 当前版本: 1.0.0.0 作 者: 完成日期: 2010.6.20
开发流程
参与者 起止日期 备注 2010.03 -- 2010.04 词法分析阶段 2010.04 -- 2010.05 语法分析阶段 2010.05 -- 2010.06 语义分析阶段 2010.06 -- 2010.06 编译器测试
目 录
一. 文档介绍 1
1.1 文档目的 1
1.2 文档范围 1
1.3 读者对象 1
1.4 参考文献 1
二. 开发环境及运行环境说明 2
三. 需求分析 2
3.1 总体需求 2
3.1.1 编译器界面要求 2
3.1.2 编译器功能要求 2
3.2 系统总体功能设计 3
3.2.1编译程序的组成 3
3.2.2对源语言SNL的分析 3
3.2.3基于SNL语言编译器的实现 4
3.2.4各模块的概要设计 4
四. 详细设计 5
4.1 词法分析模块 5
4.2 语法分析模块 8
4.3 语义分析模块 10
五. 面向对象UML设计 14
5.1 SNL编译器用例图 14
5.2 SNL编译器类图 14
5.3 SNL编译器状态图 16
5.4 SNL编译器时序图 16
5.5 SNL编译器活动图 17
5.6 SNL编译器协作图 19
5.7 SNL编译器包图 19
六. SNL编译器测试 19
6.1 单元测试 19
6.1.1 模块间调用测试 19
6.1.2 主要类调用测试 19
6.1.3 接口函数测试 20
6.1.4 界面测试 20
6.2 功能测试 21
6.2.1 等价类表 21
6.2.2 测试用例 21
7. 小组开发心得 22
一. 文档介绍
1.1 文档目的
本文档主要对基于SNL语言的面向对象开发过程中词法分析、语法分析、语义分析中的类设计、接口设计、界面设计、编码等做出了统一的规定,同时给出了面向对象设计的完整过程。它是开发人员,测试人员编码及测试的重要参考依据。
1.2 文档范围
本文档包含以下几个部分:
1. 文档介绍
2. 开发环境及运行环境说明
3. 需求分析
4. 详细设计
5. 面向对象UML设计
6.SNL编译器测试
7.小组开发心得
1.3 读者对象
本文档的主要读者包括:
1. SNL编译器的设计人员:包括模块设计人员
2. SNL编译器的系统开发人员:包括编码人员
3. SNL编译器的测试人员
1.4 参考文献
[1] 刘磊,金英,张晶,张荷花.《编译程序的设计与实现》[M].北京:高等教育出版社,2004
[2] 金成植.《编译原理与实现》[M].北京:高等教育出版社,2004
二. 开发环境及运行环境说明
开发语言:C++
界面制作:MFC
开发平台:VS 2008
面向对象UML设计工具:PowerDesigner12.5
版本控制:SVN
文件生成工具:JartoExe
单元测试工具:Junit3.8
三. 需求分析
3.1 总体需求
经过调研及小组讨论“SNL编译器”的用户需求有两方面,分别为界面要求及功能要求。
3.1.1 编译器界面要求
“SNl编译器”的窗口界面分为三部分;最上部分为菜单栏,包括文件、单步执行、小组信息等三个按钮,其中文件按钮细分为打开、保存、关闭;单步执行按钮细分为词法分析,语法分析。中间部分为程序显示,最下面为进行词法和语法分析后的结果显示。
3.1.2 编译器功能要求
从菜单栏中点击单步执行中的词法分析时显示词法分析结果,点击语法分析时显示语法树,如果程序有错则可以显示错误信息,点击语义分析,显示语义分析结果。
3.2 系统总体功能设计
3.2.1编译程序的组成
编译程序通常包括:词法分析、语法分析、语义分析、中间代码生成、中间代码优化、目标代码生成。如图1所示。由于时间有限,本编译器只做前三部分。
图1
3.2.2对源语言SNL的分析
词法:
1. SNL语言的字符表::=a-z|A-Z|0-9|+|-|*|/||=|(| )|[| ]|.|;|EOF|空白字符|{| }|’
2. 单词的巴克斯范式
标识符 ::=字母 { 字母 | 数字 }
无符号整数 ::=数字 { 数字 }
单字符分界符 ::= + | - | *| / | ( | ) | [ | ] | ; | . | | = | EOF | 空白字符
双字符分界符 ::=: =
注释头符号 ::={
注释结束符号 ::=}
字符标示符 ::=′
数组下标界限符 ::=..
字母 ::= a-z|A-Z
数字 ::= 0-9
语法:
文档评论(0)