Compiladors II - 25002
Desconocido - I
1. ESTRUCTURAS COMPLEJAS
¿Cuál es la diferéncia básica entre un goto no local y un try and catch?
En un goto se conoce la dirección a saltar en tiempo de compilación
Un goto se puede utilizar para salir de una función
Un goto se puede saltar fuera de una función
Un goto se puede utilizar para tratar errores
Ninguna de las anteriores
No contesto...
2. ¿Cuándo se puede implementar un throw como un goto?
Siempre
Nunca
Sólo si se encuentra fuera de una estructura try and catch
Sólo si se encuentra dentro de una estructura try and catch
Ninguna de las anteriores
No contesto...
3. ¿Cómo se puede implementar la gestión de excepciones sin que se les tenga que aplicar un (???) se produce:
Utilizando una tabla donde se indican los intervalos de código que corresponden a cada estructura (???)
Utilizando un goto no local
Guardando información de los controladores activos en una pila
Modificando vectores de interrupción del sistema operativo
Ninguna de las anteriores
No contesto...
4. GESTIÓN DE MEMORIA DINÁMICA (HEAP)
¿Cómo afecta la gestión de memoria dinámica implícita a la programación orientada a objeto?
Casi elimina la necesidad de constructores y destructores
Casi elimina la necesidad de constructores
Casi elimina la necesidad de destructores
Su efecto es el mismo para cualquier otra técnica de programación
Ninguna de las anteriores
No contesto...
5. ¿Qué puede pasar cuando un gestor por contador de referencias libera un bloque de memoria?
Se libera el bloque y nada más
Se puede producir una liberación en cascada de otro bloques
Pude ser necesario actualizar otros contadores
b) y c)
Ninguna de las anteriores
No contesto...
6. ¿Cuáles son los principales problemas que añade la gestión de memoria implícita respecto la explícita?
Tener que dar todos los apuntadores del programa
Marcar cada bloque de memoria como libre u ocupado
Realizar búsquedas de bloques libres
La fragmentación de la memoria
Ninguna de las anteriores
No contesto...
7. PROGRAMACIÓN FUNCIONAL
¿Cómo se puede acceder a las variables de una función después de haber acabado su ejecución?
No es posible
Mediante una clausura de una función definida en su ámbito local
Mediante un constructor
Llamando de nuevo a la función
Ninguna de las anteriores
No contesto...
8. ¿Cuáles son los problemas que aporta la implementación de la programación funcional respecto a la implementación de la programación imperativa?
Uso intensivo de la recursividad
Acceso a variables locales de una función después de acabar su ejecución
Transparencia referencial
a) y b)
Ninguna de las anteriores
No contesto...
9. 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...
10. PROGRAMACIÓN LÓGICA
¿Para qué sirve un bloque de elección (choice point)?
Guarda el estado de las pilas en una bifurcación no determinista
Protege contra el borrado a los ámbitos
Es la base para la implementación del backtracking
Todas las anteriores
Ninguna de las anteriores
No contesto...
11. ¿Cómo se representa el desconocido?
Mediante un apuntador cíclico
Mediante un átomo
Mediante un functor
Mediante un valor constante
Ninguna de las anteriores
No contesto...
12. PROGRAMACIÓN ORIENTADA A OBJETO
¿Cuántas direcciones de memoria se utiliza para referenciar un objeto?
Una dirección
Varias direcciones según la profundidad del árbol de herencia
Una dirección si sólo hay herencia simple
Una dirección si hay herencia múltiple
Ninguna de las anteriores
No contesto...
13. ¿Cómo se implementan las funciones virtuales?
Mediante una tabla de funciones virtuales a la que apuntan todos los objetos de la misma clase
Mediante una tabla de funciones virtuales para cada objeto
Cada objeto tiene un único apuntador a su tabla de funciones virtuales
El código de llamada a una función virtual es el mismo que se utiliza para los métodos no virtuales
Ninguna de las anteriores
No contesto...
14. 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...
15. ¿Qué significa no poder aplicar ninguna transición de estado en la ejecución (???) gramática interpretativa, sin estar vacia la secuencia de programa (???)?
El programa no podrá funcionar en una implementación real
El comportamiento del programa no está definido
La ejecución se parará por error
a) y b)
Ninguna de las anteriores
No contesto...
16. ¿Qué relaciones de cálculo se pueden dar en una gramática (???)
Un atributo puede depender de cualquier otro atributo de la (???)
Un atributo heredado sólo puede depender de otros atributos (???)
Un atributo sintetizado sólop uede depender de otros (???)
Sólo los atributos heredados pueden depender de cualquier (???)
Ninguna de las anteriores
No contesto...
17. ¿Qué ventajas aporta el uso de gramáticas con atributos?
Son independientes del analizador sintáctico utilizado
Su notación marca donde se pueden producir errores semánticos
a) y b)
Se implementan fácilmente
Ninguna de las anteriores
No contesto...
Check...