Generación de Código Intermedio
INDEPENDENCIA DE LA MÁQUINA
Según el modelo de arquitectura
de un compilador en el que éste se divide en frontend y backend, la etapa
inicial traduce el programa fuente a una representación intermedia a partir de
la cual la etapa final genera el código objeto, ya sea en forma de código
máquina o ensamblador.
La construcción del lenguaje objeto en
la etapa final, facilita la reutilización del
frontend para crear otros compiladores
del mismo lenguaje pero que generan
código para otras plataformas.
¿A QUÉ LE LLAMAMOS CÓDIGO
INTERMEDIO?
Es una simplificación
de los lenguajes de alto nivel en la que se
elimina las estructuras y las declaraciones y
con sentencias cercanas al ensamblador.
¿PARA QUE LO UTILIZAMOS?
El código intermedio se utiliza en un compilador por
las siguientes razones:
1. Es mas fácil hacer la conversión en dos fases.
2. Independiza el analizador sintáctico del resto
del compilador.
Es mas sencillo aplicar la optimización sobre
instrucciones independientes del hardware que
sobre instrucciones dependientes.
¿A QUÉ LE LLAMAMOS LENGUAJE
INTERMEDIO?
Los lenguajes intermedios son representaciones
abstractas de un leguaje fuente.
Algunas representaciones obsoletas o en desuso
son los árboles sintácticos.
Actualmente se utilizan como código intermedio las
cuádruplas.
Lenguaje Ensamblador.
El término ensamblador (del inglés assembler) se refiere a un tipo de programa informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina, ejecutable directamente por la máquina para la que se ha generado.
El propósito para el que se crearon este tipo de aplicaciones es la de facilitar la escritura de programas, ya que escribir directamente en código binario, que es el único código entendible por la computadora, es en la práctica imposible.
La evolución de los lenguajes de programación a partir del lenguaje ensamblador originó también la evolución de este programa ensamblador hacia lo que se conoce como programa compilador.
Historia.
El primer compilador fue escrito por Grace Hopper, en 1952 para el lenguaje de programación A-0.
En 1950 John Backus dirigió una investigación en IBM sobre un lenguaje algebraico.
En 1954 se empezó a desarrollar un lenguaje que permitía escribir fórmulas matemáticas de manera traducible por un ordenador; le llamaron FORTRAN (FORmulae TRANslator).
Fue el primer lenguaje de alto nivel y se introdujo en 1957 para el uso de la computadora IBM modelo 704.
El primer compilador de FORTRAN tardó 18 años persona en realizarse y era muy sencillo.
El primer compilador autocontenido, es decir, capaz de compilar su propio código fuente fue el creado para Lisp por Hart y Levin en el MIT en 1962. Desde 1970 se ha convertido en una práctica común escribir el compilador en el mismo lenguaje que este compila, aunque Pascal y C han sido alternativas muy usadas.
Crear un compilador autocontenido genera un problema llamado bootstrapping, es decir el primer compilador creado para un lenguaje tiene que o bien ser compilado por un compilador escrito en otro lenguaje o bien compilado al ejecutar el compilador en un intérprete.
Componentes.
Los elementos básicos del lenguaje ensamblador son:
- Etiquetas: es una palabra utilizada para designar alguna línea o sección del programa, se pueden utilizar para saltar de una parte hacia esa etiqueta.
- Instrucciones: son las operaciones que realiza el microcontrolador, así que estas ya están definidas para cada familia de PIC.
- Operandos: Son los elementos que emplea la instrucción que se está ejecutando. Usualmente los operandos son los registros, las variables o las constantes.
- Directivas: son similares a las instrucciones, pero a diferencia de estas las directivas son propias del lenguaje ensamblador e independientes del microcontrolador que se utilice.
- Comentarios: on las palabras, frases y oraciones que se pueden escribir en el código para hacer el programa más claro y legible, o solo para recordar.
Software editores.
Un programador escribe el programa origen en lenguaje ensamblador utilizando cualquier editor de textos o procesador de palabras que sea capaz de producir una salida de texto en ASCII. Una vez que el código origen ha sido escrito, el archivo origen es ensamblado mediante su procesamiento a través de algún ensamblador.
Software reglas de programación.
Para la programación se utiliza una cierta tabulación que se debe respetar, además utilizar una tabulación adecuada hace los programas más claros y le gibles.
Software TASM Y TLINK
El Turbo Assembler (TASM) un paquete ensamblador principalmente destinado a la plataforma del IBM PC y sus compatibles.
El enlazador o linkador LINK permite convertir el código objeto generado por TASM en archivo ejecutable de tipo EXE*.
*Empleando el ML de MASM 6.X se obtiene directamente el fichero EXE ya que invoca automáticamente al linkador.
No hay comentarios:
Publicar un comentario