El menor número de variables temporales requeridas para crear un código de tres direcciones en forma de asignación única estática para la expresión q + r/3 + s – t * 5 + u * v/w es
(A) 4
(B) 8
(C ) 7
(D) 9
Respuesta: (B)
Explicación:
La respuesta correcta es 8. Esta pregunta se hizo como una pregunta de tipo de relleno en blanco en el examen.
El código de tres direcciones es un código intermedio generado por los compiladores mientras optimizan el código. Cada instrucción de código de tres direcciones puede tener como máximo tres operandos (constantes y variables) combinados con una asignación y un operador binario. El punto a tener en cuenta en el código de tres direcciones es que las variables utilizadas en el lado izquierdo (LHS) de la asignación no se pueden repetir de nuevo en el lado LHS. La asignación única estática (SSA) no es más que un refinamiento del código de tres direcciones.
Entonces, en esta pregunta, tenemos
t1 = r / 3; t2 = t * 5; t3 = u * v; t4 = t3 / w; t5 = q + t1; t6 = t5 + s; t7 = t6 - t2; t8 = t7 + t4;
Por lo tanto, necesitamos 8 variables temporales (t1 a t8) para crear el código de tres direcciones en forma de asignación única estática.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA