《编译原理》 实验报告
2008 年 12 月 13 日
姓名
孙丽君
班 级
06 行知计
算机网络技
术
学 号
06202135
课程
名称
编译原理
实验项目
名 称
语义分析
指导教师
郑豪
一、实验目的:
通过上机实习,加深对语法制导翻译原理的理解,掌握将语法分析所识别的语法成分变
换为中间代码的语义翻译方法.
二、实验原理(可以流程图的形式出现,加以文字说明)
采用递归下降语法制导翻译法,对算术表达式、赋值语句进行语义分析并生成四元式序
列。
算法思想
1 设置语义过程
(1) emit(char *result,char *arg1,char *op,char *ag2)
该函数功能是生成一个三地址语句送到四元式表中。
四元式表的结构如下:
struct {char result[8];
char ag1[8];
char op[8];
char ag2[8];
}quad[20];
(2) char *newtemp()
该函数回送一个新的临时变量名,临时变量名产生的顺序为 T1,T2,….
Char *newtemp(void)
{
char *p;
char m[8];
p=(char *)malloc(8);
k++;
itoa(k,m,10);
strcpy(p+1,m);
p[0]=’t’;
return(p);
}
2.主程序示意图如图 c.10 所示。
评论1