Algunas optimizaciones de código se llevan a cabo en el código intermedio porque
(A) mejoran la portabilidad del compilador a otros procesadores de destino
(B) el análisis del programa es más preciso en el código intermedio que en el código de máquina
(C) la información del análisis del flujo de datos no puede ser de otro modo utilizarse para la optimización
(D) la información del front-end no puede utilizarse de otro modo para la optimización
Respuesta: (A)
Explicación: La opción (B) también es cierta. Pero el objetivo principal de optimizar el código en la generación de código intermedio es mejorar la portabilidad del compilador a los procesadores de destino. Entonces, la opción A) es más adecuada aquí.
El código intermedio es un código independiente de la máquina/arquitectura. Así un compilador puede optimizarlo sin preocuparse por la arquitectura sobre la que se va a ejecutar el código (puede ser la misma o la otra). Entonces ese tipo de compilador puede ser utilizado por múltiples arquitecturas diferentes.
Por el contrario, supongamos que la optimización del código se realiza en el código de destino, que depende de la máquina/arquitectura, entonces el compilador debe ser específico sobre las optimizaciones en ese tipo de código. En este caso, el compilador no puede ser utilizado por múltiples arquitecturas diferentes, porque el código de destino producido en diferentes arquitecturas sería diferente. Por lo tanto, la portabilidad se reduce aquí.
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