2.14.6 PL/Traducción y ejecución de lenguajes (3 horas Core-Tier1)
Temas:
Core Tier2
- Interpretación vs. compilación a código nativo vs. compilación de representación portable intermedia.
- Pipeline de traducción de lenguajes: análisis, revisión opcional de tipos, traducción, enlazamiento, ejecución:
- Ejecución como código nativo o con una máquina virtual
- Alternativas como carga dinámica y codificación dinámica de código (o “just-in-time"")
- Representación en tiempo de ejecución de construcción del lenguaje núcleo tales como objetos (tablas de métodos) y funciones de primera clase (cerradas)
- Ejecución en tiempo real de asignación de memoria: pila de llamdas, montículo, datos estáticos:
- Implementación de bucles, recursividad y llamadas de cola
- Gestión de memoria:
- Gestión manual de memoria: asignación, limpieza y reuso de la pila de memoria
- Gestión automática de memoria: recolección de datos no utilizados (garbage colletion) como una técnica automática usando la noción de accesibilidad
Objetivos de Aprendizaje (Learning Outcomes):
Core-Tier2:
- Distinguir una definición de un lenguaje de una implementación particular de un lenguaje (compilador vs interprete, tiempo de ejecución de la representación de los objetos de datos, etc) [Familiarizarse]
- Distinguir sintaxis y parseo de la semantica y la evaluación [Familiarizarse]
- Bosqueje una representación de bajo nivel de tiempo de ejecución de construcciones del lenguaje base, tales como objetos o cierres (closures) [Familiarizarse]
- Explicar cómo las implementaciones de los lenguajes de programación tipicamente organizan la memoria en datos globales, texto, heap, y secciones de pila y cómo las características tales como recursión y administración de memoria son mapeados a esté modelo de memoria [Familiarizarse]
- Identificar y corregir las pérdidas de memoria y punteros desreferenciados [Usar]
- Discutir los beneficios y limitaciones de la recolección de basura (garbage collection), incluyendo la noción de accesibilidad [Familiarizarse]
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM