《程序设计语言与编译》课程PPT教学课件(高职)第二十五讲 循环优化

3.循环优化 (1)代码外提 (2)强度削弱 °基本归纳变量,i唯一定值,i:=i±c 同族归纳变量,j:=c1*i±C2 则变成j:三j±c1*c,但j必须在循环外赋初 值j:=c1*i±c2
3. 循环优化 (1)代码外提 (2)强度削弱 •基本归纳变量,i有唯一定值,i := i c •同族归纳变量,j := c1 i c2 则变成j := j c1 c , 但j必须在循环外赋初 值 j := c1 * i c2

(3)删除归纳变量 即改用同族归纳变量作为判断条件 例如将1>10改为t2>100+t1 因原来t3:=10*i+t1 而100+t1即10*10+t1
(3)删除归纳变量 即改用同族归纳变量作为判断条件 例如将 i > 10 改为 t3 > 100 + t1 因原来t3 := 10 * i + t1 , 而100 + t1 即 10 * 10 + t1

优化之 BI B2 (2)if1>10goto(16) B3 (3)t1:=2* 4)t2:=10*1 (5)t3:=2+t1(6)t4:=a0-11 (7)t5:=2 (8)t6:=10*1 (9)t7:=t6+t5(10)t8:=a0-11 11)t9:=t8[t7](12)t10:=t9+1 (13)4|t3]:=t10(14)n:=i+1 (15)goto(2) B4 (16)
(1)i:=1 (2)if i>10 goto (16) (3)t1:=2*j (4)t2:=10*i (5)t3:=t2+t1 (6)t4:=a0-11 (7)t5:=2*j (8)t6:=10*i (9)t7:=t6+t5 (10)t8:=a0-11 (11)t9:=t8[t7] (12)t10:=t9+1 (13)t4[t3]:=t10 (14)i:=i+1 (15)goto (2) (16) …... 优化之前 B1 B2 B3 B4

代码外提后 BI B2 (3)t1:=2 (6)t4:=a0-11 (7)t5:=2* (10)t8:=a0-11 (2ifi>10goo(16) B2 B3 (4)t2:=10*1(5)t3:=t2+t1 (8)t6:=10*1(9)t7:=t6+t5 1)t9:=8[t7](12)t10:=t9+1 (13)t4[t3]:t10(14)i=i+1 (15)goto(2 (16) B4
(1)i:=1 (4)t2:=10*i (5)t3:=t2+t1 (8)t6:=10*i (9)t7:=t6+t5 (11)t9:=t8[t7] (12)t10:=t9+1 (13)t4[t3]:=t10 (14)i:=i+1 (15)goto (2) (16) …... (2)if i>10 goto (16) (3)t1:=2*j (6)t4:=a0-11 (7)t5:=2*j (10)t8:=a0-11 代码外提后 B1 B2’ B2 B3 B4

强度削弱后 BI ()i:=1 B2 3)1:=2*j(6)t4:=a0-11 (7)t5:=2*j (1080 4)t2:=10*1(8)t6:=10* (5)t3:=t2+tl(9)t7:=t6+5 (2)if i>10 goto(16) B2 l1)t9:=8[t7](12)t10:=9+1 B3 (13)4t3]:=t10(14):=i+1 (4)t2:=t2+10(83)t6:=t6+10 (5)t3:=t3+10(9)t7:=t7+10 (15)goto(2) (16) B4
(1)i:=1 (11)t9:=t8[t7] (12)t10:=t9+1 (13)t4[t3]:=t10 (14)i:=i+1 (4’)t2:=t2+10 (8’)t6:=t6+10 (5’)t3:=t3+10 (9’)t7:=t7+10 (15)goto (2) (16) …... (2)if i>10 goto (16) (3)t1:=2*j (6)t4:=a0-11 (7)t5:=2*j (10)t8:=a0-11 (4)t2:=10*i (8)t6:=10*i (5)t3:=t2+t1 (9)t7:=t6+t5 强度削弱后 B1 B2’ B2 B3 B4

