| | 1. En la primera entrega de prácticas la búsqueda de factores y términos se realizaba... |
| | Por arbol.arg(1) |
| | Por arbol.arg(2) |
| | Por arbol.arg(0) y arbol.arg(1) |
| | Por arbol.arg(1) y arbol.arg(2) |
| | Ninguna de las anteriores. |
| | No contesto... |
| |
| | 2. En el folding implementado en la práctica se detecta que A es una constante con las condiciones: |
| | TypeP(Integer, A) && TypeP(Real, A) |
| | TypeP(int, A) && TypeP(float, A) && TypeP(double, A) |
| | TypeP(Int, A) && TypeP(Real, A) |
| | TypeP(String, A) && TypeP(Real, A) |
| | Ninguna de las anteriores. |
| | No contesto... |
| |
| | 3. El algoritmo de folding implementado en la práctica busca |
| | factores y términos. |
| | factores, términos y expresiones. |
| | factores, términos, expresiones y asignaciones. |
| | factores, términos y asignaciones. |
| | Ninguna de las anteriores. |
| | No contesto... |
| |
| | 4. El núcleo de la división en bloques básicos es: |
| | una función recursiva donde se da un tratamiento diferente a cada instrucción de control de flujo. |
| | un bloque donde se da un tratamiento diferente a cada instrucción de control de flujo. |
| | Un switch donde se da un tratamiento diferente a cada instrucción de control de flujo. |
| | a) y c) |
| | Ninguna de las anteriores. |
| | No contesto... |
| |
| | 5. La división en bloques básicos utiliza una estructura de: |
| | Lista de listas de apuntadores (links) |
| | Lista de listas de árboles (applys) |
| | Lista de vectores de apuntadores (links) |
| | Lista de vectores de árboles (applys) |
| | Ninguna de las anteriores. |
| | No contesto... |
| |
| | 6. La implementación de la propagación de constantes se basa en |
| | reconstruir el árbol completo con las variables sustituidas por constantes. |
| | Modificar el árbol con las sustituciones de variables por constantes. |
| | Sustituir las asignaciones de variables por constantes en el árbol. |
| | b) y c) |
| | Ninguna de las anteriores. |
| | No contesto... |
| |
| | 7. Las llaves de la instrucción compuesta forma un árbol con la estructura |
| | Apply(InstrComp, instrucción1, instrucción2, ...) |
| | Apply(InstrComp, Apply(\;, instrucción1, Apply(\;, instrucción2, ...))) |
| | Apply(InstrComp,Apply(\;Apply(\;, instrucción1, instruccion2),...)) |
| | Apply(InstrComp,{instrucción1, instrucción2,...}) |
| | Ninguna de las anteriores. |
| | No contesto... |
| |
| | 8. La búsqueda de invariantes de bucle tiene que conocer |
| | Las variables que se modifican en el bucle. |
| | Las operaciones que pueden formar parte de una invariante. |
| | Las instrucciones que se puede asegurar que se ejecutarán en cada iteración del bucle. |
| | Todas las anteriores. |
| | Ninguna de las anteriores. |
| | No contesto... |
| |
| | 9. La instrucción do_while forma un árbol con la estructura: |
| | Apply(do_while, cuerpo, condición) |
| | Apply(do_while,condición, cuerpo) |
| | Apply(do, cuerpo, Apply(while, condición)) |
| | Apply(while, condición, cuerpo) |
| | Ninguna de las anteriores. |
| | No contesto... |
| |
| | 10. Después de aplicar la reducción de frecuencia implementada en la práctica puede pasar que... |
| | La condición de los bucles while y do_while se dupliquen. |
| | La condición de los bucles while no se duplique y la condición de los do_while si se duplique. |
| | La condición de los bucles while se duplique y la condición de los do_while no se duplique. |
| | La condición de los bucles while y do_while no se duplique nunca. |
| | Ninguna de las anteriores. |
| | No contesto... |
| |