miércoles, 13 de mayo de 2009

Generacion de codigo intermedio

GENERACION DE CÓDIGO

Aquí se hablará de las herramientas generadoras automáticas de código para un compilador. Estas herramientas trabajan basadas en un conjunto de reglas; estas reglas definen la traducción de las instrucciones del lenguaje intermedio al lenguaje de máquina.


Para la generación de código, se busca en las reglas establecidas la proposición que coincida con la entrada actual; la entrada actual proviene de un árbol. Un ejemplo de esto seria entonces el compilador recibe una entrada de caracteres, por lo general escrita por el programador; el compilador realiza los análisis: léxico, sintáctico y semántico, para generar seguidamente el código intermedio, el código intermedio se genera con principios de búsqueda de patrones y aplicación de reglas. Después se hace la optimización del código intermedio; seguidamente se realiza la generación de código objeto en lenguaje de máquina.

Para la creación de generadores de código se deben considerar los siguientes aspectos:

La arquitectura de software para la cual se va ha desarrollar el generador
Las características especificas del lenguaje de programación para el cual se hará el generador.
El lenguaje con el que se desarrollará el propio generador Responder los interrogantes: ¿La generación de código se realizará a partir de modelos como Uml1? ¿La generación de código se hará a partir de las tablas de una base de datos ?,¿Se realizará un generador de código que su resultado sea fragmentos de código que son de uso más frecuente en el software? ¿Se creará un generador genérico que "genere" código para diferentes lenguajes.
Las reglas de utilización del generador, en otras palabras, la forma adecuada para que los usuarios del generador obtengan el mayor provecho.

En sintesis para crear un generador de código se deben hacer muchas de las tareas que realizan los compiladores; algunas de estas tareas son: la busqueda de patrones,la escritura de código, el analisis sintactico, el analisis lexico y la optimización de código. Estas tareas las realiza el desarrollador una vez para una arquitectura especifica.

No hay comentarios:

Publicar un comentario