《程序设计语言与编译》课程PPT教学课件(高职)第二十二讲 一类控制语句的翻译

五.一类控制语句的翻译 1.文法及其分析 S→ if B then s1 if B then S, else S2 I while B do S
五. 一类控制语句的翻译 1. 文法及其分析 S→if B then S1 │if B then S1 else S2 │while B do S1

ifb then s B为假 B B为真 S S1的第一条四元式 图用以“回填
B S1 ? if B then S1 B为假 B为真 S1的第一条四元式 用以“回填

if b then s else s B为假 B B为真 此处产生一无条件 转移语句 S1、S2的第一条 四元式用以 回填
B S1 S2 ? if B then S1 else S2 B为假 B为真 S1、S2的第一条 四元式用以 “回填” 此处产生一无条件 转移语句

while b do 心 B为假 B B为真 S 此处产生一无条件 转移语句 B的第一条四元式需记录、S1的第一条四元式用以“回填
B S1 ? B为假 B为真 while B do S1 B的第一条四元式需记录、S1的第一条四元式用以“回填” 此处产生一无条件 转移语句

由上面几个图可见: (1)B具有真假出口 B为真假时的转向不同 在翻译B时其真假出口有待“回填 (2)因语句的嵌套必须记录不确定转 移目标的四元式的地址拉链技术
由上面几个图可见: (1)B具有真假出口 B为真假时的转向不同 在翻译B时其真假出口有待“回填” (2)因if语句的嵌套,必须记录不确定转 移目标的四元式的地址—拉链技术

2.转移语句的四元式 条件转移jco,P1P2,O) nz211 无条件转移(j;-,0)
2. 转移语句的四元式 条件转移 (jrelop,P1 ,P2 ,0) (jnz,P1 ,-,0) 无条件转移 (j,-,-,0)

3.语句变量及过程 (1) B truelist, B. falselist:B的真假出口链 (2 M. code:记录四元式地址 (3 N netlist:记录不确定转移目标的 四元式地址 (4)S. netlist:记录S中不确定转移目标的 且转向地址均相同的四元式(这些四元 式形成一个链,S, netlist为链头)
3. 语句变量及过程 (1)B.truelist, B.falselist: B的真假出口链 (2)M.code: 记录四元式地址 (3)N.nextlist: 记录不确定转移目标的 四元式地址 (4)S.nextlist: 记录S中不确定转移目标的 且转向地址均相同的四元式(这些四元 式形成一个链, S.nextlist为链头)

(p)(j,-2-,0) (q)(j,-,-,p )(,-,-,q) S netlist=r
如: (p) (j, -, -, 0) …… (q) (j, -, -, p) …… (r) (j, -, -, q) S.nextlist=r

(5) makelist(t)语义过程,建链;t为链头; t空缺时建一空链; (6 merge(t1t2):语义函数,将t1、t2合并, 返回合并后的链头t2 (7 backpatch(t1,ode):语义过程,用code “回填t (8) nextcode:全局量,下一条即将生成 但尚未生成四元式的地址。值同
(5)makelist(t): 语义过程, 建链; t为链头; t空缺时建一空链; (6)merge(t1 ,t2 ): 语义函数, 将t1、t2合并, 返回合并后的链头t2; (7)backpatch(t1 ,code): 语义过程, 用code 回填t1; (8)nextcode: 全局量, 下一条即将生成 但尚未生成四元式的地址。值同ip

(p)(j,-,-20) (u)(j,-,-,0) (q)(j,-,-,p) (v)(,-,-,u) )( --,q (w)(j t,=r 执行 merge(t12)后
如: (p) (j, -, -, 0) (u) (j, -, -, 0) …… …... (q) (j, -, -, p) (v) (j, -, -, u) …… …... (r) (j, -, -, q) (w) (j, -, -, v) t1=r t2=w 执行merge(t1 ,t2 )后
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《程序设计语言与编译》课程PPT教学课件(高职)第二讲 强制式语言.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第八讲 控制结构.ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第一章 计算机应用的数学基础(汤爱涛).ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第五章 材料数据库与专家系统 (汤爱涛).ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第四章 计算机辅助材料的测试与分析(汤爱涛).ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第三章 相图的计算机分析与计算(汤爱涛).ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第二章 材料科学中的数值模拟与计算(汤爱涛).ppt
- 《photoshop》讲义(电子课件).doc
- 《计算机图形学》课程教学资源:第2章 实面积图形的生成(赵立强).ppt
- 《Matlab入门教程》教学资源:学习参考资料.doc
- 《计算机网络技术教程》第9章 各种n7网络工作站的连接.ppt
- 《计算机网络技术教程》第8章 NT网络中的TCP/IP管理.ppt
- 《计算机网络技术教程》第7章 构建Windows NT网络.ppt
- 《计算机网络技术教程》第6章 Intranet网络管理.ppt
- 《计算机网络技术教程》第5章 Internet基础.ppt
- 《计算机网络技术教程》第4章 广域网实用组网技术.ppt
- 《计算机网络技术教程》第3章 局域网实用组网技术.ppt
- 《计算机网络技术教程》第2章 网络体系结构、协议和软件系统.ppt
- 《计算机网络技术教程》第1章 计算机网络基础.ppt
- 西北工业大学:《Internet实用技术》第7章 FrontPage网页制作.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十讲 含数组元素的赋值语句的翻译.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十六讲 运行时存储空间管理.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十七讲 栈式分配.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十三讲 控制语句也可采用改写文法的方法.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十四讲 代码优化.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十五讲 循环优化.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十一讲 一类说明语句的翻译.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第九讲 SIMULA 67协同程序.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第六讲 类型检查.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第七讲 抽象数据类型.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第三讲 程序单元.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十八讲 SLR分析表的构造.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十二讲 编译概述.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十讲 程序设计语言和编译程序.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十九讲 代码生成和代码优化.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十六讲 优先关系表的构造.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十七讲 LR分析法.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十三讲 自顶向下语法分析.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十四讲 预测分析程序.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十五讲 自底向上语法分析.ppt