




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
逆波兰中间代码生成程序设计1、 课程设计目的通过编译原理课程设计,加深对语义翻译的理解,了解程序编译具体过程,同时熟练掌握用编程语言来实现编译器的功能。2、 课程设计要求(1)编制一个中间代码生成程序,能将算术表达式(如带有嵌套括号)等翻译成四元组。(2)程序具有通用性,即能接受各种不同的算术表达式等语法成分。(3)有运行实例对于语法正确的算术表达式,能生成四元组序列,并输出结果;对不正确的表达式,能检测出错误。(4)提交实习报告。3、 算法描述算法中利用到3个数组,A数组存放表达式,B为操作符数组,C数组存放逆波兰式。将输入的表达式存储到数组B中,然后将运算对象与运算对象后的运算符之间插入空格并存入数组A中。在A中,若为运算对象,则将运算对象压入到C中;若为运算符,则将其与B中的数据进行优先级比较,大于则插入到B中,小于则将B中运算符插入到C中;最后将数组C中的数据全部输出。4、 程序结构gets(B)Ai+=Bj (TBj+1TBj)&(TBj=0)Ai+= ;Bj=0; Bj=0; 是 否Tch=4B+j=0 是 否Bj0Tch=5 是 否 是Ck+=Bj;Ck+= ;Bj=0; 否TchTchbB+j=ch; 是Tch&Tch0Ck+=Bj;Ck+= ; Bj=0; 是 否puts(C);5、 主要变量说明AN存放表达式BN操作符数组CN存放逆波兰式T256存放运算符及运算对象的优先级char ch,chb用于对运算符和运算对象之间进行比较6、 程序清单#define N 50#define nul 0main()int i=0,j=0,k=0,len;char AN=nul,BN=nul,CN=nul; int T256=nul;char ch,chb;T=1;T+=2;T-=2;T*=3;T/=3;T%=3;T(=4;T)=5;while(1) puts(Input the expression!for example:s=(a+b)*c-d/(e+f); gets(B); len=strlen(B); for(j=0;jTBj)&(TBj=0) Ai+= ; Bj=0; Ai= ; i=0; j=0; len=strlen(A); for(i=0;i0;j-) Ck+=Bj; Ck+= ; Bj=0; j-; else if(TchTchb) B+j=ch; else if(Tch&Tch0;j-) Ck+=Bj; Ck+= ; Bj=0; puts(C); len=strlen(C); for(k=0;klen;k+) Ck=0; i=0; j=0; k=0; len=strlen(A); while(ilen) Ai=0; i+; i=0; puts(Continue? Y or N); ch=getch(); if(ch=y|ch=Y) ; else break;7、 调试情况在调试过程中,我发现如果使用多位数据进行测试的话,两个多位数据放在一起会很难被我们区分开。因此在输出时,我采用空格将所有对象、运算符全部分开,以便于区分。由于课程设计要求的是对所输入的任何运算式都能够转化为逆波兰式,所以在设计的时候,我加入了括号“()”。使程序能够适应+、-、*、/、(、)运算,同时数据可以是数字、字母、小数等。8、 实验结果9、 心得体会通过这次课程设计,不仅使我对编译中间代码的生成有了更加深的了解,而且使我对编译器的工作原理也有了更深层次的认识。在设计程序时,我们应该让我们的程序能够应付尽可能多的输入环境,加强程序的生存能力。当程序的迭代多、层次比较烦乱的时候,我们应该用空格等将我们的程序排列
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 灵性能量智慧修炼课件
- 安全法培训收获课件
- 2025福建三明市教育局华东师范大学附属三明中学招聘紧缺急需专业工作人员18人模拟试卷及答案详解(名师系列)
- 2025广东惠州市惠东县招聘公办学校教师71人(编制)模拟试卷及答案详解(考点梳理)
- 2025会计继续教育(企业纳税实务与技巧)试题及答案
- 2025内蒙古锡林郭勒盟锡盟文体局招募公共服务文化人才志愿者1名模拟试卷及答案详解(各地真题)
- 2025内蒙古选聘自治区特邀行政执法社会监督员考前自测高频考点模拟试题附答案详解(典型题)
- 2025-2030工业清洁设备技术升级与市场拓展战略研究报告
- 2025-2030工业气体市场需求结构变化与供应格局报告
- 2025-2030工业气体分离膜技术发展与应用投资价值评估报告
- 产房考试试题及答案
- 重症自身免疫性脑炎监测与治疗中国专家共识(2024版)解读
- 供餐服务合同协议书模板
- 无偿搭车免责协议书
- 2025-2030年中国电力线载波通信芯片行业市场现状供需分析及投资评估规划分析研究报告
- 窗户改造合同协议书
- 《脑电图的临床应用》课件
- 中国补习班行业市场发展现状及前景趋势与投资分析研究报告2025-2028版
- 《电生理导航系统》课件
- 《局部解剖胸部》课件
- 赛鸽公棚内部管理制度
评论
0/150
提交评论