PUERTA | GATE-CS-2017 (Conjunto 1) | Pregunta 14

Considere el siguiente programa intermedio en código de tres direcciones

p  = a - b
q = p * c
p = u * v
q = p + q

¿Cuál de las siguientes corresponde a una única asignación estática del código anterior?

A)

p1 = a - b
q 1 = p1 * c
p1 = u * v
q1 = p1 + q1  

B)

p3 = a - b
q4 = p3 * c
p4 = u * v
q5 = p4 + q4

C)

p 1 = a - b
q1 = p2   * c
p3 = u * v
q2 = p4 + q3

D)

p1 = a - b
q1 = p * c
p2 = u * v
q2 = p + q

(A) A
(B) B
(C) C
(D) D

Respuesta: (B)
Explicación: De acuerdo con la Asignación Única Estática

  1. Una variable no se puede utilizar más de una vez en el LHS
  2. Una variable debe inicializarse al menos una vez.

Ahora mirando las opciones dadas

  • a – el código viola la condición 1 ya que p1 se inicializa nuevamente en esta declaración: p1 = u * v
  • c- el código no es válido ya que q 1 = p 2 * c , q 2 = p 4 + q 3 – En estas sentencias p 2 , p 4 , q 3 no se inicializan en ninguna parte
  • d- el código no es válido ya que q 2 = p + q es incorrecto sin moverlo al registro

Por lo tanto, la opción B es la única opción correcta.

Cuestionario de esta pregunta

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *