计算机编译原理实验报告.docx
《计算机编译原理实验报告.docx》由会员分享,可在线阅读,更多相关《计算机编译原理实验报告.docx(20页珍藏版)》请在第一文库网上搜索。
1、编译原理实验报告实验一词法分析设计一、实验功能:1、对输入的IXt文件内的内容进行词法分析:2、由文件流输入IesiJxi中的内容,对文件中的各类字符进行词法分析3、打印出分析后的结果;二、程序结构描述:(源代码见附录)1、分别利用k,siu,s2,s3构造关键字表,分界符表,算术运算符表和关系运 算符表。2、bool isletter()用来判断其是否为字母,是则返回IrUe,否则返回false;bool isdigit()用来判断其是否为数字,是则返回IrUe,否则返回false;bool iscalcu()用来判断是否为算术运算符,是则返回IrUe,否则返回false;bool rese
2、rve(string a)用来判断某字符是否在上述四个表中,是则返向InIe,否则返 回 false;void concat()用来连接字符串;void getn()用来读取字符;void getb()用来对空格进行处理;void retract()某些必要的退格处理;int analysis()对一个单词的单词种别进行具体判断;在主函数中用switch决定输出。3| file.txt -记事本文件(F)编辑格式(O)查看(V) W(H)if i = O then i +; a = 3b%);富F:cpp词法分析器.exe单词*分析结果如下美二元序列类型then+ +3b 5.0) 4, Er
3、ror Error 关标天常关OW:天ErEr八芬键识系匿识术识系rorr字符运字符运符运rO B-Tnvp 1%E,E-?符符算算位置1,31,41,61,72,22,32,4)2,5TG(2) G-+TG-TG(3) G-(4) T-FS(5) S-*FSFS(6) S-(7) F-(E)(8) F-i二、程序结构:SlringM用来定义分析表:CharinPUl50用来存放输入的句子;vector analysis用来存放分析栈;bool flag = true用来判断是否成功的标志;reference(char a,char i)查询分析表,其中a为分析栈顶符号,i为输入串符号; pr
4、o(char a,char in)用以做出具体的分析;LL(I)依测分析程序流程三、实验结果:运行程序,输入需要分析的语句,结果如下:3 F:cppLL(l).exeD 5) IlWlB入语句,以*结束:ii*iH分析栈RE剩余输入串i+i*itt所用产生式辘化ttGTi*i*ittE-TGPOP,PUSHTGMGSFi*i*ittT-FSPOP,PUSHFSKGSii+i*i#F-iPOP,PUSHiItGS+i*ittGETNEXTRG*i*ittS-POPBGT +ii#G-+TGPOP,PUSH+TGItGTi*ittGETNETJtGSFi*ittT-FSPOP,PUSHFSttGS
5、iii#F-iPOP,PUSHiUGS*ittGETNEXTMGSF*iS-*FSPOP,PUSH*FSJtGSFi#GETNEXTUGSiittF-iPOP,PUSHiNGSItGETNETttGttS-POPttttG-POP分析己王部元成Process exitedafte* 6.336seconds with returnvalue 0三氢键士或.J四、实验总结:本次试验用代码实现了 LL(I)文法,在过程中对于非终结符向终结符转换的过程中出 现了一些问题,之后通过向同学请教得已解决。本代码中的分析表写在了主函数中,可以说本程序只对这一个文法有效,这也是这个程 序的局限性。实验三LR(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 编译 原理 实验 报告
