2022年程序设计语言编译原理第版课后答案 .pdf
第二章P36-6(1) L G()1是 09 组成的数字串(2) 最左推导 : NNDNDDNDDDDDDDDDDDDDNNDDDDNNDNDDDDDDDD0010120127334556568最右推导 : NNDNNDNNDNDNNDNDNNDNNDND77272712712701274434886868568P36-7G(S) ONODNSO AOAAD N13 5 7 92 4 6 80| | | | | | |P36-8文法:ET ET ETTF TF TFFE i|*|/()|最左推导 : EETTTFTiTiTFiFFiiFiiiETTFFFiFiEiETiTTiFTiiTiiFiii*()*()*()*()*()*()*()最右推导 : EETETFETiEFiEiiTiiFiiiiiETFTFFFEFETFEFFEiFTiFFiFiiiii*()*()*()*()*()*()*()*()语法树: /* 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 27 页 - - - - - - - - - EEFTE+TFFT+iiiEEFTE-TFFT-iiiEEFT+TFFTiii*i+i+ii-i-ii+i*i*/ P36-9句子 iiiei有两个语法树:SiSeSiSeiiiSeiiiieiSiSiiSeSiiSeiiiieiP36-10/* )(|)(|STTTSS*/ P36-11/* L1: |cCCabaAbAACSL2: bcbBcBaAAABS|L3: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 27 页 - - - - - - - - - |aBbBaAbAABSL4: ABBAABAS|01|10|*/ 第三章习题参考答案P647 (1) 1 01 101( | )* 0 1 1 0 1 1 确定化:0 1 X 1,2,3 1,2,3 2,3 2,3,4 2,3 2,3 2,3,4 2,3,4 2,3,5 2,3,4 2,3,5 2,3 2,3,4,Y 2,3,4,Y 2,3,5 2,3,4, 0 1 0 0 0 1 1 0 0 1 0 1 1 1 最小化:X 1 2 3 4 Y 5 X Y 6 0 1 2 3 5 4 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 27 页 - - - - - - - - - , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,012 3 4 56012 3 4 5135012 34 512 4 6012 3 456012 3 4135012 3456012 3101003012 312 4012 345601101122 332 34012 345610101 , , , , , , , , , , , , , , , , , , 0 1 0 0 1 0 0 1 0 1 1 1 P648 (1) 01)0|1(*(2) )5|0(|)5|0()9|8|7|6|5|4|3|2|1|0)(9|8|7|6|5|4|3|2|1(*(3) *) 110|0(01|)110|0(10P6412 (a) a a,b a 确定化:a b 0 0,1 1 0,1 0,1 1 1 0 5 0 1 2 4 3 0 1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 27 页 - - - - - - - - - 给状态编号:a b 0 1 2 1 1 2 2 0 3 3 3 3 a a a b b b b a 最小化: , , , , , , , , ,0 12 30 110 122 30 32 330 123abab a a b b a b (b) b b a a b a a b b a a a 已经确定化了 , 进行最小化0 1 2 3 0 1 2 0 2 3 1 4 5 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 27 页 - - - - - - - - - 最小化: , , , , , 0 12 3 4 50 110 12 42 3 4 51 3 0 52 3 4 52 3 4 52 41 02 43 53 53 53 52 40 12 43 50 110 12 42 4 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , abababababa , , , , , , , 1 02 43 53 53 53 52 4bab b b a a b a P6414 (1) 0 1 0 (2): ( |)*010 0 1 0 确定化:0 1 X,1,Y 1,Y 2 0 1 2 0 1 Y X Y X 2 1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 27 页 - - - - - - - - - 1,Y 1,Y 2 2 1,Y 给状态编号:0 1 0 1 2 1 1 2 2 1 3 3 3 3 0 0 1 0 1 1 1 0 最小化: , , , , , , , , ,0 12 30 110 122 31 32 330 1230101 0 1 1 1 0 0 第四章P811 (1) 按照 T,S 的顺序消除左递归|,)(|)(TSTTSTTaSSG递归子程序:procedure S; begin if sym=a or sym= then abvance else if sym=( 0 2 1 3 0 1 3 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 27 页 - - - - - - - - - then begin advance;T; if sym=) then advance; else error; end else error end; procedure T; begin S;Tend; procedure T; begin if sym=, then begin advance; S;Tend end; 其中 : sym:是输入串指针IP 所指的符号advance: 是把 IP 调至下一个输入符号error:是出错诊察程序(2) FIRST(S)=a,( FIRST(T)=a,( FIRST(T)=, FOLLOW(S)=),# FOLLOW(T)=) FOLLOW(T)=) 预测分析表a ( ) , # S SaSST( )T TSTTSTTSTTTTST,是 LL(1) 文法P812 文法:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 27 页 - - - - - - - - - | )(|*|baEPFFFPFTTTFTEEETE(1) FIRST(E)=(,a,b, FIRST(E)=+, FIRST(T)=(,a,b, FIRST(T)=(,a,b, FIRST(F)=(,a,b, FIRST(F)=*, FIRST(P)=(,a,b, FOLLOW(E)=#,) FOLLOW(E)=#,) FOLLOW(T)=+,),# FOLLOW(T)=+,),# FOLLOW(F)=(,a,b,+,),# FOLLOW(F)=(,a,b,+,),# FOLLOW(P)=*,(,a,b,+,),# (2) 考虑下列产生式: EETTFFPEa b|*|()| |FIRST(+E) FIRST()=+ = FIRST(+E) FOLLOW(E)=+ #,)=FIRST(T) FIRST( )=(,a,b, = FIRST(T) FOLLOW(T)=(,a,b,+,),#=FIRST(*F)FIRST()=* = FIRST(*F)FOLLOW(F)=* (,a,b,+,),#=FIRST(E) FIRST(a) FIRST(b) FIRST()= 所以 , 该文法式LL(1) 文法 . (3) + * ( ) a b # E ETE ETE ETE ETE E EEEET TFTTFTTFTTFTT TTTTTTTTTTT名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 27 页 - - - - - - - - - F FPFFPFFPFFPFF FFF*FFFFFFP PE()PaPbP(4) procedure E; begin if sym=( or sym=a or sym=b or sym= then begin T; E end else error end procedure E; begin if sym=+ then begin advance; E end else if sym) and sym# then error end procedure T; begin if sym=( or sym=a or sym=b or sym= then begin F; T end else error end procedure T; begin if sym=( or sym=a or sym=b or sym= then T else if sym=* then error end procedure F; begin if sym=( or sym=a or sym=b or sym= then begin P; F end else error end procedure F; begin if sym=* then begin advance; F end end procedure P; begin if sym=a or sym=b or sym= then advance else if sym=( then 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 27 页 - - - - - - - - - begin advance; E; if sym=) then advance else error end else error end; P813 /* (1) 是,满足三个条件。(2) 不是,对于A 不满足条件3。(3) 不是, A、B 均不满足条件3。(4) 是,满足三个条件。*/ 第五章P1331 EETETF*短语 : E+T*F, T*F, 直接短语 : T*F 句柄 : T*F P1332 文法:SaTTT S S|(), |(1) 最左推导 : STT SS Sa SaTaT SaS Saa Saa aST SS STST S ST S SSS S SSTS SST SS SSS S S S Sa S()( , )( , )( , )( ,()( ,(, )( ,(, )( ,( ,)( ,( , )(, )( , )(),)(, ),)(, , ), )(, , ), )(), ), )(, ), , ),)(, ), ), )(, ), ),)(, ), ),)(, ), , ),)(, ), ,(),)(, ), ,(),)(, ), ,(),)(, ), ,( ),)S SSa aS SSa aSSa aTSa aSSa aaSa aaa最右推导 : STT STTTT STT aTS aTa aSa aaa aST ST aS aTaT SaTTaTSaTaaT SaaTaa( )( , )(,()( ,(,)(,(, )(,(, )(,(, )( ,(, )( ,(, )( , )( , )(, )(),)(, ),)(,(),)(,(),)(,(),)(, ,( ),)(, ,( ),)(, ,(),)(), ,(),)(, ), ,(),)(, ), ,(),)(, ), ,( ),)(, ), ,(),)SaaTaaT SaaT aaaS aaaa aaa(2) ( a,a),(a),a) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 27 页 - - - - - - - - - (S,a),(a),a) (T,a),(a),a) ( T,S),(a),a) ( (T) ,(a),a) ( S,(a),a) (T,(a),a) ( T,S,(a),a) (T,(a),a) (T,(S),a) (T,(T),a) ( T,S),a) ( (T) ,a) ( S,a) ( T,S) (T) S “移进 - 归约”过程:步骤栈输入串动作0 # ( a,a),(a),a)# 预备1 #( ( a,a),(a),a)# 进2 #( ( a,a),(a),a)# 进3 #( a,a),(a),a)# 进4 #(a ,a),(a),a)# 进5 #(S ,a),(a),a)# 归6 #(T ,a),(a),a)# 归7 #(T, a),(a),a)# 进8 #(T,a ),(a),a)# 进9 #(T,S ),(a),a)# 归10 #(T ),(a),a)# 归11 #(T) ,(a),a)# 进12 #(S ,(a),a)# 归13 #(T ,(a),a)# 归14 #(T, ,(a),a)# 进15 #(T, ,(a),a)# 进16 #(T,S ,(a),a)# 归17 #(T ,(a),a)# 归18 #(T, (a),a)# 进19 #(T,( a),a)# 进20 #(T,(a ),a)# 进21 #(T,(S ),a)# 归22 #(T,(T ),a)# 归23 #(T,(T) ),a)# 进24 #(T,S ),a)# 归25 #(T ),a)# 归名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 27 页 - - - - - - - - - 26 #(T) ,a)# 进27 #(S ,a)# 归28 #(T ,a)# 归29 #(T, a)# 进30 #(T,a )# 进31 #(T,S )# 归32 #(T )# 归33 #(T) # 进34 #S # 归P1333 (1) FIRSTVT(S)=a,( FIRSTVT(T)=,a,( LASTVT(S)=a,) LASTVT(T)=,a,) (2) a ( ) , a ( = , 6G是算符文法,并且是算符优先文法(3) 优先函数a ( ) , f 4 4 2 4 4 g 5 5 5 2 3 faff(f)f,gagg(g)g,(4)栈输入字符串动作# ( a,(a,a))# 预备#( a, (a,a)# 进#(a , (a,a)# 进#(t , (a,a)# 归名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 27 页 - - - - - - - - - #(t, (a,a) )# 进#(t, (a,a ) )# 进#(t, (a ,a ) )# 进#(t, (t ,a ) )# 归#(t, (t, a) )# 进#(t, (t,a ) )# 进#(t, (t,s ) )# 归#(t, (t ) )# 归#(t, (t )# 进#(t,s )# 归#(t )# 归#(t )# 进# s # 归success P1345 (1) 0.SS1.SS2.SAS 3.SA S4.SAS 5.Sb6.Sb7.ASA8.AS A9.ASA 10.Aa11.Aa(2) S A S a A S d 确定化:S A a b 0,2,5,7,10 1,2,5,7,8,10 2,3,5,7,10 11 6 1,2,5,7,8,102,5,7,8,10 2,3,5,7,9,1011 6 0 10 5 7 6 1 11 2 3 4 8 9 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 27 页 - - - - - - - - - 2,3,5,7,10 2,4,5,7,8,10 2,3,5,7,10 11 6 2,5,7,8,10 2,5,7,8,10 2,3,5,7,9,10 11 6 2,3,5,7,9,10 2,4,5,7,8,10 2,3,5,7,10 11 6 2,4,5,7,8,10 2,5,7,8,10 2,3,5,7,9,10 11 6 11 6 A S S A a b S a A S b S A b a A A S b a a b b a DFA 构造 LR(0) 项目集规范族也可以用GO函数来计算得到。所得到的项目集规范族与上图中的项目集一样 : 0I=SS,SAS,Sb,ASA,Aa GO(0I,a)= Aa=1IGO(0I,b)= Sb=2IGO(0I,S)= SS,AS A,ASA,Aa,SAS,Sb=3I0:SSSASSbASAAa4:SA SSASSbASAAa3:SSAS AASAAaSASSb2: Sb1:Aa5:AS ASASSbASAAa6:ASASA SSASSbASAAa7:SASAS ASASSbASAAa名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 27 页 - - - - - - - - - GO(0I,A)= SA S,SAS,Sb,ASA,Aa=4IGO(3I,a)= Aa=1IGO(3I,b)= Sb=2IGO(3I,S)= AS A,SAS,Sb,ASA,Aa=5IGO(3I,A)= ASA,SA S,SAS,Sb,ASA,Aa=6IGO(4I,a)= Aa=1IGO(4I,b)= Sb=2IGO(4I,S)= SAS,AS A,SAS,Sb,ASA,Aa=7IGO(4I,A)= SA S,SAS,Sb,ASA,Aa=4IGO(5I,a)= Aa=1IGO(5I,b)= Sb=2IGO(5I,S)= AS A,SAS,Sb,ASA,Aa=5IGO(5I,A)= ASA,SA S,SAS,Sb,ASA,Aa=6IGO(6I,a)= Aa=1IGO(6I,b)= Sb=2IGO(6I,S)= SAS,AS A,SAS,Sb,ASA,Aa=7IGO(6I,A)= SA S,SAS,Sb,ASA,Aa=4IGO(7I, a)= Aa=1IGO(7I, b)= Sb=2IGO(7I, S)= AS A,SAS,Sb,ASA,Aa=5IGO(7I, A)= ASA,SA S,SAS,Sb,ASA,Aa=6I项目集规范族为C=1I,2I,3I,4I,5I,6I,7I (3) 不是 SLR文法状态 3, 6,7 有移进归约冲突状态 3:FOLLOW(S)=# 不包含a,b 状态 6: FOLLOW(S)=#,a,b 包含 a,b, ;移进归约冲突无法消解状态 7: FOLLOW(A)=a,b 包含 a,b ;移进归约冲突消解所以不是SLR文法。(4) 构造例如 LR(1) 项目集规范族见下图:对于状态 5, 因为包含项目 baASA/ , 所以遇到搜索符号a或b时, 应该用ASA归约。又因为状态5 包含项目 baaA/ ,所以遇到搜索符号a 时,应该移进。因此存在“移进 - 归约”矛盾,所以这个文法不是LR(1) 文法。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 27 页 - - - - - - - - - b b b A A A S a a S S a S a a A a A S b S A b a a S b b S b A A 0: a/baA a/bSAA #/a/bbS#/a/bASSSS#2: a/baA a/bSAA #/a/bbS#/a/bASS#/a/bSAS1: a/bbSa/bASS a/baA a/bSAA a/bASASS#3: a/baA4:a/bbS/#5: a/baA a/bSAA a/bbSa/bASSa/bSAS a/bSAA6: a/bbSa/bASS a/baA a/bSAA a/bASA7: a/bbSa/bASS a/baA a/bSAA a/bASAa/bASS/#9: a/bbSa/bASS a/baA a/bSAA a/bASA a/bASS8: a/baA a/bSAA a/bbSa/bASSa/bSAS10: a/bbS3:5:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 27 页 - - - - - - - - - 第六章/*第六章会有点难P1645 (1) EE1T if (E1.type = int) and (T.type = int ) then E.type := int else E.type := real ET E.type := T.type Tnum.num T.type := real Tnum T.type := int (2) P1647 SL1|L2 S.val:=L1.val+(L2.val/2lengthL . 2)SL S.val:=L.valLL1B L.val:=2*L1.val + B.val; L.length:=L1.length+1LB L.val:=B.c; L.length :=1B0 B.c:=0 B1 B.c:=1 */第七章P2171 a*(-b+c) abc+* a+b*(c+d/e) abcde/+*+ -a+b*(-c+d) abcd+*+ )(DCACDA)()(DCBADCAB)()(EDCBAECDABif (x+y)*z =0 then (a+b)c else abc xy+z*0= ab+c abc ¥或 xy+z*0= P1 jez ab+c P2 jump abc P1 P2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 27 页 - - - - - - - - - P2173 -(a+b)*(c+d)-(a+b+c)的三元式序列 : (1)+, a, b (2), (1), - (3)+, c, d (4)*, (2), (3) (5)+, a, b (6)+, (5), c (7)-, (4), (6) 间接三元式序列: 三元式表:(1)+, a, b (2), (1), - (3)+, c, d (4)*, (2), (3) (5)+, (1), c (6)-, (4), (5) 间接码表:(1) (2) (3) (4) (1) (5) (6) 四元式序列 : (1)+, a, b, 1T(2), 1T, -, 2T(3)+, c, d, 3T(4)*, 2T, 3T, 4T(5)+, a, b, 5T(6)+, 5T, c, 6T(7)-, 4T, 6T, 7TP2184 自下而上分析过程中把赋值句翻译成四元式的步骤:A:=B*(-C+D) 步骤输入串栈 PLACE 四元式(1) A:=B*(-C+D) (2) :=B*(-C+D) i A (3) B*(-C+D) i:= A- (4) *(-C+D) i:=i A-B (5) *(-C+D) i:=E A-B 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 27 页 - - - - - - - - - (6) *(-C+D) i:=E A-B (7) (-C+D) i:=E* A-B- (8) -C+D) i:=E*( A-B- (9) C+D) i:=E*(- A-B- (10) +D) i:=E*(-i A-B-C (11) +D) i:=E*(-E A-B-C (,C,-, T1) (12) +D) i:=E*(E A-B-T1(13) D) i:=E*(E+ A-B-T1- (14) ) i:=E*(E+i A-B-T1-D (15) ) i:=E*(E+E A-B-T1-D (+,T1,D,T2) (16) ) i:=E(E A-B-T2(17) i:=E*(E) A-B-T2- (18) i:=E+E A-B-T2(*,B,T2,T3) (19) i:=E A-T3(:=,T3,-,A) (20)A 产生的四元式:(,C,-, T1) (+,T1,D,T2) (*,B,T2,T3) (:=,T3,-,A) P2185 /* 设 A :10*20,B、C、D:20,宽度为w4 则T1:= i * 20 T1:=T1+j T2:=A 84 T3:=4*T1 Tn:=T2T3 /这一步是多余的T4:= i + j T5:=B 4 T6:=4*T4 T7:=T5T6 T8:= i * 20 T8:=T8+j T9:=A 84 T10:=4*T8 T11:=T9T10 T12:= i + j T13:=D 4 T14:=4*T12 T15:= T13T14 T16:=T11+T15 T17:=C 4 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 27 页 - - - - - - - - - T18:=4*T16 T19:=T17T18 T20:=T7+T19 Tn:=T20 */ P2186 100. ( jnz, A, -, 0) 101.(j, -, -, 102) 102.(jnz, B, -, 104) 103.(j, -, -, 0) 104.(jnz, C, -, 103) 105.(j, -, -, 106) 106.(jnz, D, -, 104) -假链链首107.(j, -, -, 100) -真链链首假链: 106,104 , 103 真链: 107,100 P2187 100. ( j, A, C, 102) 101.(j, -, -, 0) 102.(j, E1.place , E2.place ,0 ); emit(I.Place := E1.place); F.truelist := makelist(nextquad); emit( j,-,-,-); F.place := I.place; F.end := E2.place; idIp:=lookup(id.name); if p nil then I.place := p else error MM.quad := nextquad */ 方法 2:S for id:=E1 to E2 do S1 S F S1 F for id:=E1 to E2 do 21:toEEforidFdo INITIAL=NEWTEMP; emit( := , E1.PLACE , - , INITIAL); FINAL=NEWTEMP; emit( := , E2.PLACE , - , FINAL); p:= nextquad+2; emit( j, INITIAL , FINAL , p);F.nextlist:=makelist(nextquad); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 27 页 - - - - - - - - - emit( j, , , ); F.place:=lookup(id.name); if F.placenil thenemit(F.place := INITIAL)F.quad:=nextquad; F.final:=FINAL; 1FSS backpatch(S1.nextlist, nextquad) p:=nextquad+2; emit( j, F.place, F.final , p );S.nextlist := merge(F.nextlist, makelist(nextquad); emit( j, , , ); emit( succ , F.place , - , F.place); emit( j, , , F.quad); 第九章P2709 (1) 传名即当过程调用时, 其作用相当于把被调用段的过程体抄到调用出现处,但必须将其中出现的任一形式参数都代之以相应的实在参数。A:=2; B:=3; A:=A+1; A:=A+(A+B); print A; A=9 (2) 传地址即当程序控制转入被调用段后,被调用段首先把实在参数抄进相应的形式参数的形式单元中,过程体对形参的任何引用或赋值都被处理成对形式单元的间接访问。当被调用段工作完毕返回时,形式单元(都是指示器)所指的实参单元就持有所希望的值。A:=2;B:=3;T:=A+B 把 T,A,A 的地址抄进已知单元J1,J2,J3 x: J1;y:=J2;z:=J3 /把实参地址抄进形式单元,且J2=J3 Y:=y +1 Z :=z +x / Y:对 y 的间接访问 Z:对 z 的间接访问print A A=8 (3) 得结果每个形参均对应两个单元,第一个存放实参地址,第二个存放实参值,在过程体中对形参的名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 27 页 - - - - - - - - - 任何引用或赋值都看成是对它的第二个单元的直接访问,但在过程工作完毕返回前必须把第二个单元的内容放到第一个单元所指的那个实参单元中A:=2;B:=3;T:=A+B 把 T,A,A 的地址抄进已知单元J1,J2,J3 x1:=J1;x2:=T; y1:=J2;y2:=A; z1:=J3;z2:=A; /将实参的地址和值分别放进两个形式单元中y2:=y2+1; z2:=z2+x2; /对形参第二个单元的直接访问x1: x2; y1 :=y2; z1:=z2 /返回前把第二个单元的内容存放到第一个单元所指的实参地址中print A A=7 (4) 传值即被调用段开始工作时,首先把实参的值写进相应的形参单元中,然后就好像使用局部变量一样使用这些形式单元A:=2; B:=3; x:=A+B y:=A z:=A y:=y+1 z:=z+x print A A=2 过程调用不改变A 的值第十章P306-1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 27 页 - - - - - - - - - P306-2 read A,B F:=1 C:=A*A 1BD:=B*B if C100 goto 2LBBBBB名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 27 页 - - - - - - - - - - halt 4B- 2L: F:=F-1 goto 1L5B- 基本块为1B、2B、3B、4B、5BP307-4 B2 有回路,所以B2 是循环, B2 既是入口节点,又是出口节点(1)代码外提:不存在不变运算,故无代码外提(2)强度削弱: A:=K*I B:=J*I *+ (3)删除基本归纳变量:I100 可以用 A100*K 或 B100*J 代替I:=1 read J,KA:=K*I B:=J*I T:=K*100 L: C:=A*B write C A:=A+K B:=B+J if A T goto L halt 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 26 页,共 27 页 - - - - - - - - - P307-5 B2,B3 是循环, B2 是入口节点,也是出口节点(1)代码外提: B:=J+1 (2)删除归纳变量(3)A:=0 I:=1 L1 : A:=C+Aif C=T goto L2 C:=C+1 goto L1L2:B:=J+1 C:=B+I T:=B+100 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 27 页,共 27 页 - - - - - - - - -