option
Cuestiones
ayuda
daypo
buscar.php

Teoría sobre lenguajes de programación

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
Teoría sobre lenguajes de programación

Descripción:
Para estudiantes de computación

Fecha de Creación: 2017/10/21

Categoría: Informática

Número Preguntas: 15

Valoración:(0)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

Suponga un lenguaje de programación con alcance estático y subrutinas de segunda clase que sólo pueden definirse a nivel global, potencialmente recursivas. Entonces siempre es cierto que: La cadena dinámica es inútil. Las clausuras de todas las subrutinas son vacías. Es indiferente si la asociación es superficial o profunda. Todas las anteriores.

Considere una computadora con espacio disponible de 30MB (donde cada bloque es de 15MB) y las siguientes solicitudes son realizadas por diferentes procesos: 1) El proceso A solicita 15MB de memoria al sistema, pero sólo hace uso de 6MB. 2) El proceso B solicita 15MB de memoria al sistema, usando todo el espacio asignado. 3) El proceso C solicita 5MB de memoria al sistema, y el mismo no logra asignarle memoria. ¿Por qué no se pudo procesar la solicitud del proceso C?. No existe suficiente memoria sin uso para cubrir la solicitud. Existe suficiente memoria, pero la fragmentación interna no permite aprovecharla. Existe suficiente memoria, pero la fragmentación externa no permite aprovecharla. Como 5MB no es potencia de dos, el sistema no sabe cómo tratar la solicitud.

Considere una computadora con espacio disponible de 30MB (donde cada bloque es de 5MB) y las siguientes solicitudes son realizadas por diferentes procesos: 1) El proceso A solicita 10MB de memoria al sistema, usando todo el espacio asignado. 2) El proceso B solicita 5MB de memoria al sistema, usando todo el espacio asignado. 3) El proceso A solicita 10MB más de memoria al sistema, usando todo el espacio asignado. 4) El proceso B libera los 5MB que había reservado, devolviéndolos al sistema. 5) El proceso C solicita 10MB de memoria al sistema y el mismo no logra asignarle memoria. ¿Por qué no se pudo procesar la solicitud del proceso C?. No existe suficiente memoria sin uso para cubrir la solicitud. Existe suficiente memoria, pero la fragmentación interna no permite aprovecharla. Existe suficiente memoria, pero la fragmentación externa no permite aprovecharla. Como 10MB no es una potencia de dos, el sistema no sabe cómo tratar la solicitud.

En Haskell, la función "length" calcula el tamaño de una lista, independientemente del tipo de los elementos de esa lista. Esto es un ejemplo de: Alias. Sobrecarga. Polimorfismo. Coerción.

Considere el siguiente fragmento de código, escrito en Haskell: map f = foldr mapper [] where mapper x y = f x : y ¿Cuál es la clausura de la función auxiliar mapper?. El conjunto vacío. { f, map, [] }. { f, (:) }. { f }.

Suponga un lenguaje de programación con alcance estático y subrutinas de segunda clase (potencialmente anidadas) pero sin recursión. Entonces siempre es cierto que: El ambiente de referencia en cualquier punto del código puede ser establecido estáticamente. Todas las variables locales podrían ser almacenadas en memoria estática. Es indiferente si la asociación es superficial o profunda. Todas las anteriores.

Suponga que en un lenguaje de programación se definen los módulos A y B. Desde el módulo B se pueden ver los nombres definidos en A, siempre y cuando se les coloque el prefijo "A::" (sin las comillas). Sin embargo, si en B se importa explícitamente a A, entonces todos los nombres de A son visibles en B sin necesidad del prefijo. ¿Qué modelo de importación de módulos es éste?. Importación abierta. Importación cerrada. Importación abierta selectiva. Importación cerrada selectiva.

Al hacer una solicitud de memoria de 10MB (solicitando espacio en el heap), siempre es cierto que: Si existen al menos 10MB libres en la memoria, la solicitud será concedida exitosamente. Si existen al menos 100MB libres en la memoria, la solicitud será concedida exitosamente. Como 10 no es una potencia de dos, la solicitud nunca podrá ser exitosa. Ninguna de las anteriores.

En Java, el operador (+) es asociado tanto con la suma de números, como con la concatenación de strings. Esto es un ejemplo de: Alias. Sobrecarga. Polimorfismo. Coerción.

Considere el siguiente fragmento de código: proc update(int a) { int b = 3; int c = c*b + a; d = c*c; } ¿Cuántas variables pertenecen a la clausura de "update"?. 0. 1. 2. 3.

Usted es el encargado de implementar el lenguaje Westeros, y quiere que su lenguaje esté disponible para usarse en cualquier ambiente y sobre cualquier plataforma. Decide entonces inspirarse en el sistema Pascal-Pcode, y proveer a los futuros usuarios con algunas herramientas que permitan adaptar el proceso. Crea un lenguaje, que llama Little Finger, que sirve como paso intermedio entre Westeros y una máquina M. Considere las siguientes herramientas. 1) Un intérprete para Little Finger, escrito en Westeros. 2) Un traductor de Westeros a Little Finger, escrito en Little Finger. 3) Un traductor de Westeros a Little Finger, escrito en Westeros. Queda como responsabilidad del usuario de este sistema traducir manualmente a M las herramientas que hagan falta. Por ejemplo: - Inspirado en (1) se puede construir un intérprete para Little Finger, escrito en M. - Inspirado en (3) se puede construir un traductor de Westeros a M, escrito en Westeros, ¿Cuáles de las herramientas anteriores son suficientes para poder ejecutar programas escritos en Westeros?. 1). 1) y 2). 1) y 3). 1), 2) y 3).

Cuando un lenguaje tiene alcance estático, siempre es cierto que: El ambiente de referencia se puede determinar de manera estática (no hace falta ejecutar el programa). La cadena dinámica es inútil. Se puede conocer, de manera estática (sin ejecutar el programa), si el programa dará un error por variable no declarada. Ninguna de las anteriores.

La fragmentación externa del heap puede ocurrir en caso de que: Un proceso pida más memoria de la que realmente necesita. Exista suficiente memoria libre en total para cubrir una petición, pero ningún bloque contiguo de memoria alcance para cubrirla. Un proceso libere un bloque de memoria y otro proceso diferente lo reserve. Todas las anteriores.

Considere as estrategias de First-Fit y Best-Fit para la asignación de bloques libres de memoria. ¿Cuál de las dos estrategias ofrece una ventaja real sobre la otra?. La estrategia de Best-Fit, ya que si existe una asignación óptima para una secuencia de solicitudes de memoria, esta estrategia la consigue. La estrategia de First-Fit, ya que a pesar de no generar una asignación óptima para secuencias de solicitudes de memoria, cada asignación puede resolverse de manera más eficiente. La estratefia de First-Fit, ya que admite incorporar el Buddy-System, mientras que la estrategia de Best-Fit no lo permite. No existe ventaja alguna entre usar First-Fit o Best-Fit.

¿Cuáles de las siguientes afirmaciones es cierta?. Python, Java y Haskell son lenguajes orientados a objetos. ML, Prolog y Scala son lenguajes funcionales. Haskell, C y Python tienen subrutinas de primera clase. Java, Haskell y C++ tienen recolector de basura.

Denunciar Test