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...