PUERTA | GATE-CS-2016 (Conjunto 1) | Pregunta 29

Considere el siguiente segmento de código.

x = u - t;
y = x * v;
x = y + w;
y = t - z;
y = x * y; 

El número mínimo de variables totales necesarias para convertir el segmento de código anterior en un formulario de asignación única estática es

 
Nota: esta pregunta se hizo como tipo de respuesta numérica.
(A) 6
(B) 8
(C) 9
(D) 10

Respuesta: (D)
Explicación: La asignación única estática se usa para el código intermedio en el diseño del compilador. En el formulario de asignación única estática (SSA), cada asignación a una variable debe especificarse con nombres distintos. Usamos subíndices para distinguir cada definición de variables.

En el segmento de código dado, hay dos asignaciones de la variable x

x = u - t;
x = y + w;

y tres asignaciones de la variable y.

y = x * v;
y = t - z;
y = x * y 

Así que usamos dos variables x1, x2 para especificar distintas asignaciones de x e y1, y2 e y3 cada asignación de y. Entonces, el número total de variables es 10 (x1, x2, y1, y2, y3, t, u, v, w, z).
El formulario de asignación única estática (SSA) del segmento de código dado es:

x1 = u - t;
y1 = x1 * v;
x2 = y1 + w;
y2 = t - z;
y3 = x2 * y2;

Consulte el siguiente enlace para obtener más detalles
https://www.cs.cmu.edu/~fp/courses/15411-f08/lectures/09-ssa.pdf

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 *