计算机编译原理实验生成四元式序列.doc

上传人:F****n 文档编号:101082437 上传时间:2019-09-26 格式:DOC 页数:7 大小:66.50KB
返回 下载 相关 举报
计算机编译原理实验生成四元式序列.doc_第1页
第1页 / 共7页
计算机编译原理实验生成四元式序列.doc_第2页
第2页 / 共7页
计算机编译原理实验生成四元式序列.doc_第3页
第3页 / 共7页
计算机编译原理实验生成四元式序列.doc_第4页
第4页 / 共7页
计算机编译原理实验生成四元式序列.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《计算机编译原理实验生成四元式序列.doc》由会员分享,可在线阅读,更多相关《计算机编译原理实验生成四元式序列.doc(7页珍藏版)》请在金锄头文库上搜索。

1、西北师范大学计算机科学与工程学院学生实验报告学 号专业计算机科学与技术姓名课程名称计算机编译原理班级实验名称生成四元式序列课程类型专业课实验目的:编程实现生成四元式的语法分析程序,掌握的结合语法分析实现翻译方案的思路和方法。实验内容:实验输入:输入任意的赋值语句表达式;实验输出:相应的四元式序列。测试实例: 输入表达式1.a = ( ( b + c ) * d e / f ) * 2 2.q =( ( x * x + w ) - (y / y - e ) ) * r实验代码:#include #include #define MAX 100void SET_Mul_Div(int i,int

2、m);void SET_Add_Sub(int j,int m);void print();int m=0;int count=0;char tempvar=A;int temp;char stringMAX; /用于存放表达式int main() int pMAX; char ch; int c=-1,q=0; printf(请输入赋值语句:n); while(ch = getchar()!=n) stringm+=ch; if(ch=|ch=+|ch=-|ch=*|ch=/) count+; else if(ch=() p+c=m-1; else if(ch=) q=m-1; SET_Mu

3、l_Div(pc,q); /从左括号处理到又括号 SET_Add_Sub(pc,q); temp=(int)tempvar-1; tempvar=(char)temp; stringpc=stringm-1=tempvar; c-; temp=(int)tempvar+1; tempvar=(char)temp; /*调用生成四元式的函数*/ print(); /*判断是否成功*/ if(count=0) printf(Successful!n); else printf(Wrong!); printf(n); system(pause); void SET_Mul_Div(int i,int

4、 m) /处理乘除运算 for(i+;i=m-1;i+) if(stringi=*|stringi=/) printf(%c %c %c %c)n,stringi,stringi-1,stringi+1,tempvar); stringi-1=stringi=stringi+1=tempvar; count-; temp=(int)tempvar+1; tempvar=(char)temp; void SET_Add_Sub(int j,int m) /处理加减运算 j+; for(;j=m-1;j+) if(stringj=+|stringj=-) printf(%c %c %c %c)n,

5、stringj,stringj-1,stringj+1,tempvar); stringj-1=stringj=stringj+1=tempvar; count-; temp=(int)tempvar+1; tempvar=(char)temp; /*打印*/ void print() int i; for(i=0;i=m-1;i+)/处理乘除运算 if(stringi=*|stringi=/) printf(%c %c %c %c)n,stringi,stringi-1,stringi+1,tempvar); stringi-1=stringi=stringi+1=tempvar; coun

6、t-; temp=(int)tempvar+1; tempvar=(char)temp; int j; for(j=0;j=m-1;j+)/处理加减运算 if(stringj=+|stringj=-) printf(%c %c %c %c)n,stringj,stringj-1,stringj+1,tempvar); stringj-1=stringj=stringj+1=tempvar; count-; temp=(int)tempvar+1; tempvar=(char)temp; int k; for(k=0;k=m-1;k+) /处理赋值运算 if(stringk=) temp=(in

7、t)tempvar-; tempvar=(char)temp; printf(%c %c %c) n,stringk,stringk+1,stringk-1,tempvar); count-; stringk-1=tempvar; 实验结果:实验总结:通过本次实验我完成生成四元式的语法分析程序,掌握的结合语法分析实现翻译方案的思路和方法。本次实验还是遇到许多困难,通过上网查看以及查看许多书籍,最终还是完成了本次试验,还是收获挺大的。但是实验中还存在着许多不足,如规则的顺序,first集合的求解等,还需不断完善。实验评语: 该学生在本次试验中完成生成四元式的语法分析程序,基本掌握的结合语法分析实现翻译方案的思路和方法,但是程序在一些细节及特殊文法的处理上还需要进一步完善,如编程时注意编程风格:空行的使用、注释的使用、缩进的使用,如果遇到错误的表达式,应输出错误提示信息等。 实验成绩教师签字中部石漠化综合防治水土保持区,要加强林草植被的保护与恢复,加强山洪地质灾害防治,加强石漠化综合治理,遏制石漠化蔓延,增强区域水土保持能力;东部生物多样性保护水土保持区,要加强自然保护区建设和流域水土流失区综合治理,切实保护生物多样性和特有自然景观,增强森林生态系统功能。

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

当前位置:首页 > 办公文档 > 教学/培训

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