对以下程序,给出四元式形式的中间代码,并进行可能的代码优化,给出优化后的代码程序。 (1)D=D
对以下程序,给出四元式形式的中间代码,并进行可能的代码优化,给出优化后的代码程序。 (1)D=D+C*B A=D+C*B C=D+C*B (2)J=1 B=(5*J-2)+J (3)for I=1 to 10 do x=2*J+I
对以下程序,给出四元式形式的中间代码,并进行可能的代码优化,给出优化后的代码程序。 (1)D=D+C*B A=D+C*B C=D+C*B (2)J=1 B=(5*J-2)+J (3)for I=1 to 10 do x=2*J+I
有下列C语言的源程序段
说明: ci、ei、si为C语言的合法语句,ci和ei的中间代码分别为:ci.code和ei.code,其语义值分别为Ci和Ei。Si的中间代码为Si.code。 Li是已设置好的在生成的中间代码中要用到的语句标号。 要求针对给出的程序代码设计合理的中间代码结构,写出该源程序段语义处理后的四元式形式的目标代码,并填人在下面给出的code区中。 注意: ①转移类四元式的转向目标统一写在四元式的result位置。 ②无条件转移操作符用“j”表示。例如,(j,,,Li)表示无条件转移到“Li”标识的四元式。 ③有条件转移操作符用“ji”表示。例如,(jT,Ei,,Li)表示当Ei值为真时,转移到“Lj”标识的四元式。有条件转移操作符用“jF”表示。例如,(jF,Ei,,Lj)表示当Ei值为假时,转移到“Li”标识的四元式。
试将以下的源程序翻译成四元式形式的代码程序,并对其进行局部和循环优化(x,y都是10 X 20的数组,设数组每维的下限为1)。 FOR m=1 to 10 do FOR n=1 to 20 do x[m,n]=y[m,n]*5
设有语句: if(ex)S1;else S2; 该语句执行功能的流程图如图6—1所示。
要求: (1)根据流程图描述的语义为上面的语句设计代码(四元式)结构填入下面代码区:
注意: ①语句ex、S1、S2的中间代码可以用ex,code、S1.code、S2.code表示。 ②转移类四元式的转向目标统一写在四元式的result位置。 无条件转移操作符用“j”表示,例如,(j,,,100)表示无条件转移到addr为100的四元式。 有条件转移操作符用“jT”表示为“真”转移。例如,(jTex值,,100)表示对ex值进行判断,当ex值为真时转移到地址为100的四元式。类似地有转移操作符“jF”表示为“假”转移。 ③code部分可以有空语句,即code部分不填写任何内容。 (2)给出语句标号next拉链一返填的描述。