Segunda Parte

  1. Manipulación de Memoria.

    Organización de la memoria en tiempo de ejecución. La memoria estática. La pila. El heap.

  2. Generación de Código Intermedio.

    Lenguajes intermedios. Declaraciones. Proposiciones de asignación. Expresiones booleanas. Proposiciones case. Relleno de retroceso. Llamadas a procedimientos

  3. Generación de Código.

    Bloques básicos y grafos de flujo. Distribución y asignación de registros. Optimización mediante mirilla. Generadores de generadores de código.

  4. Optimización de Código.

    Optimización de bloques básicos. Bucles en los grafos de flujo. Introducción al análisis global del flujo de datos. Solución iterativa de las ecuaciones de flujo de control. Transformaciones para mejorar el código. Tratamiento de alias. Análisis de flujo de datos de grafos de flujo estructurados. Algoritmos eficientes para el flujo de datos.