4.30.5.2 Traducción y ejecución de lenguajes (10 horas) [Habilidades C8]

Referencias Bibliográficas: [,,,,,] Tópicos
  1. Interpretación vs. compilación a código nativo vs. compilación de representación portable intermedia.
  2. Pipeline de traducción de lenguajes: análisis, revisión opcional de tipos, traducción, enlazamiento, ejecución:
    1. Ejecución como código nativo o con una máquina virtual
    2. Alternativas como carga dinámica y codificación dinámica de código (o ``just-in-time"")
  3. 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)
  4. Ejecución en tiempo real de asignación de memoria: pila de llamdas, montículo, datos estáticos:
    1. Implementación de bucles, recursividad y llamadas de cola
  5. Gestión de memoria:
    1. Gestión manual de memoria: asignación, limpieza y reuso de la pila de memoria
    2. 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
  1. 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]
  2. Distinguir sintaxis y parseo de la semantica y la evaluación [Evaluar]
  3. Bosqueje una representación de bajo nivel de tiempo de ejecución de construcciones del lenguaje base, tales como objetos o cierres (closures) [Evaluar]
  4. 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]
  5. Identificar y corregir las pérdidas de memoria y punteros desreferenciados [Evaluar]
  6. 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, Universidad de Ingeniería y Tecnología, Lima-Perú
basado en el modelo de la Computing Curricula de IEEE-CS/ACM