全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
某基本块中,虚拟寄存器 u、v、w、z 的活跃区间两两重叠,因此它们在干涉图中两两相邻。分配阶段仅有 3 个可用物理寄存器,冲突变量不能共用寄存器。为完成合法分配,至少需要溢出多少个虚拟寄存器?___
登录后查看答案
在基于图着色的寄存器分配中,设可用物理寄存器数为 k,干涉图中某变量 x 的度数(相邻冲突变量个数)为 d。有同学断言:若 d ≥ k,则该干涉图必定不能用 k 种颜色完成着色,即 x 及其相邻变量必无法在 k 个寄存器内完成分配。试判断该说法的正误。
某语言规定值-结果传递在调用时按形参顺序分别复制实参初值,返回时也按形参顺序依次将形参值写回实参。过程 P(a,b) 的执行体依次为 a:=14;b:=27。调用前 z=8,执行 P(z,z)。判断:调用返回后 z=14。
某过程采用栈式存储分配并递归调用自身。外层调用尚未返回时,内层调用开始执行。有人据此断言:两个尚未结束的调用共用同一份活动记录。判断该断言是否正确。
某参数表的语法制导定义为 P → T id ; P₁,语义规则 P₁.off = P.off + T.width;末项产生式 P → T id 的语义规则为 P.end = P.off + T.width。off 表示参数起始偏移,末项不再有后继参数,参数连续存放且不对齐。首项偏移为 16 字节,依次声明 a:int、b:real、c:char、d:int,类型宽度分别为 4、8、2、4 字节。按该属性规则,c 的起始偏移为 ____ 字节。
判断下列说法的正误:采用标记-清扫式垃圾回收时,回收过程会把所有可达对象移动到堆的一端紧凑存放,从而消除内存碎片。
某语言采用栈式存储分配。过程 F 被递归调用 3 层(即 F 调用 F,F 再调用 F),每次活动记录大小相同。关于这 3 个活动记录,下列说法正确的是: A. 三次活动的活动记录共用同一块存储空间,后一次覆盖前一次 B. 三个活动记录依次压入运行栈,最新一层 F 的活动记录位于栈顶 C. 三个活动记录在栈中按调用顺序从栈顶向栈底排列 D. 最先调用的 F 的活动记录位于栈顶,最后调用的位于栈底
过程 T(p,q) 的执行体依次为 p:=23;q:=51。调用 T(w,w) 前 w=6。按值调用时形参彼此独立;按引用调用时形参直接引用实参;按值-结果调用时先按形参顺序复制实参初值,结束时再按形参顺序写回。三种方式下过程结束后 w 的值依次为 ____。
在栈式存储分配的运行时环境中,每次过程调用时,系统都会在运行栈栈顶为该次活动分配一个____;当该过程执行结束返回时,其对应的活动记录会被____出栈。若过程 A 正在执行过程中调用了过程 B,则此时运行栈中活动记录的分配顺序是:先分配____的活动记录,后分配 B 的活动记录。
给定语法及翻译规则:E→E₁+T,生成新临时变量 t,输出 t=E₁.place+T.place,并令 E.place=t;E→T 时令 E.place=T.place;T→id 时令 T.place=id.lexeme。按自底向上归约翻译 a+b+c,所得三地址代码为 t₁=b+c;t₂=a+t₁。判断该表述是否正确。
给定文法 S → B C,B → p | q,C → r | s。采用语法制导定义:B → p 的规则为 B.v = 4,B → q 的规则为 B.v = 7;C → r 的规则为 C.v = 2,C → s 的规则为 C.v = 5;S → B C 的规则为 S.v = 10×B.v + C.v。对串 q s 进行语法制导翻译,根结点的 S.v = ____。
某编译器采用栈式分层符号表:每进入一个新作用域建新表压栈,退出时弹栈;查标识符时从栈顶向下逐层查找,取最先命中者。当前符号表栈从底到顶依次为:全局层(含 a、b)、函数 f 层(含 b、c)、块 B 层(含 c、d)。此时在块 B 中引用标识符 b,其查到的声明所属作用域及若随后退出块 B 后再引用 b,查到的声明所属作用域分别是:A. 块 B 层;函数 f 层 B. 函数 f 层;全局层 C. 函数 f 层;函数 f 层 D. 全局层;函数 f 层
设语法制导翻译方案中,产生式 E → ( E₁ ) 的语义动作为 E.place := E₁.place,E → id 的语义动作为 E.place := id.place。若产生式 S → id := E 对应输出三地址代码 S.place := E.place,则翻译输入串 x := ( y ) 时输出的三地址代码是( ) A. x := y B. x := ( y ) C. t1 := x D. x := x
设文法 G:S→aBc,B→bB | ε。将其改造为 LL(1) 文法并用预测分析法分析:因为 FIRST(bB)={b},FOLLOW(B)=____(写出集合元素),所以当分析栈顶为 B、当前输入符号为 c 时,应选用产生式____。
在语法制导翻译中,某文法有产生式 E → E₁ * T,其语义规则为 E.val = E₁.val × T.val。若在一次自底向上的分析归约该产生式时,属性栈中 E₁.val = 5,T.val = 3,则按该语义规则计算得到的 E.val = ____。本题中 E.val 属于综合属性还是继承属性?答:____属性。
判断:对产生式 A → X Y,若语义规则规定 Y.i = X.s,其中 Y.i 是 Y 的属性、X.s 是 X 的综合属性,那么 Y.i 应归类为综合属性,因为它的值由子结点属性计算得到。
设字母表 Σ={a,b},连接、并及 Kleene 星分别用并置、|、* 表示。某正规集由所有恰好含两个 a(可相邻)的符号串构成。表示该正规集且不含多余能力的最简正则表达式为 ____
执行下列程序段后,d 的值是( )。 int a=1, b=2, c=3, d; d = a << b + c & 7 ? b++ : ++c; A. 0 B. 2 C. 3 D. 4
阅读下面的 C 程序段: int i, j, s = 0; for (i = 1; i <= 4; i++) { for (j = 1; j <= 5; j++) { if ((i + j) % 3 == 0) continue; if (j > i + 2) break; s += i * j; } } 程序运行后,变量 s 的值为 ___。
阅读以下 C 程序片段,写出 printf 的输出结果:___ int i, j, c = 0; for (i = 0, j = 10; i < j; i++, j -= 3) { if (i % 2 == 0) continue; c += j; if (c > 10) break; } printf("%d,%d,%d", i, j, c);