Professional Documents
Culture Documents
MATERIA:
GRADO Y GRUPO:
7 A
PRESENTAN:
FACILITADOR:
Contenido
Introduccin............................................................................................................................... 3
UNIDAD 4 GENERACION DE CODIGO OBJETO .............................................................. 3
4.1 REGISTROS......................................................................................................................... 4
4.2 LENGUAJE ENSAMBLADOR. ......................................................................................... 5
4.3 Lenguaje mquina. ............................................................................................................ 6
4.4 Administracin de memoria. .......................................................................................... 6
BIBLIOGRAFIA .......................................................................................................................... 8
Introduccin
La generacin de cdigo es una de las fases mediante el cual un compilador
convierte un programa sintcticamente correcto en una serie de instrucciones a
ser interpretadas por una mquina. Casi siempre este trmino se refiere al
cdigo mquina que puede ejecutarse directamente en la unidad central de
proceso (CPU) del sistema, pero tambin puede ser cdigo fuente de lenguaje
ensamblador o una variante de cdigo mquina. Tambin se debe mencionar
que los registros del procesador se emplean para controlar instrucciones en
ejecucin, manejar direccionamiento de memoria y proporcionar capacidad
aritmtica. Los registros son espacios fsicos dentro del microprocesador.
Caractersticas:
El programa destino debe preservar el significado semntico del programa fuente
y ser de alta calidad; es decir, debe hacer un uso efectivo de los recursos
disponibles de la maquina destino. Adems, el generador de cdigo en si debe
ejecutarse con eficiencia.
Seleccin de instrucciones.
Ordenamiento de instrucciones.
4.1 REGISTROS
Las consideraciones a tener para el generador de cdigo consisten en la
asignacin de registros. Los registros son los elementos ms valiosos y escasos
en la fase de generacin de cdigo, puesto que el CPU solamente puede
procesar datos que se encuentren en registros. Adems, las instrucciones que
implican operandos en registros son ms cortas y rpidas que las de operandos
en memoria.
A menudo el uso de los registros se divide en dos subproblemas:
1.- Reparticin de registros, durante la cual se selecciona el conjunto de variables
que residirn en los registros, en cada punto del programa.
2.- Asignacin de registros, durante la cual se elige el registro especfico en el
que residir una variable.
Es difcil encontrar una asignacin ptima de registros a variables, incluso en las
mquinas con un solo registro. En sentido matemtico, el problema es NP completo. El problema se complica an ms debido a que el hardware y el
sistema operativo de la mquina destino pueden requerir que se sigan ciertas
convenciones de uso de registros.
Descriptores de registros y direcciones.
El algoritmo de generacin de cdigo utiliza descriptores para seguir de cerca el
contenido de los registros y las direcciones para los nombres.
1.- Un descriptor de registros sabe lo que hay en cada registro. Es consultado
siempre que se necesite un nuevo registro. Se supone que inicialmente el
descriptor de registros muestra que todos los registros estn vacos. (Si los
registros se asignan entre los bloques, este no sera el caso.) Conforme avanza
la generacin de cdigo para el bloque, cada registro contiene siempre el valor
de cero o ms nombres.
2.- Un descriptor de direcciones conoce la posicin (o posiciones) donde se
puede encontrar el valor en curso del nombre durante la ejecucin. La posicin
puede ser un registro, una posicin en la pila, una direccin de memoria o
conjunto de estos porque cuando se copia, un valor tambin pertenece donde
estaba, esta informacin se puede almacenar en la tabla de smbolos y se utiliza
para determinar el mtodo de acceso a un nombre.
4
Los
programas
hechos
en
lenguaje
ensamblador
son
En general el lenguaje mquina es difcil de entender para los humanos por este
motivo hacemos uso de lenguajes ms parecidos a los lenguajes naturales.
Caractersticas
El lenguaje mquina realiza un conjunto de operaciones predeterminadas
llamadas micro operaciones.
Las micro operaciones slo realizan operaciones del tipo aritmtica (+,-,*, /),
lgicas (AND,
OR, NOT) y de control (secuencial, decisin, repetitiva).
El lenguaje mquina es dependiente del tipo de arquitectura. As un programa
mquina para una arquitectura Intel x86 no se ejecutar en una arquitectura
Power PC de IBM (al menos de manera nativa).
Algunos microprocesadores implementan ms funcionalidades llamado CISC,
pero son ms lentos que los RISC ya que estos tienen registros ms grandes.
BIBLIOGRAFIA
Libro: Compiladores Principios, tcnicas y herramientas
Segunda Edicin
Autores: Afred V. Aho, Monica S. Lam, Ravi Sethi Jeffrey D. Ullman
Libro: Compiladores principios, tcnicas y herramientas. Sptima Edicin.
Autores: Alfred V. Aho. Ravi Sethi. Jeffrey D. Ullaman.
Editorial: Pearson (Addission Wesley.)