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)  [Assessment]
 
- Distinguir sintaxis y parseo de la semantica y la evaluación  [Assessment]
 
- Bosqueje una representación de bajo nivel de tiempo de ejecución de construcciones del lenguaje base, tales como objetos o cierres (closures)  [Assessment]
 
- 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  [Assessment]
 
- Identificar y corregir las pérdidas de memoria y punteros desreferenciados  [Assessment]
 
- Discutir los beneficios y limitaciones de la recolección de basura (garbage collection), incluyendo la noción de accesibilidad  [Assessment]
 
Generado por Ernesto Cuadros-Vargas ,               Sociedad Peruana de Computación-Peru,               basado en el modelo de la Computing Curricula de               IEEE-CS/ACM