网站大量收购独家精品文档,联系QQ:2885784924

编译原理课程设计报告as.doc

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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; //单

文档评论(0)

beoes + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档