计算机编译原理实验生成四元式序列#._第1页
计算机编译原理实验生成四元式序列#._第2页
计算机编译原理实验生成四元式序列#._第3页
计算机编译原理实验生成四元式序列#._第4页
计算机编译原理实验生成四元式序列#._第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、i nt i, i nt m): void SET_Add_Sub( int j, i nt m): void prin t (); int m=0; int coun t二0; char tempvar=, A; int temp; char stri ngMAX; 用于存放表达式 int main() in t pMAX; char ch; int c=-l, q=0; printf (请输入赋值语句:n); while (ch = getchar ()n) P+c二mT; else 辻(ch二二),) q=m-l; SET_Mul_Div(pc,q) ;/从左括号处理到又括号 SET_A

3、dd_Sub(pc q); temp二(i nt)tempvar-1: tempvar二(char)temp; stri ngpc=stri ngm-1=tempvar; c_; temp=(i nt)tempva 叶 1: tempvar二(char)temp; 调用生成四元式的函数郴林比*/ prin t(); if(co un t=0) printf(Successful !n); else printf(Wrong ! ); prin tf(zzn,z); system(pause); prin tf C (%c %c %c %c)n,z, stri ngi, stri ngi-l,

4、stri ngi+l, tempvar); stri ngi-l=stri ngi=stri ngi+l=tempvar; coun t; temp=(i nt)tempva 叶 1; tempvar=(char)temp; j+; for(;jv=m-l;j+) i.f(stri ngj=, +J stri ngj=-) prin tf C (%c %c %c %c) n,?, stri ngj, stri ngj-l, stri ngj+l, tempvar): stri ngj-l=stri ngj=stri ngj+l=tempvar; coun t一一; temp=(i nt)tem

5、pva 叶 1; tempvar=(char)temp; /*打印*/ void prin t () int i; for(i=0;i=m-l;i+) 处理乘除运算 if (stri ngi=,stri ngi=,/,) prin tf C(%c %c %c %c)n stri ngi,stri ngi-l,stri ngi+l, tempvar): stri ngil=stri ngi=stri ngi+l=tempvar; coun t一一; temp=(i nt)tempva 叶 1: tempvar=(char)temp; int j; for(j=0;jv=m-l;j+) 处理加减运

6、算 if(stri ngj=,: stri ngj二二-) prin tf C(%c %c %c %c)n stri ngj,stri ngj-l,stri ngj+l, tempvar); stri ngj-l=stri ngj=stri ngj+l=tempvar; coun t; temp=(i nt)tempva 叶 1; tempvar二(char)temp; int k; for(20;k=m-l;k+)/ 处理赋值运算 if (stri ngk=,) temp二(i nt)tempvar-; tempvar=(char)temp; prin tf C(%c %c %c) n,st

7、ri ngk,stri ngk+l, stri ngk-l, tempvar); coun t一一; stri ngkl=tempvar: (* X X A) (/ y B) (- e C) (+ w D) (- D c E) (* E r F) (= E q) Succeccful! KT Wee 请箍人賦值语乞: q=(xxx)*w-(y/y*e)r 请按任意健继续 实验总结: 通过本次实验我完成生成四元式的语法分析程序,掌握的结合语法分析实现翻译方 案的思路和方法。本次实验还是遇到许多困难,通过上网查看以及查看许多书籍,最终 还是完成了 本次试验,还是收获挺大的。但是实验中还存在着许多不足,如规则的顺序,first集合的求解等, 还需不断完善。 实验评语: 该学生在本次试验中完成生成四元式的语法分析程序,基本掌握的结合语法分析实现翻译方案 的思路和方法,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论