Вы находитесь на странице: 1из 10

Inst ior d

Sup
itut
e r
oT
ecn
eM
EQUIPO:
JUAN CARLOS CANUL PECH
FELIPE PUC UC

oló
DANIEL US

o t ul
gico
Lenguajes y Autómatas I

Compiladores:

I.S.C. Luis Gilberto Tec Cetz,


M.T.I.
Generación de Código
Generación de Código

Mantener la semántica del programa

El programa traducido debe tener alta calidad:

Producir código correcto


• Uso efectivo de los recursos
• Correr eficientemente = “buen código” (generar la traducción óptima es un problema indecidible)

4
Compiladores

Generador de código objeto:


Toma como entrada la representación intermedia y genera el código objeto. La op
timización depende de la máquina, es necesario conocer el conjunto de instruccio
nes, la representación de los datos (número de bytes), modos de direccionamient
o, número y propósito de registros, jerarquía de memoria, encauzamientos, etc.
Suelen implementarse a mano, y son complejos porque la generación de un buen
código objeto requiere la consideración de muchos casos particulares.

5
Generador de código objeto
Aspectos generales

Administración de memoria:
La correspondencia entre los nombres del programa fuente con direcciones de objetos de datos en la memoria du
rante la ejecución la realiza la etapa inicial en cooperación con el generador de código. Las entradas en la Tabla de
Símbolos se van creando conforme se examina las declaraciones de un procedimiento. El tipo en una declaración
determina la cantidad de memoria necesaria para el nombre declarado.

Selección de instrucciones:

Asignación de registros:
Es importante que el conjunto de instrucciones sea uniforme y completo. Las velocidades de las instrucciones es u
Las instrucciones
n factor importante.queSiimplican operando
no se tiene en registros
en cuenta sondel
la eficiencia generalmente más rápidas
programa objeto, que las
la selección dede los operando
instrucciones es en
sen
memoria. Por lotipo
cilla. Para cada tanto, utilizar eficientemente
de proposición los registros
de tres direcciones, es fundamental
se puede diseñar unpara generar
esqueleto deun buen código. El uso de
código.
registros se divide en dos subproblemas:

6
Selección de instr
ucciones: Ejemplo: código de tres direcciones de:
X:= y + z
MOV R0 , y /* cargar y en el registro R0 */
ADD R0 ,z /* suma z a R0 */
MOV R0, x /* almacenar R0 en x */

7
Generador de Código
subproblemas:

Durante la asignación de los r Durante la fase posterior de asignació


egistros: n a los registros
Se selecciona el conjunto de variab Se escoge el registro específico en
les que residirá en los registros en el que residirá una variable. Elecci
un momento del programa. ón del orden de evaluación: el ord
en en que se realizan los cálculos p
uede variar la eficiencia del código
objeto. Algunos ordenamientos de
los cálculos necesitan menos regist
ros que otros para guardar resulta
dos intermedios.

8
Biografia

https://es.wikipedia.org/wiki/Generaci%C3%B3n_de_c%C3%B3digo

The Power of PowerPoint | thepopp.com 9


Thank You for Watching!

Вам также может понравиться