《編譯原理第6章 習(xí)題與答案》由會(huì)員分享,可在線閱讀,更多相關(guān)《編譯原理第6章 習(xí)題與答案(3頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第6章 習(xí)題
6-1 將下列中綴式改寫為逆波蘭式。
(1) -A*(B+C)/(D-E)
(2) ((a*d+c)/d+e)*f+g
(3) a+x≤4∨(c>d*3)
(4) a∨b∧c∧ab+0≠a0<∧∨
6-3 將下列語句翻譯成四元式序列。
(1) X:=A*(B+C)+D
(2) if A∧(B∨(C∨D)) then S1 else S2
(3) while A0 do
2、 if A=1 then C:=C+1 else A:=A+2
6-4 設(shè)有二維PASCAL數(shù)組A[1··10, 1··20]和三維PASCAL數(shù)組B[1··10, 1··20, 1··30],給出賦值語句
A[I,J]:=B[J,I+J,I+1]+X
的四元式序列。
第5章 習(xí)題答案
6-1 解:
(1) A-BC+*DE-/
(2) ad*c+d/e+f*g+
(3) ax+4≤cd3*>∨
(4) abcde*f/<∧∨
6-2 解:
(1) a+b*c
(2) a*(b-c)-(c+d)/e
(
3、3) a≤b+c∧a>0∨a+b≠0∧a<0
6-3 解:
(1) (1) (+,B,C,T1)
(2) (*,A,T1 ,T2)
(3) (+,T2 ,D,T3)
(4) (=,T3 ,0,X)
(2) 如下所示:
(1) (jnz,A,0,3);
(2) (j,0,0,p+1);
(3) (jnz,B,0,9);
(4) (j,0,0,5);
(5) (jnz,C,0,9);
(6) (j,0,0,7);
(7) (jnz,D,0,9);
(8) (j,0,0,p+1);
(9) 與S1相應(yīng)的四元式序列
(p)
4、 (j,0,0,q)
(p+1) 與S2相應(yīng)的四元式序列
(q) …
(3) 假設(shè)所產(chǎn)生的四元式序列編號(hào)從1開始
(1) (j,B,0,5)
(4) (j,0,0,13)
(5) (j=,A,1,7)
(6) (j,0,0,10)
(7) (+,C,1,T1)
(8) (=,T1 , ,C)
(9) (j,0,0,1)
(10) (+,A,2,T2)
(11) (=,T2 , ,A)
(12) (j,0,0,1)
(13) …
6-4 解:
(1) (*,I,20
5、,T1)
(2) (+,J,T1,T1)
(3) (-,aA,CA ,T2)
(4) (+,I,J,T3)
(5) (*,J,20,T4)
(6) (+,T3 ,T4 ,T4)
(7) (+,I,1,T5)
(8) (*,T4,30,T6)
(9) (+,T5 ,T6 ,T6)
(10) (-,aB,CB ,T7)
(11) (=[],T7[T6],0,T8)
(12) (+,T8 ,X,T9)
(13) ([]=,T9 ,0,T2[T1])
(注:(1)~(3)是計(jì)算下標(biāo)變量A[I,J]地址的四元式,T2中存放的是CONSTPART部分,而T1中存放的是VARPART部分,aA表示數(shù)組A的首地址;
(4)~(10) 是計(jì)算下標(biāo)變量B[J,I+J,I+1]地址的四元式,T7中存放的是CONSTPART部分,而T6中存放的是VARPART部分,aB表示數(shù)組B的首地址。)