编译原理课程设计实验报告.docx

编译原理课程设计实验报告.docx

ID:50810624

大小:97.12 KB

页数:9页

时间:2020-03-14

编译原理课程设计实验报告.docx_第1页
编译原理课程设计实验报告.docx_第2页
编译原理课程设计实验报告.docx_第3页
编译原理课程设计实验报告.docx_第4页
编译原理课程设计实验报告.docx_第5页
资源描述:

《编译原理课程设计实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、中 国 海 洋 大 学 实 验 报 告  姓名:邓汇星       专业年级:2012级计算机            学号:12020031016        同组人:窦猛专业年级:2012级计算机学号:12020031020  编译原理课程设计实验报告【实验题目】:实验1:用Lex设计词法分析器1【实验目的】:学会用lex设计一个词法分析器。【实验内容】:使用lex为下述文法语言写一个词法分析器。语言文法:<程序>àPROGRAM<标识符>;<分程序><分程序>à<变量说明>BEGIN<语句表>E

2、ND.<变量说明>àVAR<变量说明表>;<变量说明表>à<变量表>:<类型>

3、<变量表>:<类型>;<变量说明表><类型>àINTEGER

4、REAL<变量表>à<变量>

5、<变量>,<变量表><语句表>à<语句>

6、<语句>;<语句表><语句>à<赋值语句>

7、<条件语句>

8、

9、<复合语句><赋值语句>à<变量>:=<算术表达式><条件语句>àIF<关系表达式>THEN<语句>ELSE<语句>àWHILE<关系表达式>DO<语句><复合语句>àBEGIN<语句表>END<

10、算术表达式>à<项>

11、<算术表达式>+<项>

12、<算术表达式>-<项><项>à<因式>

13、<项>*<因式>

14、<项>/<因式><因式>à<变量>

15、<常数>

16、(<算术表达式>)<关系表达式>à<算术表达式><关系符><算术表达式><变量>à<标识符><标识符>à<标识符><字母>

17、<标识符><数字>

18、<字母><常数>à<整数>

19、<浮点数><整数>à<数字>

20、<数字><整数><浮点数>à.<整数>

21、<整数>.<整数><关系符>à<

22、<=

23、=

24、>

25、>=

26、<><字母>àA

27、B

28、…

29、X

30、Y

31、Z

32、a

33、b

34、…

35、x

36、y

37、z

38、<数字>à0

39、1

40、2

41、…

42、9【实验要求】:输入为用该语言所写的源程序文件;输出为记号序列,每个记号显示为二元组(记号名,记号属性值)的形式。输出可以在屏幕上,也可以输出到文件中。不要求建立符号表。在cygwin下用flex和gcc工具将实验调试通过,并能通过例子parser0中testcases目录下的test1.p测试例的测试。【实验参考】:exam1.l和exam2.l。请认真阅读例子,发现错误及时提出。【实验过程】:根据编译原理实验的exam1.l和exam2.l的代码进行修改,添加对一些符号的

43、定义,设计成为一个新的此法分析器,使得改词法分析器能够对实验要求的记号进行识别,识别效果如下:PROGRAMtest;VARi,j,k:INTEGER;f0:REAL;BEGINi:=1;j:=1;k:=0;f0:=3.2;WHILEk<=100DOBEGINIFj<20THENBEGINj:=i;k:=k+1;f0:=f0*0.2ENDELSEBEGINj:=k;k:=k-2;f0:=f0/.2ENDENDEND.【实验结果截图】;程序用flex和gcc编译调试通过后,以test1.p中的内容座位输

44、入进行词法分析得到以下结果:test1.p的内容如下:PROGRAMtest;VARi,j,k:INTEGER;f0:REAL;BEGINi:=1;j:=1;k:=0;f0:=3.2;WHILEk<=100DOBEGINIFj<20THENBEGINj:=i;k:=k+1;f0:=f0*0.2ENDELSEBEGINj:=k;k:=k-2;f0:=f0/.2ENDENDEND.【实验程序代码】/*把讨厌的注释去掉*/%{#include#defineLT1#defineLE2#def

45、ineGT3#defineGE4#defineEQ5#defineNE6#defineWHILE18#defineDO19#defineID20#defineNUMBER21#defineRELOP22#defineNEWLINE23#defineERRORCHAR24#define_PROGRAM25#define_VAR26#define_INTEGER27#define_REAL28#define_END29#define_THEN30#definefenhao31#definemaohao32

46、#definedouhao33#definejiahao34#definechuhao35#definedian36#definechenghao37#definejianhao38#define_BEGIN39#define_ELSE40%}delim[t]ws{delim}+letter[A-Za-z]digit[0-9]id{letter}({letter}

47、{digit})*number{digit}+(.{digit}+)?(E[+-]

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。