- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《编译技术》第八章 拓展资源.doc
北航《编译技术》第八章 代码生成 拓展资源
题目:逆波兰式生成目标代码
逆波兰式,用于编译器的实现,效率高,但是实现的难度相对于四元式,本人认为要高。
#includeiostream?????????????? /* 基本输入输出流 */
#includestack????????????????? /* 运用栈,省去自己再写栈 */
using namespace std;
/***************************************
*???????????????? 数据结构???????????? *
*?????? 逆波兰式== 目标代码?????????? *
***************************************/
/*********************************************
*?? 目标代码指令:LD,ST,ADD,SUB,MUL,DIV *
*?? 相应的数值? :1,? 2,? 3,? 4,? 5,? 6 *
*?? 数据段开始:设置为a-z;单个寄存器??????? *
*?acc为寄存器标志:为0表示为空,非0,被占用*
*********************************************/
char temp=a-1;?????? /* 临时变量a-z?? */
stackchar SEM;?????? /* 语义栈??????? */
int s;???????????????? /* 栈指针??????? */
typedef struct
{
?int op;??????????? /* 操作符对应的数值 */
?char rt;?????????? /* 单个寄存器?????? */
?char num;????????? /* 操作数?????????? */
}ObjType;
ObjType OB[40];??????? /* 目标代码区?????? */
int o_pt=0;??????????? /* 区指针?????????? */
int acc;?????????????? /* 寄存器标志?????? */
char blexp[40];??????? /* 逆波兰式区?????? */
/*************************************
*????????????? 代码区??????????????? *
*************************************/
/*************************************
*?????????? 函数声明???????????????? *
*************************************/
int isop(char);????? /* 判断操作符是否是+-/* */
void build(char);??? /* 根据操作符生成目标代码函数 */
void B_O();??? /* 生成算法 */
char* OpString(int); /* 操作符转化成字符显示 */
void display();?? /* 显示目标代码 */
/*************************************
*??? 判断当前操作符是否是运算符????? *
*?????? 如果是返回相应的正数(3-6)??? *
*?????? 否则返回零?????????????????? *
*************************************/
int isop(char ch)
{
?if(ch==+)
??return 3;
?else if(ch==-)
??return 4;
?else if(ch==*)
??return 5;
?else if(ch==/)
??return 6;
?else
??return 0;
}
/*********************************************
*??????? 目标代码生成表生成目标代码???????? *
*********************************************/
/***************************目标代码生成表****************************************************************
* 操作符W??SEM[s-1]即x1 SEM[s]即x2??acc???OBJ???????????????? ? *
* +-/*??
您可能关注的文档
- 四步法消除SYBRGreen_实时定量RT_PCR中引物二聚体的影响.pdf
- 砖瓦厂安全现状评价所需表格.doc
- 酸化施工HSE两书一表模板(作业计划书).doc
- 北京仁达每周快报之2012年7月第1周(总第74期).pdf
- 酸化施工HSE两书一表模板(作业指导书).doc
- 从ITO靶材废料中回收提取金属铟工艺的研究.pdf
- 图表复习法复习陆地与海洋(地理).doc
- 电子竞赛训练题目.doc
- 图形学考试试题-计算机专业.doc
- 汉鼎咨询研究成果:建筑涂料投资机会及企业IPO上市环境分析.doc
- 第11课《送东阳马生序》同步练习统编版语文九年级下册.docx
- 第16课《我为什么而活着》课件统编版语文八年级上册(共24张PPT).pptx
- 第16课《诫子书》教学设计 统编版语文七年级上册.docx
- 第12课《词四首》同步练习 统编版语文九年级下册(含解析).docx
- 第10课《精神的三间小屋》表格式教学设计 统编版语文九年级上册.docx
- 第14课《诗词三首》教学设计(2课时).docx
- 第24课《诗词曲五首》阶梯训练试题 统编版语文九年级下册(含答案).docx
- 第18课《在长江源头各拉丹冬》教学设计(表格式) 统编版语文八年级下册.docx
- 第12课《与朱元思书》同步练习 统编版语文八年级上册.docx
- 第12课《醉翁亭记》教学设计.docx
最近下载
- 2023-2024学年北京市北京师范大学附属实验中学高二上学期12月月考物理试卷含详解.docx VIP
- 新教科版小学科学四年级上册2.1《感受我们的呼吸》教学设计.docx
- 2021年秋新苏教版五年级上册科学全册教学课件.pptx
- 2024全国青少年“学宪法讲宪法”知识竞赛试题(附含答案).pdf
- 2024年养老护理职业技能大赛:为外伤出血老年人包扎止血实操流程讲解.docx
- 部编版《道德与法治》四年级下册第12课《家乡的喜与忧》教学课件(第1课时).pptx
- 学前教育学第七讲学前教育课程郑玉莲博士副教授贵州师范学院教育科学学院学习目标.ppt
- 外研版初二英语上册知识点总结 .doc VIP
- 《手术室植入物管理规范》(TCAME 65-2024).pdf VIP
- 《运动损伤与康复》课程教学大纲.docx VIP
文档评论(0)