2.5.19 FPL/Generación de Código
Temas:
Non Core
- Conjuntos de instrucciones
- Flujo de control
- Gestión de memoria
- Llamadas a procedimientos y despacho de métodos (method dispatching)
- Compilación separada; enlace (linking)
- Selección de instrucciones
- Planificación de instrucciones (por ejemplo, encadenamiento - pipelining)
- Asignación de registros
- Optimización de código como una forma de análisis de programas
- Generación de programas mediante IA generativa
Aprendizaje esperado (Learning Outcomes):
NonCore:
- Identificar todos los pasos esenciales para convertir automáticamente código fuente en lenguaje ensamblador u otros lenguajes de bajo nivel [Analizar]
- Explicar el código de bajo nivel necesario para llamar a funciones/métodos en lenguajes modernos [Explicar]
- Discutir por qué la compilación separada requiere convenciones de llamada uniformes [Debatir]
- Discutir por qué la compilación separada limita la optimización debido a efectos desconocidos de las llamadas [Debatir]
- Discutir oportunidades para la optimización introducidas por la traducción ingenua y enfoques para lograr la optimización, como selección de instrucciones, planificación de instrucciones, asignación de registros y optimización de mirilla (peephole optimization) [Debatir]
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM