编译原理实验报告-词法分析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理实验报告-词法分析

+*编译原理课程实验报告 实验1:词法分析 姓名 院系 软件学院 学号 任课教师 陈鄞老师 指导教师 郭勇老师 实验地点 软件学院三楼机房 实验时间 2016/10/23/星期日 实验课表现 出勤、表现得分 实验报告 得分 实验总分 操作结果得分 一、需求分析 得分 要求:阐述词法分析系统所要完成的功能 词法分析是编译的第一个阶段,主要任务是读入源程序的输入字符,将它们组成词素,生成并输出一个词法单元序列,每个词法单元对应于一个词素。 在本词法单元中 标识符(由大小写字母、数字以及下划线组成,但必须以字母或者下划线开头) 关键字(①类型关键字:整型、浮点型、布尔型、记录型;②分支结构中的if和else;③循环结构中的do和while;④过程声明和调用中的关键字) 本词法分析器可以识别C语言的2个关键字其中包括char,int,short,long, float,double,bool,enum,struct,if,else,do,while,switch,case,continue,for, void,goto,extern,const,typedef,union,static,auto,register,default,sizeof, return,signed,unsigned,volatile。 运算符(①算术运算符;②关系运算符;③逻辑运算) 本词法分析器可以识别的运算符 “ * ” 乘法运算符;“ / ” 除法运算符;“ % ” 取余运算符 “ + ” 加法运算符;“ - ” 减法运算符 左移运算符; 右移运算符、=、、= 关系运算符 “ == ” 等于运算符; “ != ” 不等于运算符 “ ” 按位与运算符 “ ∧ ” 按位异或运算符 “ | ” 按位或运算符 “” 逻辑与运算符 “ || ” 逻辑或运算符” ! “ 非运算符=、 +=、 -=、 *=、 /=、 %=、 =、 ^=、 |=、 =、 = 赋值运算符。 本词法分析器可以识别的 {,},[,],(,),,,;,.,=,?,: 常数(无符号整数和浮点数,包括科学计数法,字符串常数等) 注释(/*……*/形式) 八进制数和十六进制数 字符常数 1)标识符的正则定义: letter_ - [a-zA-Z_] digit - [0-9] id - letter_(letter_|digit)* 说明关键字的正则定义与标识符是一样的但是为了区别关键字和标识符我采取初始化时就将各个关键字保留起来识别时先进行判断是不是关键字如果不是关键字再进行判断是不是标识符 2)运算符的正则定义: operator - + | - | * | / | += | -= | *= | /= | % | ++ | -- | != | == | | | = | = | | | ^ | | | | | || | ! 3) 界符的正则定义: Boundary - { | } | [ | ] | ( | ) | , | ; | : | ? | ~ 4)常数的正则定义 digit - [0-9] digits - digit digit* number - digits (.digits)? (E [+-]? digits)? 5)注释的正则定义 NOTE - /*other*/ Other指代任意字符6)八进制数和 OCT - 0(1|2|3|4|5|6|7)(0|1|2|3|4|5|6|7)* HEX- 0x(1|…|9|a|…|f) (0|…|9|a|…|f)* (2)1)标识符和关键字的转换图 2)运算符的转换图 说明:因为运算符过多,本出的转换图只给出部分,其他可类似构造。 3)界符的转换图 4)常数的转换图 有问题。 5)注释的转换图 6)八进制的转换图: 十六进制的转换图: 字符常量的转换图: 注:状态1到状态3的letter是a-z的字母 状态2到3的letter’是指可以构成转义字符的字母,比如a,t,b等。 三、系统设计 得分 要求:分为系统概要设计和系统详细设计。 系统概要设计:给出必要的系统宏观层面设计图,如系统框架图、数据流图、功能模块图等以及相应的文字说明。 先给出系统的总体数据流图: 本词法分析器主要针对C语言的源程序进行识别,可以通过在输入区写入程序,也可以通过文件导入的方式导入程序

文档评论(0)

整理王 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档