Referencias Bibliográficas: [Aho et al., 2011,Louden, 2004a,Teufel and Schmidt, 1998,Appel, 2002]
Temas
- 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
- 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) [Evaluar]
- Distinguir sintaxis y parseo de la semantica y la evaluación [Evaluar]
- Bosqueje una representación de bajo nivel de tiempo de ejecución de construcciones del lenguaje base, tales como objetos o cierres (closures) [Evaluar]
- 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 [Evaluar]
- Identificar y corregir las pérdidas de memoria y punteros desreferenciados [Evaluar]
- Discutir los beneficios y limitaciones de la recolección de basura (garbage collection), incluyendo la noción de accesibilidad [Evaluar]
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM