在设计布尔表达式翻译算法时,什么四元式表示当关系A1
A(jnz,A1,,p)
B(j<,a1,a2,p)
C(j,,,p)
D(j,A1,A2,p)
A(jnz,A1,,p)
B(j<,a1,a2,p)
C(j,,,p)
D(j,A1,A2,p)
第1题
有下列类C语言的语句 if(a>b)x=(x+y)↑2↑(y-1); else if(b>a)y=0; else y=x; (1)用逆波兰式表示该语句。 说明: ①“↑”表示乘幂运算,在逆波兰式中直接使用。 ②“+”、“-”、“>”、“=”运算符在逆波兰式中直接使用。 ③无条件转移操作符用“j”表示,条件成立转移的操作符用“jT”表示,条件不成立转移的操作符用“jF”表示;转移目标用逆波兰式的序号(自然数表示)。 (2)给出该语句语义处理的四元式形式的目标代码。 注意:给出的目标代码中语句标号的定义性出现用Li表示,其中i=1,2,…,n;语句标号的使用性出现用四元式序列的序号表示,序号用①,②,…表示。 操作符使用规定同(1)中的说明。 (3)给出该语句翻译后的标号表。标号表按以下示例内容填写:
第2题
赋值语句的文法及语义动作描述如下: (1)A→i:=E {GEN(:=,E.PLACE,_,ENTRY(i))} (2)E→E1+E2 {E.PLACE:=NEWTEMP;GEN(+,E1.PLACE,E2.PLACE,E.PLACE)} (3)E→E1*E2 {E.PLACE:=NEWTEMP;GEN(*,E1.PLACE,E2.PLACE,E.PLACE)} (4)E→-E1 (E.PLACE:=NEWTEMP;GEN(@,E1.PLACE,_E.PLACE)} (5)E→(E1) {E.PLACE:=E1.PLACE} (6)E→i {E.PLACE:=ENTRY(i)} 其中,GEN(:=,E.PLACE,_,ENTRY(i))表示把四元式(:=,E.PLACE,_,ENTRY(i)填入四元式表。ENTRY(i)表示i所代表的量在符号表的入口地址。E.PLACE表示存放E值的变量名在符号表的入口地址。 请写出赋值语句X:=-B*((C+D)+A的自下而上的语法制导翻译过程。
第5题
有下列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”标识的四元式。
第7题
设有语句: 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拉链一返填的描述。
第8题
A.ifAthentrueelseB;
B.ifAthenBelsefalse;
C.ifAthenfalseelsetrue;
D.ifAthentrueelsefalse;
第9题
A.错误
B.正确
第10题
在用积分加权平方误差准则设计FIR时,设理想低通滤波器的幅度函数D(Ω)在[0,π]范围的值为
加权函数W(Ω)在通带的值为常数Wp,在阻带的值为常数Ws,在过渡带的值为0。对Ⅰ型线性相位滤波器,试推导式矩阵C和列向量d的解析表达式。
第11题