4.50.2.1 Representación de programas (5 horas) [Habilidades a,b]

Referencias Bibliográficas: [Louden, 2004b] Temas
  1. Programas que tienen otros programas como entrada tales como interpretes, compiladores, revisores de tipos y generadores de documentación.
  2. Arboles de sintaxis abstracta, para contrastar la sintaxis correcta.
  3. Estructuras de datos que representan código para ejecución, traducción o transmisión.
  4. Compilación en tiempo just-in time y re-compilación dinámica.
  5. Otras características comunes de las máquinas virtuales, tales como carga de clases, hilos y seguridad.

Objetivos de Aprendizaje

  1. Explicar como programas que procesan otros programas tratan a los otros programas como su entrada de datos [Familiarity]
  2. Describir un árbol de sintaxis abstracto para un lenguaje pequeño [Familiarity]
  3. Describir los beneficios de tener representaciones de programas que no sean cadenas de código fuente [Familiarity]
  4. Escribir un programa para procesar alguna representación de código para algún propósito, tales como un interprete, una expresión optimizada, o un generador de documentación [Familiarity]
  5. Explicar el uso de metadatos en las representaciones de tiempo de ejecución de objetos y registros de activación, tales como los punteros de la clase, las longitudes de arreglos, direcciones de retorno, y punteros de frame [Familiarity]
  6. Discutir las ventajas, desventajas y dificultades del término (just-in-time) y recompilación automática [Familiarity]
  7. Identificar los servicios proporcionados por los sistemas de tiempo de ejecución en lenguajes modernos [Familiarity]

Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM