GoConqr has a new look! Let us know what you think.

Flashcards

SYSDELL - PARCIAL 2

María Agustina Romera Spanish 50 cards

Cards in this deck (50)

  1. 1¿Quién o quienes gestionan la memoria de ejecución?El sistema operativo. Intenta brindarle a un programa los recursos justos y necesarios, para el control eficiente de recursos dentro de la computadora y la seguridad de la misma.
  2. 2¿Qué ocurre en los lenguajes compilados con el código ejecutable?En un lenguaje compilado, el código ejecutable se fija antes de la ejecución.
  3. 3¿Qué voy a tener que almacenar en la memoria del sistema antes o durante la ejecución del programa?Datos globales (variables globales, constantes)
    Datos de procedimientos y funciones (creados cuando se llaman a funciones o procedimientos. Incluyen cosas como los valores que pasas a una función, las variables que usa la función y datos temporales que necesita para funcionar)
    Datos impredecibles (no siguen un patrón predefinido y no se sabe cuánto espacio van a necesitar. El sistema les asigna una área llamada heap)
  4. 4¿Qué me influye en la generación de código?El SO, la arquitectura de la máquina y el lenguaje empleado.
  5. 5¿Cómo se divide, generalmente, la RAM a la hora de ejecutar un programa?La RAM suele dividirse en un área de datos(impredecible y dinámica) y un área de código(deducible y estática).
  6. 6Diferencie la memoria de datos globales, de datos de funciones y al montículoLa primera es ocupada antes de la ejecución
    La segunda, se va ocupando a medida que avanza la ejecución, como una pila.
    El montículo está al fondo de todo, es donde se arrojan datos impredecibles y dinámicos.
  7. 7¿Qué es una unidad de programa?Una unidad de programa es un algo que puede segmentarse en un fragmento de código separado (procedimientos, clases, bucles, iteraciones, selecciones, etc.) y que se activa en tiempo de ejecución.
  8. 8¿Cómo se llaman las variables propias de una unidad de programa? ¿Y las de su contenedor respecto a dicha unidad? ¿Puede acceder a ellas?Se llaman variables locales. Las de su contenedor, se llaman variables no locales, y en muchos casos sí, puede acceder a ellas.
  9. 9¿Qué es un registro de activación?Es una estructura que contiene información de cada llamada a una unidad.
    Está dentro de las instancias, y se crea uno por cada llamada de la misma unidad.
  10. 10¿Qué es una instancia?Es una estructura subdividida en:
    segmento de código (memoria de código), que es igual para todas las llamadas.
    Registro de activación (memoria de datos), diferente para cada llamada.
  11. 11¿Cómo está conformado un RA genérico?Dirección del retorno de la unidad.
    Parámetros reales
    Variables locales
    Datos temporales
    Datos de administración
    Y puede almacenar otras características e información, dependiendo del ambiente y la unidad.
  12. 12¿Cómo puedo activar unidades?Secuencialmente: por orden de aparición.
    Anidadamente: Puedo activar una función, que está dentro de otra, y así sucesivamente.
    Recursión: Una función que se activa a sí misma, directa o indirectamente.
  13. 13¿Qué es un ambiente de ejecución? ¿Quién los provee?Son los recursos y servicios necesarios para ejecutar software, que estructuran la memoria que usarán. Generalmente, los provee el sistema operativo (compilados), aunque a veces son proporcionados por terceros (la web, máquinas virtuales) (interpretados)
  14. 14¿Cuáles son los tipos de ambientes de ejecución?Son tres:
    Completamente estáticos
    Basados en pilas
    Completamente dinámicos
  15. 15Desarrolle "Ambientes de ejecución completamente estáticos"Comunes en lenguajes antiguos como FORTRAN y COBOL.
    Usan la zona global de la memoria
    La ligadura se realiza antes de la ejecución
    Conozco TODOS los RA, los valores, y los almaceno sin importar si voy a utilizarlos o no.
    Es ineficiente y desperdicia recursos.
  16. 16Desarrolle "Ambientes de ejecución completamente dinámicos"Se utilizan más que nada en POO, para programas que requieren crear nuevas unidades a lo largo de la ejecución.
    Todos los datos se van directa y automáticamente al heap.
    Como el heap se llena rápido, en segundo plano se ejecuta la recolección de basura: Se eliminan objetos inútiles, sólo si no tienen referencias que apunten a ellos.
  17. 17Desarrolle "Ambientes basados en pilas"Utilizan la parte de la pila de la memoria
    Tienen varios tipos de variables
    No conozco los registros de activación antes de la ejecución
    Tienen una gestión de la memoria compleja.
    Ideal para lenguajes con recursión, anidación de bloques, y asignación dinámica limitada.
  18. 18¿Cuáles son las variables de los ambientes basados en pilas?Semi-estáticas
    Semi-dinámicas
    Dinámicas
    Enlace estático
  19. 19Desarrolle las variables semi-estáticas, nombre qué solucionan y cómo.Semi-estáticas: No conozco el registro de activación, pero sí su tamaño final. Solucionan el problema de bloques anidados a través de un enlace dinámico, donde un puntero va desde la unidad hasta el RA de su contenedora, perforando la pila.
    Semi-dinámicas:
  20. 20Desarrolle las variables semi-dinámicas, nombre qué solucionan y cómo.Conozco el registro de activación, pero no su tamaño final. Resuelve asunto de arreglos de tamaño dinámico, utilizando descriptores de variables y almacenando los datos de dichas variables, todo dentro del RA
  21. 21Desarrolle las variables dinámicas, nombre qué solucionan y cómo.La cantidad de memoria requerida para el registro es desconocida. Para almacenar esas variables en el registro, no vamos a alojar el dato puro, sino que vamos a almacenar (en el heap) un puntero que me apunte a ese dato.
  22. 22Desarrolle al enlace estático, nombre qué soluciona y cómo.Soluciona el problema de funciones declaradas dentro de otras funciones. Crea una cadena estática que permite que los hijos puedan ver a sus contenedores/padres y acceder a sus variables. Se hace a través de un puntero desde el RA del hijo al RA del padre.
  23. 23¿Cómo debo definir adecuadamente la semántica de un lenguaje de programación?A través de la matemática. Tiene semántica propia, por lo que, al definir la semántica del los LP a través de ella, voy a poder devolverle un significado a los cómputos del los LP.
  24. 24¿Qué es la semántica de un LP?¿Qué se espera de ella?Define los efectos del cómputo en el programa. (¿Qué hace este código?)
    Se espera que: Determine significados a sentencias, que determine si las sentencias tienen sentido o no, que determine resultados esperados y los compare con los verdaderos, y que realicen pruebas matemáticas.
  25. 25Los programas se componen de ..., que a su vez tienen ..., tales como ..., ... y ...ENTIDADES
    ATRIBUTOS
    IDENTIFICADOR, DIRECCIÓN, VALOR
  26. 26¿Qué es la ligadura?Proceso por el cual asigno atributos a una entidad.
  27. 27¿Cómo puede ser la ligadura?Estática: Cuando se realiza antes de la ejecución.
    Dinámica: Cuando se realiza durante la ejecución.
  28. 28Nombre los atributos de una variable y clasifíquelos en estáticos o dinámicos. Ejemplifique cada caso.Identificador: estático
    Dirección: estático (var. global) o dinámico (var local)
    Valor: estático (constantes) o dinámico (contadores)
    Tipos: estático (java) o dinámico (Python). Según la tipificación del lenguaje.
    Ámbito: Estático (Globales, locales) o dinámico (variables declaradas con static)
    Tiempo de vida: Estático (global) o dinámico (local)
  29. 29¿Cuáles son los tipos de semántica y sus subtipos?Estática: Intenta especificar la semántica antes de la ejecución. Divide en dirigida por la sintaxis e informal
    Dinámica: Intenta modelar la ejecución de los LP. Divide en operacional, denotacional y axiomática
  30. 30Desarrolle semántica informalEs la descripción textual, en cualquier idioma, de los efectos del cómputo. Es informal y ambigua, pero permite dar a entender el lenguaje.
  31. 31Desarrolle semántica dirigida por la sintaxisEstablece una relación entre la sintaxis y la semántica de un LP, expresándola a gramática de atributos (relacionando terminales y no terminales).
    Un ejemplo de su uso es la correspondencia de datos. Si a y b son enteros, el resultado de su suma debe ser un entero.
  32. 32Desarrolle semántica operacionalLas construcciones del lenguaje se traducen a lenguaje máquina. Utiliza una máquina abstracta, apegada a la arquitectura de Von Neumann, para modelar el comportamiento del programa. Es una semántica incompleta.
    Es un caso especial de la semántica denotacional
  33. 33Desarrolle semántica denotacionalUtiliza funciones matemáticas, que tienen un dominio (dominio sintáctico) y un rango (dominio semántico), para representar la semántica. Es una semántica completa, pero muy compleja.
    Estado de programa: me permite ver el estado actual de todas las variables.
  34. 34Desarrolle semántica axiomáticaDescribe los efectos del programa mediante afirmaciones lógicas, que pueden ser precondiciones o postcondiciones(verdaderas antes o después de la ejecución). Es una semántica incompleta y muy compleja. Se emplea para prueba de errores.
  35. 35Cuál es correcta acerca de un ambiente de ejecución basado en pilas? Justificar F a. Se usa en lenguajes con funciones recursivas b. Los valores de las variables dinámicas se almacenan en los RA de la pila c. La cadena dinámica permite a un bloque acceder al ambiente no local, según su orden de activacióna y c son correctas. b es falsa, debido a que lo que se almacena en el RA de la pila es la dirección a los valores dinámicos, los valores van al montículo.
  36. 36Cuál es correcta acerca de un ambiente de ejecución dinámico? Justificar F a. Son utilizados en lenguajes orientados a objetos. b. Utilizan una estructura de pila modificada c. Todos los RA se pueden eliminar al salir de las unidades de programaa es verdadero. b es falso, ya que no utilizan una estructura como tal, todo va al montículo.
    c es falsa, porque puedo eliminar los RA de objetos inutilizables sólo cuando estos carecen de referencias hacia ellos.
  37. 37V O F: Unidades de programas y RA. Justificar F. a. Las instancias de una misma unidad comparten registros de activación. b. Efecto colateral es cuando una unidad de programa modifica un dato de una variable no local. c. Una instancia de unidad está compuesta por un RA y un segmento de códigoB y C son verdaderas. A es falsa, debido a que las instancias de una misma unidad presentan distintos RA, pero sí comparten un mismo segmento de código.
  38. 38En los ambientes de ejecución estáticos... (V o F, justificar F) a. Los requerimientos de memoria se terminan de fijar durante la ejecución. b. Son propios de lenguajes sin punteros o asignación dinámica. c. Todas las variables, sean locales, globales o no locales, son estáticas.B y C son verdaderas. A es falsa, debido a que conozco la cantidad de memoria que voy a utilizar incluso antes de ejecutar el programa.
  39. 39¿Qué ambiente de ejecución es propio de los siguientes paradigmas? Imperativos (FORTRAN, ENSAMBLADOR) Imperativos estructurados (C) Orientados a objetos (C#, JAVA) Funcionales (Scheme) Lógicos: (Prolog) Relacionales (SQL)Imperativos: Completamente estáticos.
    Imperativos estructurados: Basados en pilas.
    Orientados a objetos: Completamente dinámicos.
    Funcionales: Completamente dinámicos.
    Lógicos: Completamente dinámicos.
    Relacionales: Completamente dinámicos.
  40. 40¿Qué es un parámetro formal?¿Y uno real?Un parámetro formal es una plantilla para los parámetros reales. Es decir, moldea cómo deben ser los datos que debo pasarle al procedimiento o función
  41. 41¿Cuáles son los modos de operación que ofrece el mecanismo de paso de parámetros?Son tres, el modo in, el modo out y el modo in-out.
  42. 42Desarrolle modo in, out e in-outin: sólo lectura, es decir, sólo veo los valores de los parámetros formales.
    out: sólo escritura, el procedimiento le va a dar un valor a los parámetros.
    in-out: puedo ver los valoes de los parámetros y asimismo modificarlos, retornando un valor.
  43. 43¿Qué puedo pasar como parámetro?Datos, prodecimientos/funciones y tipos.
  44. 44¿Cómo puedo pasar datos como parámetros?Por copia: Copio los parámetros reales, que actuan como variables locales.
    Se divide en: Por valor (veo el valor del parámetro real y lo copio, modo in), por resultado(el parámetro real va a estar vacío, pero lo modifico dentro del procedimiento. Hago una copia para retornarla. Modo out) y por valor-resultado(Modo in-out, combina los otros dos)
    Por nombre: Paso el identificador de la variable. Útil para funcionales
    Por referencia: Al parámetro le entrego una dirección, y manipulo a la variable real. Modo in-out. Útil para TDA.
  45. 45¿Cómo puedo pasar tipos datos como parámetros? ¿Para qué me sirve?Paso el nombre del tipo como parámetro. Me sirve para poder crear tipos y procedimientos genéricos, reutilizables.
  46. 46¿Cómo puedo pasar procedimientos o funciones como parámetros? ¿Para qué me sirve?Paso el identificador del procedimiento/función, y me sirve para utilizar procedimientos auxiliares.
  47. 47En un ambiente de referencia de una instancia de unidad... a. El ambiente local está asociado únicamente a los datos del RA de la unidad b. Las variables, según el ambiente de referencia, pueden ser locales o regionales c. El ambiente de referencia de una instancia se conforma por las variables globales.B es falsa porque la clasificación correcta es locales, no locales y globales.
    C es falsa, porque el ambiente de referencia de una instancia también se compone por variables locales y no locales.
  48. 48Un ambiente de ejecución basado en pilas... a. Es propio de lenguajes orientados a objetos y declarativos. b. Puedo almacenar direcciones de variables dinámicas en los RA. c. Cuando una variable local tiene el mismo nombre que una variable en su unidad contenedora, la variable interior enmascara a la contenedora.A es falsa. Para dichos lenguajes, voy a utilizar ambientes completamente dinámicos. Ambiente basado en pilas es útil para lenguajes imperativos procedimentales que admiten recursión y punteros, entre otras cosas.
  49. 49En la semántica operacional... a. Se traducen las construcciones del lenguaje a un lenguaje impropio. b. La máquina abstracta utilizada se moldea a las necesidades del lenguajes. c. La máquina abstracta asegura la ejecución eficiente del programa.a. Falso, se traducen a lenguaje máquina.
    c. Falso, se utiliza sólo para definir formalmente el significado de los programas
  50. 50¿En qué modo de paso de parámetros puedo modificar a los datos reales?Copia por resultado y copia por valor-resultado

Information

Description
Unidades 6 y 7 de sintaxis y semántica de los lenguajes de programación.
Views
1
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?