删除归纳变量后 BI ()i:=1 B2 3)1:=2*j(6)t4:=a0-11 (7)t5:=2*j(10t8:=a0-11 4)t2:=10*1(8)t6:=10* (5)t3:=t2+tl(9)t7:=t6+5 (2)s:=100+tl (2”)ift3> s goto(16) B2 (1199897(12)1019+1B3 (13)t4[t3]:=t10(4)t2:=t2+10 (8)6:+6+10(5)3=t3+10 (9)t7:t7+10(15)goto(2) (16) B4
(1)i:=1 (11)t9:=t8[t7] (12)t10:=t9+1 (13)t4[t3]:=t10 (4’)t2:=t2+10 (8’)t6:=t6+10 (5’)t3:=t3+10 (9’)t7:=t7+10 (15)goto (2) (16) …... (2’’)if t3>s goto (16) (3)t1:=2*j (6)t4:=a0-11 (7)t5:=2*j (10)t8:=a0-11 (4)t2:=10*i (8)t6:=10*i (5)t3:=t2+t1 (9)t7:=t6+t5 (2’)s:=100+t1 删除归纳变量后 B1 B2’ B2 B3 B4

另例:(1)PROD:=0 2I:=1 (3)T1:于4 (4)T2:=a0-4 (5)T3:=12[T1 (6)T4:=4*I (7)T5:=b0-4 (8)T6:=T5[TI4 (9)17:=T3*T6 (10)PROD: -PROD+ T7 (11)I:=Ⅰ+1 (12)ifI≤20goto(3) 进行:(1)删除多余运算,代码外提 (2)强度削弱 (3)变换循环控制条件,复写传播,合并已知量 (4)删除无用赋值
另例:(1)PROD := 0 (2)I := 1 (3)T1 := 4 * I (4)T2 := a0 – 4 (5)T3 := T2[T1] (6)T4 := 4 * I (7)T5 := b0 – 4 (8)T6 := T5[T4] (9)T7 := T3 * T6 (10)PROD := PROD + T7 (11)I := I + 1 (12)if I ≤ 20 goto (3) 进行:(1)删除多余运算,代码外提 (2)强度削弱 (3)变换循环控制条件,复写传播,合并已知量 (4)删除无用赋值

删除多余运算,代码外提 26?(PROD: =022 (2 (4)T2:=a0-4 (7)T5:=bo-4 (3)T1:=4* (5)T3:=T2[T1 (6)T4:=T (8)16:=1514 (9)T7: T3*T6 (10)PROD: PROD+ T7 (11)I:=I+1 (12)ifI≤20goto(3)
删除多余运算,代码外提 (1)PROD := 0 (2)I := 1 (4)T2 := a0 – 4 (7) T5 := b0 – 4 (3) T1 := 4 * I (5)T3 := T2[T1] (6)T4 := T1 (8) T6 := T5[T4] (9) T7 := T3 * T6 (10) PROD := PROD + T7 (11) I := I +1 (12)if I≤20 goto (3)

强度削弱 3(PROD: 0 2)I:=1 (4)12:=a0-4 (7)T5:=b-4 (3)T1:=4*I (5)T3:=T2[T1] (6)T4:=T1 (8)T6:=T5[4] (9)T7:=T3*T6 10)PROD: PROD+ T7 (11)I:=I+1 (33)T1:=T1+4 (12 )if I< 20 goto(5)
强度削弱 (1)PROD := 0 (2)I := 1 (4)T2 := a0 – 4 (7) T5 := b0 – 4 (3) T1 := 4 * I (5)T3 := T2[T1] (6)T4 := T1 (8) T6 := T5[T4] (9) T7 := T3 * T6 (10) PROD := PROD + T7 (11) I := I +1 (3’)T1 := T1 + 4 (12) if I ≤ 20 goto (5)

变换循环控制条件,合并口知量,复写传播 (1)PROD:=0 (2)=1 (4)12:=a0-4 (7)T5:b-4 (3)T1:=4 (5)T3:=T2[T (6)T4:=T1 (8)T6:=T5[T1] (9)T7:=T3*T6 10)PROD: = PROD+ T7 )I:=1+1 (3)Tl:=T1+4 (12)ifT1≤80goto(5)
变换循环控制条件,合并已知量,复写传播 (1)PROD := 0 (2)I := 1 (4)T2 := a0 – 4 (7) T5 := b0 – 4 (3) T1 := 4 (5)T3 := T2[T1] (6)T4 := T1 (8) T6 := T5[T1] (9) T7 := T3 * T6 (10) PROD := PROD + T7 (11) I := I +1 (3’)T1 := T1 + 4 (12) if T1 ≤ 80 goto (5)
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十四讲 代码优化.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十三讲 控制语句也可采用改写文法的方法.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十七讲 栈式分配.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十六讲 运行时存储空间管理.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十讲 含数组元素的赋值语句的翻译.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十二讲 一类控制语句的翻译.ppt
- 《程序设计语言与编译》课程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
- 《程序设计语言与编译》课程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
- 《程序设计语言与编译》课程PPT教学课件(高职)第十一讲 自动机.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第四讲 用户定义类型.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第五讲 组合类型.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第一讲 绪论(主编:王晓斌).ppt
- 宜宾职业技术学院:《实用组网技术》课程教学资源_期末一.doc
- 宜宾职业技术学院:《实用组网技术》课程教学资源_实践考试方案.doc