2.5.20 FPL/Comportamiento en Tiempo de Ejecución y Sistemas
Temas:
Non Core
- Modelos de proceso usando pilas y montones para asignar y desasignar registros de activación y recuperar entornos usando punteros de marco (frame pointers) y direcciones de retorno durante una llamada a procedimiento, incluyendo ejemplos de paso de parámetros
- Esquemas de búsqueda de código usando tablas hash para métodos en implementaciones de programas orientados a objetos
- Distribución de datos para objetos y registros de activación
- Asignación de objetos en el montón (heap)
- Implementar entidades virtuales y métodos virtuales; tablas de métodos virtuales (virtual method tables) y su aplicación
- Comportamiento en tiempo de ejecución de programas orientados a objetos
- Comparar y contrastar la asignación de memoria durante el intercambio de información usando paso de parámetros y variables no locales (usando cadena de enlaces estáticos).
- Enfoques y técnicas de gestión dinámica de memoria: malloc/free, recolección de basura (mark-sweep, copying, reference counting), regiones (también conocidas como arenas o zonas)
- Compilación justo a tiempo (just-in-time) y recompilación dinámica
- Interfaz con el sistema operativo (por ejemplo, para inicialización del programa)
- Interoperabilidad entre lenguajes de programación incluyendo mecanismos de paso de parámetros y representación de datos:
- Big endian, little endian
- Distribución de datos de tipos de datos compuestos como arreglos
- Otras características comunes de las máquinas virtuales, como carga de clases (class loading), hilos (threads) y verificación de seguridad
- Sandboxing
Aprendizaje esperado (Learning Outcomes):
NonCore:
- Discutir beneficios y limitaciones de la gestión automática de memoria [Debatir]
- Explicar el uso de metadatos en representaciones en tiempo de ejecución de objetos y registros de activación, como punteros de clase, longitudes de arreglo, direcciones de retorno y punteros de marco (frame pointers) [Explicar]
- Comparar y contrastar asignación estática vs asignación basada en pila vs asignación basada en montón de elementos de datos [Comparar]
- Explicar por qué algunos elementos de datos no pueden desasignarse automáticamente al final de una llamada a procedimiento/método (necesidad de recolección de basura) [Explicar]
- Discutir ventajas, desventajas y dificultades de la compilación justo a tiempo y la recompilación dinámica [Debatir]
- Discutir el uso del sandboxing en código móvil [Debatir]
- Identificar los servicios proporcionados por los sistemas en tiempo de ejecución de lenguajes modernos [Analizar]
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM