编译原理实验报告 4.docx
《编译原理实验报告 4.docx》由会员分享,可在线阅读,更多相关《编译原理实验报告 4.docx(13页珍藏版)》请在冰豆网上搜索。
编译原理实验报告4
实验四语义分析实验报告
一、程序调试过程
(一)、语法调试过程,经过格式调整后,对程序进行调试,发现没有错误。
(二)、逻辑调试过程
在完成语法调试过程后,根据实验参考资料提供的输入,得到如下输出结果:
这与实验参考资料里面提供的输出结果不符,因此说明存在逻辑错误。
这一输出结果显示程序只是完成了词法分析,并没成功完成语法分析和语义分析,同时没有输出符合要求的三地址指令。
对程序做了如下修改:
1、While(ch=='')改为while(ch==''||ch=='\n'||ch=='\t')
2、char*expression(void);
charprog[200],token[8];改为
char*expression(void);
charprog[200],token[9];
3、voidscaner()
{
m=0;
for(n=0;n<8;n++)token[n]='\0';改为
voidscaner()
{
m=0;
for(n=0;n<9;n++)token[n]='\0';
token数组的最小大小应该设置为9,因为在rwtab数组中的6个关键字中最大长度是8,而在字符串的结尾有一个结束标记‘\0’,因此token数组的实际大小要比最大字符串的大小至少大1,即为9(8+1)。
实验结果:
二、流程图