编译原理实验报告二递归下降语法分析程序

编译原理实验报告二递归下降语法分析程序

ID:8963702

大小:341.50 KB

页数:8页

时间:2018-04-13

编译原理实验报告二递归下降语法分析程序_第1页
编译原理实验报告二递归下降语法分析程序_第2页
编译原理实验报告二递归下降语法分析程序_第3页
编译原理实验报告二递归下降语法分析程序_第4页
编译原理实验报告二递归下降语法分析程序_第5页
资源描述:

《编译原理实验报告二递归下降语法分析程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、编译原理实验报告实验名称:编写递归下降语法分析程序实验类型:验证型实验指导教师:专业班级:姓名:学号:电子邮件:实验地点:实验成绩:日期:201年5月25日一、实验目的通过设计、调试递归下降语法分析程序,实现用词法分析从源程序中分出各种单词并对词法分析程序提供的单词序列进行语法检查和结构分析,熟悉并掌握常用的语法分析方法。明确语法分析器的功能,在词法分析的基础上进一步分析程序;加深对课堂教学的理解;提高语法分析方法的实践能力;通过本实验,应达到以下目标:1、掌握递归下降的结构模型。2、掌握语法分析的实现方法。3、上机调试编出的语法分析程序。二、实验过

2、程有了第一次的经验,这次还是先画出流程图。流程图如下:三、实验结果语法分析实验成功。赋值时少写数字:缺少括号时:附(txt文档内容):程序运行后写入的:四、讨论与分析这个程序是在实验一的基础上写的,用的递归下降的方法。不止能识别,还能判断一些语法的正误。刚看书上附录的代码时,头都大了,觉得自己完成不了。但是真正一步一步看下去,画出了流程图,就很清晰明白了。一个函数嵌套一个函数,一步一步往细处走,刚开始是大体轮廓,然后就深入,直到最低层的判断。书上的程序还是有一些漏洞,比如要写多个语句时,if,for,while在语句内不能加括号,不然只能分析至第一个

3、,遇到“}”就结束了,所以在txt文件里写程序代码的时候要注意不能加{},这样才可以全部printf出来。五、附录:关键代码(给出适当注释,可读性高)全部代码附vc++,这里粘贴主程序,以及各类函数。intTESTparse();intTESTscan();intprogram();intcompound_stat();intstatement();intexpression_stat();intexpression();intbool_expr();intadditive_expr();intterm();intfactor();intif_sta

4、t();intwhile_stat();intfor_stat();intwrite_stat();intread_stat();intdeclaration_stat();intdeclaration_list();intstatement_list();intcompound_stat();#include#includeintTESTscan();intTESTparse();FILE*fin,*fout;voidmain(){intes=0;es=TESTscan();if(es>0)printf("词法分

5、析有错!编译停止!");else{printf("词法分析成功!");}if(es==0){es=TESTparse();if(es==0)printf("语法分析成功!");elseprintf("语法分析错误!");}}六、实验者自评这个实验比第一个有难度,是在第一个完成的基础上进行的。把这里面的递归和嵌套搞明白了,整个程序就好写了。感觉还可以加一些东西,比如这个程序识别类型只能是int整型,可以加上char,float,double等。在语句里可以多加一些常用的,dowhile,scanf,printf,等。

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

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

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