- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PL/0编译程序的研究与改进 研究框架 第1-4学时:PL/0编译程序的总体结构和头文件 第5-6学时:词法分析功能的实现原理 第7-14学时:语法语义分析功能的实现原理 第15-18学时:目标代码结构和代码生成 第19-20学时:语法错误处理 第21-24学时:目标代码解释执行时的存储分配 第26-30学时:扩充PL/0编译程序的功能 第1-4学时:PL/0编译程序的总体结构和头文件 编译和解释执行的结构图 下面使用PASCAL语言书写的PL/0编译程序做例子,整个编译程序(包含主程序)是由18个嵌套及并列的过程或函数组成。 过程或函数的嵌套定义结构: 语法分析过程BLOCK是整个编译过程的核心。 编译程序的总体流程如下图: 第5-6学时:词法分析功能的实现原理 . 词法分析过程 功能:为语法语义分析提供单词,把输入的字符串形式的源程序分割成一个个单词符号传递给语法语义分析。 作用:剔除空白、预读、分析常量、识别关键字和标识符功能 第7-14学时:语法语义分析功能的实现原理 语法分析从读入第 一个单词开始由开 始符“程序”出发, 沿语法述图箭头所 指出的方向进行分 析。 第15-18学时:目标代码结构和代码生成 PL/0编译程序所产生的目标 代码是一个假想栈式计算机 的汇编语言,可称为类PCODE 指令代码,它不依赖任何实际 计算机,其指令集极为简单, 指令格式如下: 共有8条目标指令 PL/0语言的代码生成 是由过程GEN完成的。 f L a int gen(enum fct x,int y,int z) { if(cx=cxmax) { printf(Program too long); return -1; } code[cx].f=x; //目标代码的功能码 code[cx].l=y; //层次差 code[cx].a=z; cx++; return 0; } 例: gen(OPR,0,14) 将栈顶值输出到屏幕 输出目标代码 void listcode(int cx0)//cx为CODE下标的指针,由0开始顺 序增加 { int i; if(listswitch) { for(i=cx0;icx;i++) { printf(%d%s%d%d\n,i,mnemonic[code[i].f],code[i].l,code[i].a); fprintf(fa,%d%s%d%d\n,i,mnemonic[code[i].f],code[i].l,code[i].a);//传送格式化输出到一个文件中 } } (1) 对于一些易于校正的错误,如丢了逗号、分号等,则指出出错位置,并加以校正。校正的方式就是补上逗号或分号。 (2) 对某些错误编译程序难于确定校正的措施,具体做法是:当语法分析进入以某些关键字(保留字)或终结符集合为开始符的语法单元时,通常在它的入口和出口处,调用一个测试程序TEST。 第19-20学时:语法错误处理 PL/0错误处理的方法有两种 第21-24学时:目标代码解释执行时的存储分配 void interpret() { int p,b,t; //指令指针,指令基址,栈顶指针 struct instruction i; //存放当前指令 int s[stacksize]; //栈 p,b,t为三个寄存器,p指向下一条要执行的目标程序的地址 b为基地址,t为指向当前栈中必威体育精装版分配的单元。 第26-30学时: PL/0编译程序的功能扩充程序说明 (1)扩充赋值运算:+=,-=.此功能扩充只需在语句分析里面进行增加如下程序: if(SYM==BECOMES||SYM==PLUSBECOMES||SYM==MINUSBECOMES){ if (SYM==BECOMES) { GetSym(); EXPRESSION(FSYS,LEV,TX); } else if(SYM==PLUSBECOMES||SYM==
您可能关注的文档
- 模拟CMOS集成电路设计考试题.docx
- 模拟CMOS集成电路设计考试题答案.docx
- 模拟CMOS集成电路设计课件7. Operational Amplifier.ppt
- 模拟CMOS集成电路设计课件7. Operational Amplifier(CMOS).ppt
- 模拟CMOS集成电路设计课件2 Basic MOS Device Physics.ppt
- 模拟CMOS集成电路设计课件2-2.IC Components.ppt
- 模拟CMOS集成电路设计课件3.CMOS Device Modeling.ppt
- 模拟CMOS集成电路设计课件1.Introduction.ppt
- 模拟CMOS集成电路设计课件2-1.CMOS Technology.ppt
- 模拟CMOS集成电路设计课件2-2.IC Components.ppt
文档评论(0)