第11章 作业及习题参考答案.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 (8分)将下面程序划分为基本块,并画出其基本块程序流图。 (1) if ab goto (3) (2) halt (3) if cd goto (5) (4) goto (8) (5) t1:=y+z (6) x :=t1 (7) goto (1) (8) t2:=y-z (9) x :=t2 (10) goto (1) 11.1答:所谓代码优化即对代码进行等价变换,使得变换后的代码与变换前代码运行结果相同,而运行速度加快或占用存储空间少,或两者兼有。 进行优化的基础是中间或目标代码生成,以及基本块的识别、控制流分析和数据流分析。 2答:根据不同的阶段,分为中间代码优化和目标代码的优化。 根据优化所涉及的程序范围,又可分为局部优化、循环优化和全局优化。 3答:最常用的代码优化技术有: (1)删除多余运算 (2)代码外提 (3)强度削弱 (4)变换循环控制条件 (5)合并已知量和复写传播 (6)删除无用赋值 4 图11.23是图11.22的C代码的部分四元式代码序列   (1) 请将图11.23的四元式代码序列划分为基本块并做出其流图?   (2) 将每个基本块的公共子表达式删除?   (3) 找出流图中的循环,将循环不变量计算移出循环外? (4) 找出每个循环中的归纳变量,并且在可能的地方删除它们   图11.22   void quicksort(m,n)   int m,n;   { int i,j;    int v,x; if (n=m) return;    /* fragment begins here */    i = m-1;    j = n;    v = a[n];    while(1) {     do i = i+1;while (a[i]v);     do j = j-1; while (a[j]v);     if (i=j) break;      x = a[i];      a[i] = a[j];      a[j] = x;    }    x = a[i];    a[i] = a[n];    a[n] = x;    /* fragment ends here */    quicksort (m,j);    quicksort(i+1,n);   }   图11.23 (1)  i:=m-1 (2)  j:=n (3)  t1:=4*n (4)  v:=a[t1] (5)  i:=i+1 (6)  t2:=4*i (7)  t3:=a[t2] (8)  if t3 v goto (5) (9)  j:=j-1 (10) t4:=4*j (11) t5:=a[t4] (12) if t5 v goto (9) (13) if i = j goto (23) (14) t6:=4*i (15) x:=a[t6] (16) t7:=4*i (17) t8:=4*j (18) t9:=a[t8] (19) a[t7]:=t9 (20) t10:=4*j (21) a[t10]:=x (22) goto (5) (23) t11:=4*i (24) x:=a[t11] (25) t12:=4*i (26) t13:=4*n (27) t14:=a[t13] (28) a[t12]:=t14 (29) t15:=4*n (30) a[t15]:=x 答: (1)1-4为第1块,5-8为第2块,9-12为第3块,13句为第4块,14-22为第5块,23-30句为第6块。流图如下: B1 B2 B3 B4 B5 B6 (2) (14)和(16)都有4*i的运算,将(16)换成t7=t6 (17)和(20)都有4*j的运算,将(20)换成t10=t8 (23)和(25)都有4*i的运算,将(25)换成t12=t11 (3)、(26)和(29)都有4*n的运算,将(26)换成t13=t1,(29)换成t15=t1 (3) 有(5)-(8)、(9)-(12)、(5)-(22)三个循环。三个循环中没有循环不变量。 (4) 在循环(5)-(8)中,有基本归纳变量i和归纳变量t2; 在循环(9)-(12)中,有基本归纳变量j和归纳变量t4; 在循环(5)-(22)中,有基本归纳变量i和归纳变量t7、基本归纳变量j和归纳变量t8、t10。 注意到B6:(23)-(30)不在循环内,且B6

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档