Lic. Informatica

Páginas: 20 (4951 palabras) Publicado: 5 de mayo de 2013
Procesadores de Lenguajes
Ingeniería Técnica superior de Ingeniería Informática
Departamento de Lenguajes y Sistemas informáticos

Generación de
código final
Traducción a código objeto
Javier Vélez Reyes
jvelez@lsi.uned.es
Departamento de Lenguajes Y Sistemas Informáticos
UNED

Generación de código final. Traducción a código objeto
Objetivos

Objetivos
› Entender la relación deproximidad entre código intermedio y código objeto
› Entender en qué consiste el proceso de generación de código final
› Aprender los pasos que es necesario dar para llevarlo cabo con éxito
› Entender las implicaciones del entorno de ejecución en el proceso
› Tipo de arquitectura de ejecución y juego de instrucciones
› Mapa de memoria y modos de direccionamiento
› Conocer los diferentes tipode arquitectura de ejecución que existen
› Conocer los diferentes modos de direccionamiento que existen
› Aprender a implementar un generador de código objetos eficaz
› Aprender a separar los aspectos dependientes e independientes del entorno
› Adquirir una visión crítica acerca del proceso de construcción de generadores de código
› Advertir la naturaleza potencialmente ineficiente delproceso de generación de código
› Motivar y justificar el estudio de técnicas de optimización de código

Javier Vélez Reyes jvelez@lsi.uned.es

Generación de código final. Traducción a código objeto
Índice

Índice
› Introducción
› Resolución de referencias simbólicas
› Modos de direccionamiento
› Modos de direccionamiento & entornos de ejecución
› Traducción al juego de instrucciones
›Máquinas a pila
› Máquinas con registro acumulador
› Máquinas con código de tercetos
› Máquinas con código de cuartetos
› Generación de código final en la práctica
› Bibliografía

Javier Vélez Reyes jvelez@lsi.uned.es

Generación de código final. Traducción a código objeto
Introducción

Generación de código final
La fase de generación de código final tiene por objeto traducir lasecuencia de instrucciones de código
intermedio en una colección de instrucciones ejecutables y direccionables en una arquitectura física
específica. Las condiciones arquitectónicas del entorno de ejecución van a condicionar
considerablemente este proceso de traducción
MV a t1
MV b t2
GRT t3 t1 t2
BRZ t3 L1 …

Foco de atención
El generador de código intermedio
toma una a una las instruccionesde
código intermedio y las traduce a
código ejecutable

Generación de
código final
0000 0011
0000 0011
0100 0001
0100 0000
0001 0010


Los lenguaje de
código intermedio
utilizado conviene
que se acerquen
estructuralmente
lo máximo posible
al
juego
de
instrucciones de
la
arquitectura
final para que el
proceso
de
traducción sea lo
más
directo
posible
Javier VélezReyes jvelez@lsi.uned.es

Generación de código final. Traducción a código objeto
Introducción

Flujos de generación de código final
La generación de código ejecutable de un código fuente puede hacerse a través de varios flujos o rutas
de traducción. Lo más frecuente es que la traducción se haga directamente al código objeto final. Sin
embargo algunos compiladores ofrecen la opción de generarcódigo ensamblador de la máquina objeto
que posteriormente es ensamblado
If (a > b) then
a = a - b;

MOVE t2 b

00000001 10010100 01100100

MOVE t1 a

else
b = b + 1;

CMP t1 t2

 Traducción directa a código final

BZ E1
SUB t3 t1 t2
E1: MOVE t4 #1

Nosotros traduciremos nuestro
código a ensamblador y
acabaremos ahí

ADD t5 t2 t4
MOVE b t5

00100011 10010100 1001010100101100 00001100 00101100

Foco de atención



MOVE a t3

00000001 10010101 10001100

LD #20[.IX] /100

00000101 10010110 10010100 10010101
00000001 01100100 10010110
00000001 10010110 00000001
00000100 10010111 10010101 10010110
00000001 10010101 10010111

LD #21[.IX] #12[.IX]
CMP #20[.IX] #21[.IX]
BZ E1
SUB #22[.IX] #20[.IX] #21[.IX]

 Traducción a
código...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Lic. Informatica
  • Lic. En Informática
  • Lic. en Informatica
  • Lic. Informatica
  • LIC. INFORMATICA
  • Lic informatica
  • Lic Informatica
  • Lic En Informatica

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS