You are on page 1of 5

COMPILADORES Y GENERADORES DE CDIGO La generacin de cdigo data desde la existencia de los primeros compiladores.

Hasta la aparicin de los primeros generadores de cdigo comerciales u orientados a "usuarios finales"; la generacin de cdigo era exclusividad de programas compiladores especializados. En tiempos ms recientes la generacin de cdigo, gracias al avance de la ingeniera del software, se ha llevado a un nivel diferente; donde se encuentran programas generadores de pantallas, reportes y consultas, estas son herramientas de gran utilidad; pero se debe, en la mayora de los casos, Pagar una gran cantidad de dinero por ellos.

Figura 2.1. Arquitectura de un Compilador Un compilador, bsicamente, es un programa que lee un archivo con cdigo fuente; este cdigo fuente lo traduce a un lenguaje llamado lenguaje objeto. En este proceso se le indica al usuario la existencia de errores de codificacin. GENERACION DE CDIGO Aqu se hablar de las herramientas generadoras automticas de cdigo para un compilador. Estas herramientas trabajan basadas en un conjunto de reglas; estas reglas definen la traduccin de las instrucciones del lenguaje intermedio al lenguaje de mquina
8. Herramientas que muestran tipos de anlisis de programas fuente Muchas herramientas de softwareque manipulan porgraas fuente realizan primero algn tipo de anlisis. Algunos ejemplos de tales herramientas son: 1. Editores de estructuras: un editor de estructuras toma como entrada uan secuencia de ordenes para construir un programa fuente. El editor de estructuras no slo realiza las funciones de creacin y modificacin de textos de un editor de textos ordinario, sino que tambin analiza el texto del programa imponiendo al programa fuente una estructura jerrquica apropiada. De esa manera, el editor de estructuras puede realizar tareas adicionales tiles para la preparacin de programas. Por ejemplo, puede comprobar si la entrada est formada correctamente, puede proporcionar palabras clave de manera automtica y puede saltar desde un begin o un

parntesis izquierdo hasta su correspondiente end o parntesis derecho. Adems, la salida de tal editor suele ser similar a la salida de la fase del anlisis de un compilador. 2. Impresoras estticas: Una impresora estticaanaliza un programa y lo imprime de forma que la estructura del programa resulte claramente visible. Por ejemplo, los comentarios pueden aparecer con un tipo de letra especial, y las proposiciones pueden aparecer con una indentacin proporcional a la profundidad de su anidamiento en la organizacin jerrquica de las proposiciones. 3. Verificadores estticos: Un verificador esttico lee un programa, lo analiza e intenta descubrir errores potenciales sin ejecutar el programa. La parte del anlisis es similar a la que se encuentra en los compiladores de optimacin. As un verificador esttico puede detectar si hay partes de un programa que nunca se podrn ejecutar o si cierta variable se usa antes de ser definida. Adems, puede detectar errores de lgica como intentar utilizar una variable real como apuntador, empleando las tcnicas de verificacin de tipos. 4. Intrpretes: En lugar de producir un programa objeto como resultado de una traduccin, un interprete realiza las operaciones que implica el programa fuente. Para una proposicin de asignacin, por ejemplo, un intrprete podra construir un rbol como el de la figura 5, y despus efectuar las operaciones de los nodos conforme "recorre" el rbol. En la raz descubrira que tiene que realizar una asignacin, y llamara a una rutina para evaluar la expresin de la derecha y despus almacenara el valorresultante en la localidad de memoria asignada con el identificador posicin. En el hijo derecho de la raz, la rutina descubrira que tiene que calcular la suma de dos expresiones. Se llamara a si misma de manera recursiva para calcular el valor de la variable inicial.

Compilador de Compiladores Aqu se hablar de las herramientas generadoras automticas de cdigo para un compilador. Estas herramientas trabajan basadas en un conjunto de reglas; estas reglas definen la traduccin de las instrucciones del lenguaje intermedio al lenguaje de mquina. Para la generacin de cdigo, se busca en las reglas establecidas la proposicin 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 anlisis: lxico, sintctico y semntico, para generar seguidamente el cdigo intermedio, el cdigo intermedio se genera con principios de bsqueda de patrones y aplicacin de reglas. Despus se hace la optimizacin del cdigo intermedio; seguidamente se realiza la generacin de cdigo objeto en lenguaje de mquina.

COMPILADORES Y GENERADORES DE CDIGO

La generacin de cdigo data desde la existencia de los primeros compiladores. Hasta la aparicin de los primeros generadores de cdigo comerciales u orientados a "usuarios finales"; la generacin de cdigo era exclusividad de programas compiladores especializados. En tiempos ms recientes la generacin de cdigo, gracias al avance de la ingeniera del software, se ha llevado a un nivel diferente; donde se encuentran programas generadores de pantallas, reportes y consultas, estas son herramientas de gran utilidad; pero se debe, en la mayora de los casos, Pagar una gran cantidad de dinero por ellos.

Figura 2.1. Arquitectura de un Compilador

Un compilador, bsicamente, es un programa que lee un archivo con cdigo fuente; este cdigo fuente lo traduce a un lenguaje llamado lenguaje objeto. En este proceso se le indica al usuario la existencia de errores de codificacin.

GENERACION DE CDIGO

Al colocar un esquema general, en donde se muestre la ubicacin del generador de cdigo construido por el usuario, con respecto a un compilador, el resultado seria el que se muestra el la figura 2.2.

Figura 2.2. Compilador y generador de cdigo.

La ingeniera del software evoluciona cada da; esta evolucin conlleva a la creacin de mtodos mucho ms cmodos, precisos, confiables y rpidos para la creacin de software. Para la creacin de generadores de cdigo se deben considerar los siguientes aspectos: La arquitectura de software para la cual se va ha desarrollar el generador Las caractersticas especificas del lenguaje de programacin para el cual se har el generador. El lenguaje con el que se desarrollar el propio generador Responder los interrogantes: La generacin de cdigo se realizar a partir de modelos como Uml1? La generacin de cdigo se har a partir de las tablas de una base de datos ?,Se realizar un generador de cdigo que su resultado sea fragmentos de cdigo que son de uso ms

frecuente en el software? Se crear un generador genrico que "genere" cdigo para diferentes lenguajes. Las reglas de utilizacin del generador, en otras palabras, la forma adecuada para que los usuarios del generador obtengan el mayor provecho. En sntesis para crear un generador de cdigo se deben hacer muchas de las tareas que realizan los compiladores; algunas de estas tareas son: la bsqueda de patrones, la escritura de cdigo, el anlisis sintctico, el anlisis lxico y la optimizacin de cdigo. Estas tareas las realiza el desarrollador una vez para una arquitectura especfica. El ltimo lenguaje de programacin de amplia aceptacin que se ha diseado, el lenguaje Java, establece que el compilador no genera cdigo para una mquina determinada sino para una virtual, la Java Virtual Machine (JVM), que posteriormente ser ejecutado por un intrprete, normalmente incluido en un navegador de Internet. El gran objetivo de esta exigencia es conseguir la mxima portabilidad de los programas escritos y compilados en Java, pues es nicamente la segunda fase del proceso la que depende de la mquina concreta en la que se ejecuta el intrprete.

Qu es un compilador? Un traductor es cualquier programa que toma como entrada un texto escrito en un lenguaje, llamado fuente y da como salida otro texto en un lenguaje, denominado objeto.

Compilador En el caso de que el lenguaje fuente sea un lenguaje de programacin de alto nivel y el objeto sea un lenguaje de bajo nivel (ensamblador o cdigo de mquina), a dicho traductor se le denomina compilador. Un ensamblador es un compilador cuyo lenguaje fuente es el lenguaje ensamblador. Un intrprete no genera un programa equivalente, sino que toma una sentencia del programa fuente en un lenguaje de alto nivel y la traduce al cdigo equivalente y al mismo tiempo lo ejecuta. Histricamente, con la escasez de memoria de los primeros ordenadores, se puso de moda el uso de intrpretes frente a los compiladores, pues el programa fuente sin traducir y el intrprete juntos daban una ocupacin de memoria menor que la resultante de los compiladores.

METACOMPILADOR: Es Sinnimo De compilador de compiladores y se refiere a un programa que recibe como entrada las especificaciones del lenguaje para el que se desea obtener un compilador y genera como salida el compilador para ese lenguaje. El desarrollo de los metacompiladores se encuentra con la dificultad de unir la generacin de cdigo con la parte de anlisis. Lo que s se han desarrollado son generadores de analizadores lxicos y sintcticos.

Por ejemplo, los conocidos: YACC:generador de generador de analizadores lxicos analizadores sintcticos desarrollados para UNIX. Los inconvenientes que tienen son que los analizadores que generan no son muy eficientes.

El autor, Alfred ilustra las fases de un compilador como lo muestra la siguiente figura

Anlisis Lxico.- Separa las Cadenas en unidades llamadas Tokens y las compara con la tabla de smbolos, El la tabla de smbolos estn definidos todos los smbolos (caracteres), que el lenguaje reconocer. Los nicos errores que podra generar es que encuentre algn carcter desconocido (inexistente en la tabla de smbolos).

You might also like