计算机编译原理实验生成四元式序列Word格式文档下载.docx

上传人:b****2 文档编号:181413 上传时间:2023-04-28 格式:DOCX 页数:8 大小:42.29KB
下载 相关 举报
计算机编译原理实验生成四元式序列Word格式文档下载.docx_第1页
第1页 / 共8页
计算机编译原理实验生成四元式序列Word格式文档下载.docx_第2页
第2页 / 共8页
计算机编译原理实验生成四元式序列Word格式文档下载.docx_第3页
第3页 / 共8页
计算机编译原理实验生成四元式序列Word格式文档下载.docx_第4页
第4页 / 共8页
计算机编译原理实验生成四元式序列Word格式文档下载.docx_第5页
第5页 / 共8页
计算机编译原理实验生成四元式序列Word格式文档下载.docx_第6页
第6页 / 共8页
计算机编译原理实验生成四元式序列Word格式文档下载.docx_第7页
第7页 / 共8页
计算机编译原理实验生成四元式序列Word格式文档下载.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

计算机编译原理实验生成四元式序列Word格式文档下载.docx

《计算机编译原理实验生成四元式序列Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机编译原理实验生成四元式序列Word格式文档下载.docx(8页珍藏版)》请在冰点文库上搜索。

计算机编译原理实验生成四元式序列Word格式文档下载.docx

编程实现生成四元式的语法分析程序,掌握的结合语法分析实现翻译方案的思路和方法。

实验内容:

实验输入:

输入任意的赋值语句表达式;

实验输出:

相应的四元式序列。

测试实例:

输入表达式

1.a=((b+c)*d–e/f)*2

2.q=((x*x+w)-(y/y-e))*r

实验代码:

#include<

stdio.h>

stdlib.h>

#defineMAX100

voidSET_Mul_Div(inti,intm);

voidSET_Add_Sub(intj,intm);

voidprint();

 

intm=0;

intcount=0;

chartempvar='

A'

;

inttemp;

charstring[MAX];

//用于存放表达式

intmain()

{

intp[MAX];

charch;

intc=-1,q=0;

printf("

请输入赋值语句:

\n"

);

while((ch=getchar())!

='

\n'

{

string[m++]=ch;

if(ch=='

||ch=='

+'

-'

*'

/'

count++;

elseif(ch=='

('

{

p[++c]=m-1;

}

)'

q=m-1;

SET_Mul_Div(p[c],q);

//从左括号处理到又括号

SET_Add_Sub(p[c],q);

temp=(int)tempvar-1;

tempvar=(char)temp;

string[p[c]]=string[m-1]=tempvar;

c--;

temp=(int)tempvar+1;

/********调用生成四元式的函数********/

print();

/*********判断是否成功**********/

if(count==0)

Successful!

else

Wrong!

"

system("

pause"

}

voidSET_Mul_Div(inti,intm)//处理乘除运算

{

for(i++;

i<

=m-1;

i++)

if(string[i]=='

||string[i]=='

(%c%c%c%c)\n"

string[i],string[i-1],string[i+1],

tempvar);

string[i-1]=string[i]=string[i+1]=tempvar;

count--;

}

voidSET_Add_Sub(intj,intm)//处理加减运算

j++;

for(;

j<

j++)

if(string[j]=='

||string[j]=='

string[j],string[j-1],string[j+1],tempvar);

string[j-1]=string[j]=string[j+1]=tempvar;

/*打印*/

voidprint()

inti;

for(i=0;

i++)//处理乘除运算

string[i],string[i-1],string[i+1],tempvar);

}

intj;

for(j=0;

j++)//处理加减运算

intk;

for(k=0;

k<

k++)//处理赋值运算

if(string[k]=='

temp=(int)tempvar--;

(%c%c%c)\n"

string[k],string[k+1],

string[k-1],tempvar);

string[k-1]=tempvar;

实验结果:

实验总结:

通过本次实验我完成生成四元式的语法分析程序,掌握的结合语法分析实现翻译方案的思路和方法。

本次实验还是遇到许多困难,通过上网查看以及查看许多书籍,最终还是完成了本次试验,还是收获挺大的。

但是实验中还存在着许多不足,如规则的顺序,first集合的求解等,还需不断完善。

实验评语:

该学生在本次试验中完成生成四元式的语法分析程序,基本掌握的结合语法分析实现翻译方案的思路和方法,但是程序在一些细节及特殊文法的处理上还需要进一步完善,如编程时注意编程风格:

空行的使用、注释的使用、缩进的使用,如果遇到错误的表达式,应输出错误提示信息等。

实验成绩

教师签字

如有侵权请联系告知删除,感谢你们的配合!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2