5.35.4.2 Traducción y Ejecución de Lenguajes (24 horas) [Habilidades AG-C08,AG-C12]

Referencias Bibliográficas: [Aho et al., 2006,Appel, 2004]

Temas

  1. Modelos de ejecución para JIT (Just-In-Time), compilador, intérprete
  2. Uso de código intermedio, por ejemplo, bytecode
  3. Limitaciones y beneficios de JIT, compilador e intérprete
  4. Compiladores/transpiladores cruzados (cross compilers/transpilers)
  5. Representación BNF y BNF extendida de gramática libre de contexto
  6. árbol de análisis (parse tree) usando una oración simple como expresión aritmética o sentencia if-then-else
  7. Ejecución como código nativo o dentro de una máquina virtual
  8. Canalización de traducción de lenguaje: análisis sintáctico, análisis (parsing), verificación de tipos opcional, generación de código/traducción y optimización, enlace (linking), carga (loading), ejecución
  9. Representación en tiempo de ejecución de construcciones centrales del lenguaje como objetos (tablas de métodos) y funciones que pueden pasarse como parámetros a y devolverse desde funciones (clausuras)
  10. Desarrollo seguro de compiladores

Aprendizaje esperado (Learning Outcomes)

  1. Explicar y comprender las diferencias entre implementaciones de lenguaje compilado, JIT e interpretado, incluyendo los beneficios y limitaciones de cada una [Explicar]
  2. Diferenciar sintaxis y análisis (parsing) de semántica y evaluación [Diferenciar]
  3. Usar BNF y BNF extendida para especificar la sintaxis de construcciones simples como if-then-else, declaración de tipo y construcciones iterativas para lenguajes conocidos como C++ o Python [Usar]
  4. Ilustrar el árbol de análisis usando una oración/expresión aritmética simple [Aplicar]
  5. Ilustrar traducción de diagramas de sintaxis a BNF/BNF extendida para construcciones simples como if-then-else, declaración de tipo, construcciones iterativas, etc [Aplicar]
  6. Ilustrar ambigüedad en el análisis usando if-then-else anidado/expresión aritmética y mostrar resolución usando orden de precedencia [Aplicar]
  7. Discutir los beneficios y limitaciones de la recolección de basura, incluyendo la noción de alcanzabilidad [Debatir]

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