实现一个小型编译程序 本课程设计任务: 实现一个小型编译程序。 输入:高级语言源程序 输出:四元式程序(必做) 汇编语言程序(选做) 去年做的一个编译器,参考的上机指导,完成了前两个功能
2022-06-19 13:25:07 6KB 编译原理 编译器 pascal
1
用C++语言编写的条件语句编译程序,该程序采用LR1方法,能够将类C语言编写的条件语句进行词法分析,语法分析,语义分析,最后生成该条件语句的四元式形式。其中还包括一份16页的程序设计分析报告。本人编译原理课程设计,拿来和大家分享,程序和报告乃本人原创,仅供大家参考。 Randy
1
一、实验目的 通过上机实习,加深对语法制导翻译原理的理解,掌握将语法分析所识别的语法成分变换为中间代码的语义翻译方法。 二、实验要求 采用递归下降语法制导翻译法,对算术表达式、赋值语句进行语义分析并生成四元式序列。 三、实验的结果验证 1.输入是语法分析后提供的正确的单词串,输出为三地址指令形式的四元式序列。 给出语句串: begin_a:=2+3*4; _x:=(a+b)/c_end# 输出如下三地址指令: (1) t1=3*4 (2) t2=2+t1 (3) a=t2 (4) t3=a+b (5) t4=t3/c (6) x=t4 2.自己任意给出一语句串,输出四元式序列。 要求:将上述2个语句串的执行结果显示保留在实验报告中(拷屏)。 四、算法思想 1、设置语义过程。 (1)emit(char *result,char *ag1,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、函数lrparser 在原来语法分析的基础上插入相应的语义动作:将输入串翻译成四元式序列。在实验中我们只对表达式、赋值语句进行翻译。 五、语义分析程序的C程序。 #include #include #include #include struct {char result[12]; char ag1[12]; char op[12]; char ag2[12]; }quad; char prog[80],token[12]; char ch; int syn,p,m=0,n,sum=0,kk; //p是缓冲区prog的指针,m是token的指针 char *rwtab[6]={"begin","if","then","while","do","end"}; void scaner(); char *factor(void); char *term(void); char *expression(void); int yucu(); void emit(char *result,char *ag1,char *op,char *ag2); char *newtemp(); int statement(); int k=0; void emit(char *result,char *ag1,char *op,char *ag2) { strcpy(quad.result,result); strcpy(参数设置); strcpy(quad.op,op); strcpy(quad.ag2,ag2); cout<
1
用C++语言编写的条件语句编译程序,该程序采用LR1方法,能够将类C语言编写的条件语句进行词法分析,语法分析,语义分析,最后生成该条件语句的四元式形式。其中还包括一份16页的程序设计分析报告。本人编译原理课程设计,拿来和大家分享,程序和报告乃本人原创,仅供大家参考。 Randy
1
c语言中间代码生成器 输入——算术表达式; 输出——语法分析结果及相应的四元式序列
2021-05-31 09:33:47 174KB 表达式中间代码生成 生成四元式
1
编译原理LL(1)原理实现中间代码生成四元式
2021-05-10 15:48:47 6KB LL(I) 中间代码生成
1
编译原理实验,包括词法分析,语法分析,生成四元式
2021-02-07 11:05:11 27KB C java 词法分析 语法分析
1
中间代码生成四元式设计 实验报告,从文件中读入表达式,输出其四元式的结果序列 本程序只能生成赋值语句及算数表达式中间代码的四元式 不能生成逻辑表达式及其他复杂语句中间代码的四元式,其功能还需要进一步完善
2019-12-21 22:22:07 3KB 四元式
1
递归下降分析方法,词法、语法、语义分析生成四元式
2019-12-21 22:15:41 558KB 词法 语法 语义分析 生成四元式
1
实验4.2-目标代码生成-四元式
2019-12-21 22:01:51 676KB 目标代码生成 四元式
1