- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编编译原理课程设计报告as
目录
一、开发工具和运行环境 ……………………………3
二、系统需求分析………………………………………3
三、系统详细设计………………………………………6
四、系统实现 …………………………………………11
五、调试 ……………………………………………25
六、系统开发总结……………………………………30
七、附录和参考资料 ………………………………31
开发工具和运行环境
开发工具:Microsoft Visual Studio c++ 6.0
运行环境:CPU为P4 1.0GHz以上,内存512M或者更多,硬盘至少50G。
二、系统需求分析
1.概要
编译程序完成从源程序到目标程序的翻译工作,是一个复杂的整体的过程。从概念上讲,一个编译程序的整个工作过程是划分成阶段进行的,每个阶段将源程序的一种表示形式转换成另一种表示形式,各个阶段进行的操作在逻辑上是紧密连接在一起的。一般将编译过程划分成词法分析,语法分析,语义分析,中间代码生成,代码优化和目标代码生成六个阶段。
词法分析是编译的第一个阶段,它的主要任务是从左至右逐个字符的对源程序进行扫描,产生一个个单词序列,用以语法分析。执行词法分析的程序称为词法分析程序或扫描程序,它所输出的单词符号常采用以下二元式表示:(单词种别,单词自身的值)。
2.功能需求
根据C语言的说明语句形式,手工构造一个对说明语句进行分析的词法分析程序。该程序能对从键盘输入形如:“const count=10,sum=81.5,char1=’f’,string1=”hj”, max=169;”
的常量说明串进行处理,分析常量说明串中各常量名、常量类型及常量值,并统计各种类型常量个数。
3.设计需求
a.输入的常量说明串,最后以分号作结束标志
b.根据输入串或读入的文本文件中第一个单词是否为“const”判断输入串或文本文件是否为常量说明内容;
c.常量名以字母开头,后跟若干个字母,数字或下划线
d.常量之间以“,”号隔开,也作为常量之间的风格标志
e.判断类型 A:字符型常量定义为放在单引号内的一个字符;
B:字符串常量定义为放在双引号内所有内容
C:整型常量定义为带或不带+、- 号,不以0开头的若干数字的组合;
D:实型常量定义为带或不带+、- 号,不以0开头的若干数字加上小数点再后跟若干数字的组合
f.空格处理:A:出现在常量名之间,如( str 1)报错
B:出现在常量数字之中,如(“23. 32”
其他为符合规则,不处理
g.统计并输出串或文件中包含的各种类型的常量个数,如果同常量名相同,看做覆盖,计数只加一次
h. 以二元组(类型,值)的形式输出各常量的类型和值;
i.根据常量说明串置于高级语言源程序中时可能出现的错误情况,模仿高级语言编译器对不同错误情况做出相应处理。
4.程序流程图
开始输入常量说明串
开始
输入常量说明串
判断const
识别标识符
判断‘=’
识别常量值
当前符号
为‘;’
结束
为‘,’
打印输出
报错
三、系统详细设计
重要数据定义数据结构定义:
1): 基本数据类型和运算符定义
typedef enum {
_unsigned=0, /*无符号整数*/
_resunsigned,/*余留无符号整数*/
_decimal, /*十进制小数*/
_resdecimal, /*余留十进制小数*/
_exp, /*指数部分*/
_intexp, /*整指数*/
_resexp, /*余留整指数*/
_op, /*操作符*/
_identifiers,/*标识符*/
_char, /*字符*/
_string, /*字符串*/
_bool /*bool类型*/
}StatusSet;
2): 二元式输出定义
typedef struct _WordType
{
Int type; //单词类型
char *value;//值
}Word;
3):整数,实数识别状态转换表定义
int m_switchmap[MAXSTATUS][MAXSTATUS]=
{-1,_resunsigned,_exp,_decimal,-1,-1,-1,-1},
{-1,_resunsigned,_exp,_d
您可能关注的文档
最近下载
- 2022年江苏省英语中考自动化考试口语情景对话专练真题.pdf VIP
- NB_T 10072-2018 抽水蓄能电站设计规范.docx
- 2025年党支部书记学习教育专题党课中央八项规定专题党课讲稿(严守中央八项规定精神,争做新时代合格党员;从中央八项规定精神看党员干部的责任与担当).docx VIP
- 检验科生化年终工作总结.pptx VIP
- 新概念英语第一册电子版.pdf VIP
- 蕉内品牌手册.pdf
- 河南普通高中会考化学考题试卷 .pdf VIP
- 医院感染暴发控制指南理论试题及答案.pdf VIP
- 工程项目移交申请单.docx VIP
- [仪器仪表标准]GBT 21117-2007 磁致伸缩液位计.pdf
文档评论(0)