Está en la página 1de 2

GENERADOR DE CDIGO OBJETO En el modelo de anlisis y sntesis de un compilador, la etapa inicial traduce un programa fuente a una representacin intermedia

a partir de la cual la etapa final genera el cdigo objeto. Los detalles del lenguaje objeto se confinan en la etapa final, si esto es posible. Aunque un programa fuente se puede traducir directamente al lenguaje objeto, algunas ventajas de utilizar una forma intermedia independiente de la mquina son: 1. Se facilita la re destinacin; se puede crear un compilador para una mquina distinta uniendo una etapa final para la nueva mquina a una etapa inicial ya existente. 2. Se puede aplicar a la representacin intermedia un optimizador de cdigo independiente de la mquina. El programa objeto puede tener distintas formas: Programa en lenguaje mquina absoluto (.EXE).- Tiene la ventaja que se puede colocar en una posicin fija de memoria y ejecutarse inmediatamente. Programa en lenguaje mquina re localizable (.OBJ).- Permite que los subprogramas se compilen por separado. Un conjunto de mdulos objetos re localizables se pueden enlazar y cargar para su ejecucin mediante un cargador enlazador. Programa en lenguaje ensamblador (.ASM).- Facilita el proceso de generacin de cdigo. Se puden generar instrucciones simblicas y utilizar las macros de ensamblador para ayudar a generar el cdigo.

Administracin de memoria. La correspondencia entre los nombres del programa fuente con direcciones de objetos de datos en la memoria durante la ejecucin la realiza la etapa inicial en cooperacin con el generador de cdigo. Las entradas en la Tabla de Smbolos se van creando conforme se examinan las declaraciones de un procedimiento. El tipo en una declaracin determina la cantidad de memoria necesaria para el nombre declarado. Segn la informacin de la Tabla de Smbolos se pueden determinar una direccin relativa para el nombre de un rea de datos para el procedimiento. Seleccin de instrucciones. Es importante que el conjunto de instrucciones sea uniforme y completo. Las velocidades de las instrucciones es un factor importante. Si no se tiene en cuanta la eficiencia del programa objeto, la seleccin de instrucciones es sencilla. Para cada tipo de proposicin de tres direcciones, se puede disear un esqueleto de cdigo. Asignacin de registros.

Las instrucciones que implican operandos en registros son generalmente ms rpidas que los operandos en memoria. Por lo tanto, utilizar eficientemente los registros es fundamental para generar un buen cdigo. El uso de registros se divide en dos sub problemas: Durante la asignacin de los registros: se selecciona el conjunto de variables que residirn en los registros en un momento del programa. Durante la fase posterior de asignacin a los registros, se escoge el registro especfico en el que residir una variable.

Eleccin del orden de evaluacin. El orden en que se realizan los clculos puede variar la eficiencia del cdigo objeto. Algunos ordenamientos de los clculos necesitan menos registros que otros para guardar resultados intermedios.

También podría gustarte