编译原理实验报告词法分析.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文档。上传文档
查看更多
编译原理实验报告词法分析

编译原理实验报告 词法分析器 学院:计算机科学与技术 时间:2012/6/9 问题描述 选择计算机高级程序语言之一 —— C语言,运用恰当的词法分析技术线路,设计和实现其对应的词法分析器 提示:技术线路选择如下两种之一: NFA→DFA→min DFA→程序设计 或 正则文法→NFA→DFA→min DFA→程序设计。 要求:分析器输出结果存入到磁盘文件中,具有出错处理功能。 词法分析阶段是编译过程的第一个阶段,是编译的基础。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。 单词的种别可以用整数编码表示,比如标识符编码为 1,程序最 后输出的形式应为: 关键字 int (2 , int ) 标识符 t_val (1 , t_val) 常量 3.14e+2 (3 , 3.14e+2) 其中,本次实验设计的如下: (1)关键字有34个:分别包括char,int,short,long,signed,unsigned,float,double,const,void,volatile,enum,struct,union,typedef,auto,extern,static,register,if,else,switch,case,default,while,do,for,break,continue,goto,return,sizeof,#include,#define 前面32个是标准C的关键字,后两个是预编译的关键字。 (2)常量分为:小数,整数,浮点数,字符。本次实验中,设计了小数,整数和浮点数,但是都没有包含后面的U,L,UL等标识。而单个字符常量并没有考虑。也就是‘a’表示的并不是对应的数值。 (3)运算符和界符:本次实验设计的运算符和界符很多,基本将所有的运算符都设计进去了。其中包括 +,++,+=, -,-=,-,--, *,*=, /,/=,[,], ,=, , = ,=,==,,=,,=,!=,,,=,~,|,||,|=,%,%=, ,; 但是还是有个别的运算符没有设计进去,比如?:,这是个三目的运算符,设计起来估计很麻烦,所以就没设计,还有就是强制类型转换(类型),取地址,指针*,指针的.运算都没有很好的设计思考,都是直接忽略了。 (4)字符串:实验中并没有考虑字符串的读写,直接将他设计成了标识符 (5)标识符:除了上述说的,还有就是一些不该出现的符号,比如`@#$等,剩下的基本上都是标识符了。 利用该词法分析器完成对源程序字符串的词法分析。输出形式是源程序的单词符号二元式的代码,并保存到文件中。 根据以上的分类与分析,将该语言中的单词符号及种别编码如下表所示。 单词符号及种别编码 单词符号 种别编码 单词符号 种别编码 char 1 * 54 int 2 / 55 short 3 ( 56 long 4 ) 57 signed 5 [ 58 unsigned 6 ] 59 float 7 { 60 double 8 } 61 const 9 , 62 void 10 : 63 volatile 11 ; 64 enum 12 . 65 struct 13 66 union 14 67 typedef 15 = 68 auto 16 = 69 extern 17 == 70 static 18 != 71 register 19 72 if 20 = 73 else 21 74 switch 22 = 75 case 23 76 default 24 77 while 25 = 78 do 26 | 79 for 27 || 80 break 28 |= 81 continue 29 ~ 82 goto 30 ++ 83 return 31 -- 84 sizeof 32 - 85 #include 33 += 86 #define 34 -= 87 ID标识符 40 *= 88 NUM常量 50 /= 89 = 51 %= 90 + 52 ^= 91 - 53 % 92 ? 95 “ 93 ‘ 94 采用的技术路线是正则式→NFA→DFA→min DFA→程序设计 系统设计 l={a~z,A~Z};d={0~9}; 关键字:关键字是最好识别的,他都是由字母组成,在程序中,只要写一个小程序将设计的34个关键字保存在一个string类型的vec

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档