- 14
- 0
- 约3.2万字
- 约 28页
- 2017-07-27 发布于湖北
- 举报
PL0编译程序
PL/0编译程序的运行机制:语法分析开始后,首先调用分程序处理过程(block)处理分程序。过程入口参数置为:0层、符号表位置0、出错恢复单词集合为句号、声明符或语句开始符。进入block过程后,首先把局部数据段分配指针设为3,准备分配3个单元供运行期存放静态链SL、动态链DL和返回地址RA。然后用tx0记录下当前符号表位置并产生一条jmp指令,准备跳转到主程序的开始位置,由于当前还没有知到主程序究竟在何处开始,所以jmp的目标暂时填为0,稍后再改。同时在符号表的当前位置记录下这个jmp指令在代码段中的位置。在判断了嵌套层数没有超过规定的层数后,开始分析源程序。首先判断是否遇到了常量声明,如果遇到则开始常量定义,把常量存入符号表。接下去用同样的方法分析变量声明,变量定义过程中会用dx变量记录下局部数据段分配的空间个数。然后如果遇到procedure保留字则进行过程声明和定义,声明的方法是把过程的名字和所在的层次记入符号表,过程定义的方法就是通过递归调用block过程,因为每个过程都是一个分程序。由于这是分程序中的分程序,因此调用block时需把当前的层次号lev加一传递给block过程。分程序声明部分完成后,即将进入语句的处理,这时的代码分配指针cx的值正好指向语句的开始位置,这个位置正是前面的jmp指令需要跳转到的位置。于是通过前面记录下来的地址值,把这个jmp指令的跳转位置改成
您可能关注的文档
最近下载
- 杰斐逊共情量表(护生版)的编译及信效度检验.pdf VIP
- 新疆生产建设兵团兴新职业技术学院2026 年高职(专科)综合评价招生《素质测试》面试模拟试题及参考答案.docx VIP
- 新型纺丝甬道技术在氨纶生产中的应用.docx VIP
- 2026年重庆市公务员《行测》考试真题_含答案版.pdf
- 2026年内蒙古公务员《行测》考试真题_含答案版.docx
- 高效蜂窝整流的大型氨纶纺丝甬道.pdf VIP
- 2026年四川省公务员《行测》考试真题_含答案版.pdf
- 第七章 万有引力与宇宙航行测试卷.docx VIP
- 2026年新疆公务员《行测》考试真题_含答案版.pdf
- 2026年云南省公务员《行测》考试真题_含答案版.pdf
原创力文档

文档评论(0)