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

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

ID:8929024

大小:96.48 KB

页数:9页

时间:2018-04-12

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

《编译原理课程设计实验报告1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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

2、明表>à<变量表>:<类型>

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<数字>à0

38、1

39、2

40、…

41、9【实验要求】:输入为用该语言所写的源程序文件;输出为记号序列,每个记号显示为二元组(记号名,记号属性值)的形式。输出可以在

42、屏幕上,也可以输出到文件中。不要求建立符号表。在cygwin下用flex和gcc工具将实验调试通过,并能通过例子parser0中testcases目录下的test1.p测试例的测试。【实验参考】:exam1.l和exam2.l。请认真阅读例子,发现错误及时提出。【实验过程】:根据编译原理实验的exam1.l和exam2.l的代码进行修改,添加对一些符号的定义,设计成为一个新的此法分析器,使得改词法分析器能够对实验要求的记号进行识别,识别效果如下:PROGRAMtest;VARi,j,k:INTEGER;f0:REAL;BEGINi:=1;j:=1;k

43、:=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中的内容座位输入进行词法分析得到以下结果:test1.p的内容如下:PROGRAMtest;VARi,j,k:INTEGER;f0:REAL;BEGINi:=1;j:=1;k:=0;f0:=3.2;WHILEk<=100DOBEGINIFj<20THENBEGIN

44、j:=i;k:=k+1;f0:=f0*0.2ENDELSEBEGINj:=k;k:=k-2;f0:=f0/.2ENDENDEND.【实验程序代码】/*把讨厌的注释去掉*/%{#include#defineLT1#defineLE2#defineGT3#defineGE4#defineEQ5#defineNE6#defineWHILE18#defineDO19#defineID20#defineNUMBER21#defineRELOP22#defineNEWLINE23#defineERRORCHAR24#define_PROGRAM

45、25#define_VAR26#define_INTEGER27#define_REAL28#define_END29#define_THEN30#definefenhao31#definemaohao32#definedouhao33#definejiahao34#definechuhao35#definedian36#definechenghao37#definejianhao38#define_BEGIN39#define_ELSE40%}delim[t]ws{delim}+letter[A-Za-z]digit[0-9]id{lette

46、r}({letter}

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

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

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

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