| | 1. OPTIMIZACIÓN DE CÓDIGO
¿Qué ventaja ofrece el código intermedio respresentado con tripletas indirectas? |
| | Unas instrucciones no dependen de las otras. |
| | Las dependecias entre instrucciones se expresan explícitamente. |
| | El código se puede reordenar fácilmente. |
| | b) y c) |
| | Ninguna de las anteriores. |
| | No contesto... |
| |
| | 2. ¿Qué desventajas tiene el código en postorden? |
| | Es difícil reordenarlo. |
| | Es difícil generarlo. |
| | Su interpretación es lenta. |
| | Utiliza muchos registros. |
| | Ninguna de las anteriores. |
| | No contesto... |
| |
| | 3. ¿Qué ventajas ofrece el código en forma de árbol sintáctico abstracto? |
| | Facilita la aplicación de las propiedades de las operaciones aritméticas. |
| | Se puede interpretar rápidamente. |
| | Su representación es próxima al código máquina. |
| | Simplifica la partición en bloques básicos. |
| | Ninguna de las anteriores. |
| | No contesto... |
| |
| | 4. ¿Qué propiedades cumple un bloque básico? |
| | Tiene un único punto de entrada y salida |
| | Las instrucciones se ejecutan todas o ninguna |
| | Hay un único orden posible para la ejecución de las instrucciones |
| | Todas las anteriores |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 5. Un bloque básico puede contener: |
| | Un salto incondicional al final del bloque |
| | Un salto condicional al final del bloque |
| | a) y b) |
| | No puede contener saltos |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 6. En que orden se tiene que aplicar el folding y la propagación de constantes para obtener la mejor optimización? |
| | folding, propagación de constantes |
| | propagación de constantes, folding |
| | a) y b) |
| | Se han de aplicar varias veces hasta que el código no varie |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 7. La reducción de potencia es |
| | Un método de optimización local |
| | Un método de optimización de bucles |
| | a) y b) |
| | Un método de optimización global |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 8. ¿Qué optimizaciones se ven beneficiadas por el loop unrolling? |
| | folding, reducción de potencia, propagación de constantes |
| | folding, reducción de potencia |
| | folding, reducción de potencia, propagación de constantes, eliminación de subexpresiones comunes, reducción de frecuencia |
| | folding, propagación de constantes |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 9. ESTRUCTURAS COMPLEJAS
El código generado por un goto puede realizar las siguientes tareas: |
| | Crear bloques de activación y saltar |
| | Eliminar bloques de activación y saltar |
| | Crear bloques de activación, construir objetos y saltar |
| | Eliminar blqoues de activación, destruir objetos y saltar |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 10. Al compilar un throw |
| | Se conoce la dirección de código a la que hay que saltar |
| | No se conoce la dirección de código a la que hay que saltar |
| | Se conoce la dirección de código a la que hay que saltar si en el código fuente esta dentro de un try catch |
| | Se conoce la dirección de código a la que hay que saltar si en el código fuente esta dentro de una función |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 11. ¿Cómo se puede optimizar un switch? |
| | Crear una tabla ordenada con valores del case y direcciones de código. Generar el código que realiza una búsqueda binaria por la tabla y salta al encontrar el valor que busca |
| | Si el intervalo de los valores de los cases es pequeño, crear una tabla de saltos indexada por el valor de la expresión del switch |
| | Generar un código que compara con cada valor de case |
| | a) y b) |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 12. GESTIÓN DE MEMORIA DINÁMICA (HEAP)
¿Qué ventajas ofrece la gestión de memoria implícita respecto a la explícita? |
| | Desarrollo más rápido |
| | Velocidad |
| | Optimiza el uso de la memoria |
| | Reduce los fallos de página |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 13. ¿Qué método de gestión de memoria es más rápido? |
| | Gestión mediante lista de bloques libres |
| | Gestión mediante bloques etiquetados en los extremos |
| | Gestión mediante bloques compañeros |
| | Gestión mediante contadores de referencias |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 14. La gestión mediante bloques etiquetados en los extremos |
| | Realiza búsquedas al pedir memoria |
| | Realiza búsquedas al liberar memoria |
| | No realiza búsquedas |
| | a) y b) |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 15. ¿Cuál de las siguientes afirmaciones es cierta? |
| | La complejidad de marcar y barrer es lineal respecto a la memoria utilizada por el programa y la del recolector por copia es lineal respecto a la memoria utilizada por el programa |
| | La complejidad de marcar y barrer es lineal respecto a la memoria utilizada por el programa y la del recolector por copia es lineal respecto al tamaño del heap |
| | La complejidad de marcar y barrer es lineal respecto al tamaño del heap y la del recolector por copia es lineal respecto a la memoria utilizada por el programa |
| | La complejidad de marcar y barrer es lineal respecto al tamaño del heap y la de recolector por copia es lineal respecto al tamaño del heap |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 16. ¿Cuál de las siguientes afirmaciones es cierta? |
| | El recolector por copia no puede trabajar con estructuras e datos cíclicas |
| | El recolector marcar y barrer no puede trabajar con estructuras de datos cíclicas |
| | La gestión de memoria explícita no puede trabajar con estructuras de datos cíclicas |
| | Las estructuras de datos cíclicas no son un problema para ningún método de gestión de memoria |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 17. ¿Cuál es la información mínima que ha de conocer la gestión de memoria implícita de cada bloque de memoria? |
| | Tamaño y contenido |
| | Tamaño y número de celdas |
| | Tamaño y apuntadores que contiene el bloque de memoria |
| | Tamaño y el tipo del bloque de memoria |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 18. PROGRAMACIÓN FUNCIONAL
La optimización de la recursividad en cola... |
| | Evita el crecimiento excesivo de la pila de argumentos |
| | Evita el crecimiento excesivo de la pila de contexto |
| | Elimina los argumentos de la pila |
| | Elimina el uso del display |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 19. ¿Qué ha de contener una clausura? |
| | La dirección de entrada de la función |
| | La dirección de entrada de la función y la base del ámbito de la función donde se ha definido la clausura |
| | El nombre de la función |
| | a) y c) |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 20. ¿Qué sería incorrecto en un lenguaje funcional? |
| | Definir una función dentro de otra |
| | Retornar un apuntador a una variable local |
| | Definir una función lambda |
| | Definir una variable local |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 21. El ámbito de una función se puede encontrar |
| | En la pila de contexto |
| | En la pila de argumentos |
| | En el heap |
| | a) y c) |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 22. PROGRAMACIÓN LÓGICA
¿Cómo se representa el desconocido? |
| | Mediante un apuntador cíclico |
| | Mediante un átomo |
| | Mediatne un functor |
| | Mediante un valor constante |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 23. ¿Cuándo se puede eliminar un ámbito de la pila en prolog? |
| | Al acabar la ejecución de una regla y si no tiene por encima ningún punto de elección |
| | Al acabar la ejecución de una regla |
| | Sólo después de un cut |
| | Al salir de una función |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 24. ¿Qué problemas aporta el backtracking a su implementación? |
| | Tener que guardar el estado de ejecución del programa |
| | Complica el código de la unificación |
| | El desconocido se ha de representar de forma compleja |
| | La pila de argumentos no se puede vaciar |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 25. PROGRAMACIÓN ORIENTADA A OBJETO
¿Cuándo un objeto se puede referenciar con más de una dirección? |
| | En el caso de herencia simple |
| | En el caso de herencia múltiple |
| | En el caso de tener funciones virtuales |
| | En el caso de ser una clase base |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 26. ¿Cuándo puede ser necesario aplicar un desplazamiento para obtener la dirección correcta de un objeto? |
| | En el paso por referencia |
| | Al llamar a un método |
| | Al llamar a una función virtual |
| | b) y c) |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 27. Las tablas virtuales se utilizan para... |
| | Implementar las funciones virtuales |
| | Poder identificar el tipo de un objeto en tiempo de ejecución |
| | a) y b) |
| | Implementar clases virutales |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 28. ESPECIFICACIÓN DE LENGUAJES DE PROGRAMACIÓN
La semántica interpretativa intenta representar |
| | El comportamiento de los programas de un lenguaje |
| | El cálculo de los atributos |
| | Las restricciones semánticas de un lenguaje |
| | El análisis semántico de un lenguaje |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 29. En una gramática con atributos se ha de considerar |
| | El recorrido del árbol que realiza el analizador sintáctico |
| | La variación de los valores de los atributos |
| | El contenido de las variables asociadas a los símbolos no terminales |
| | Todas las anteriores |
| | Ninguna de las anteriores |
| | No contesto... |
| |
| | 30. ¿Qué relaciones de cálculo se pueden dar en una gramática con atributos? |
| | Un atributo puede depender de cualquier otro atributo de la misma regla BNF |
| | Un atributo heredado sólo puede depender de otros atributos heredados |
| | Un atributo sintetizado sólo puede depender de otros atributos sintentizados |
| | Sólo los atributos heredados pueden depender de cualquier atributo |
| | Ninguna de las anteriores |
| | No contesto... |
| |