- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理课程设计报告as
目录
一、开发工具和?运行环境 ……………………………3
二、系统需求分?析………………………………………3
三、系统详细设?计………………………………………6
四、系统实现 …………………………………………11
五、调试 ……………………………………………25
六、系统开发总?结……………………………………30
七、附录和参考?资料 ………………………………31
开发工具和?运行环境
开发工具:Micro?soft Visua?l Studi?o c++ 6.0
运行环境:CPU为P?4 1.0GHz以?上,内存512?M或者更多?,硬盘至少5?0G。
二、系统需求分?析
1.概要
编译程序完?成从源程序?到目标程序?的翻译工作?,是一个复杂?的整体的过?程。从概念上讲?,一个编译程?序的整个工?作过程是划?分成阶段进?行的,每个阶段将?源程序的一?种表示形式?转换成另一?种表示形式?,各个阶段进?行的操作在?逻辑上是紧?密连接在一?起的。一般将编译?过程划分成?词法分析,语法分析,语义分析,中间代码生?成,代码优化和?目标代码生?成六个阶段?。
词法分析是?编译的第一?个阶段,它的主要任?务是从左至?右逐个字符?的对源程序?进行扫描,产生一个个?单词序列,用以语法分?析。执行词法分?析的程序称?为词法分析?程序或扫描?程序,它所输出的?单词符号常?采用以下二?元式表示:(单词种别,单词自身的?值)。
2.功能需求
根据C语言?的说明语句?形式,手工构造一?个对说明语?句进行分析?的词法分析?程序。该程序能对?从键盘输入?形如:“const? count?=10,sum=81.5,char1?=’f’,strin?g1=”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.程序流程图?
开始输入常量说
开始
输入常量说?明串
判断con?st
识别标识符?
判断‘=’
识别常量值?
当前符号
为‘;’
结束
为‘,’
打印输出
报错
三、系统详细设?计
重要数据定?义数据结构?定义:
1): 基本数据类?型和运算符?定义
typed?ef enum {
_unsi?gned=0, /*无符号整数?*/
_resu?nsign?ed,/*余留无符号?整数*/
_deci?mal, /*十进制小数?*/
_resd?ecima?l, /*余留十进制?小数*/
_exp, /*指数部分*/
_inte?xp, /*整指数*/
_rese?xp, /*余留整指数?*/
_op, /*操作符*/
_iden?tifie?rs,/*标识符*/
_char?, /*字符*/
_stri?ng, /*字符串*/
_bool? /*bool类?型*/
}Statu?sSet;
2): 二元式输出?定义
typed?ef struc?t _Word?Type
{
Int type; //单
您可能关注的文档
最近下载
- GBT12474-2008 空气中可燃气体爆炸极限测定方法.pdf
- 【四川】2025年中考英语仿真模拟测试题(含答案).docx VIP
- 学堂在线行云流水——工科的中文写作(清华)章节作业答案.docx
- (新教材)粤教版五年级下册科学2.13网上学习:身边的发酵食品课件.pptx VIP
- 《SketchUp三维辅助设计》课件——05 SketchUp基本编辑工具.pptx VIP
- 云天课件-中职《机械基础》第十章-气动传动与液压传动(动画版)(栾学钢、赵玉奇、陈少斌).ppt VIP
- 全国农产品地理标志产品列表.docx VIP
- 《SketchUp三维辅助设计》课件——04 SketchUp基本绘图工具.pptx VIP
- 华为公司战略规划和落地方法之:五看三定工具解析.pptx
- 《SketchUp三维辅助设计》课件——03 SketchUp基本操作方法.pptx VIP
文档评论(0)