编译原理试验报告三语义分析程序

上传人:飞*** 文档编号:3504325 上传时间:2017-08-06 格式:DOC 页数:6 大小:137KB
返回 下载 相关 举报
编译原理试验报告三语义分析程序_第1页
第1页 / 共6页
编译原理试验报告三语义分析程序_第2页
第2页 / 共6页
编译原理试验报告三语义分析程序_第3页
第3页 / 共6页
编译原理试验报告三语义分析程序_第4页
第4页 / 共6页
编译原理试验报告三语义分析程序_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《编译原理试验报告三语义分析程序》由会员分享,可在线阅读,更多相关《编译原理试验报告三语义分析程序(6页珍藏版)》请在金锄头文库上搜索。

1、编译原理实验报告实验名称: 编写语义分析程序 实验类型: 设计型实验 指导教师: 专业班级: 姓名: 学号: 电子邮件: 实验地点: 实验成绩: 日期:201 年 5 月 26 日一、 实验目的通过设计、调试语义分析程序,实现在词法分析和语法分析的基础上加上一些逻辑的东西。通过加入并查找符号表来判断程序语句是否合理,熟悉并掌握常用的语法分析方法。明确语义分析器的功能,在语法分析的基础上进一步分析程序;加深对课堂教学的理解;提高语义分析方法的实践能力;通过本实验,应达到以下目标:1、掌握符号表的结构,创建,查找。3、上机调试编出的语义分析程序。二、 实验过程通过了解本程序的意图,发现不必画出流程

2、图。因为该次实验就是在实验二的基础上加入符号表的内容,然后写入,printf出。在分析的时候看一下是否重复声明,是否声明过,符号表是否溢出,写入符号表,最后将它printf出来。三、实验结果语义分析实验成功。 Txt文档内容和实验二一样。在a2.txt里的内容:四、讨论与分析这个程序是在实验二的基础上写的,理解了实验二,这个写起来相对容易很多,只是加一些内容进去就好,很快写完了。 五、附录:关键代码(给出适当注释,可读性高)全部代码附vc+,这里主要附符号表的内容,即在实验二的基础上加入的。int name_def(char *name);#define maxvartablep 500 /定

3、义符号表的容量/符号表结构体structchar name8;int address;vartablemaxvartablep;int vartablep=0,lablep=0,datap=0;/插入符号表动作 int name_def(char *name)int i,es=0;if(vartablep=maxvartablep)return(21); /符号表溢出for(i=vartablep-1;i=0;i-)if(strcmp(vartablei.name,name)=0) /判断重复es=22;break;if(es0)return(es);strcpy(vartablevartab

4、lep.name,name); /插入vartablevartablep.address=datap; /地址datap+;vartablep+;return(es);/查询符号表返回地址int lookup(char *name, int *paddress)int i,es=0;for(i=0;ivartablep;i+)if(strcmp(vartablei.name,name)=0) /找到*paddress=vartablei.address;return(es);es=23; /变量没有声明return(es);六、实验者自评这个实验写得比较快,理解起来也较容易,加厚符号表后,只是多了三个判断内容,判断符号表是否溢出,变量重复定义,变量未声明。然后再每个语句后面写入,再printf出,不是很费脑子。发现只要之前下好功夫,后面再接着来就会比较轻松。所以在实际中我们要一步一步走踏实,扎实把基础打好,再往上加内容,就方便很多。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号