Hjfhff

Solo disponible en BuenasTareas
  • Páginas : 19 (4677 palabras )
  • Descarga(s) : 0
  • Publicado : 12 de septiembre de 2010
Leer documento completo
Vista previa del texto
UNIVERSIDAD NACIONAL DE TRUJILLO  ESCUELA DE INFORMATICA 

COMPILADORES 
Estructura y Procesos de Compilación 

Alvarez Alvarez, Gustavo Alexander

1.

COMPILADORES Un compilador es un programa que traduce un programa hecho en un lenguaje de alto nivel en un programa funcionalmente equivalente con un lenguaje de bajo nivel. Por lo tanto, un compilador es básicamente un traductor cuyoidioma de origen (es decir, el idioma a traducir) es el lenguaje de alto nivel, y la lengua es un lenguaje de bajo nivel, es decir, un compilador se utiliza para aplicar un lenguaje de alto nivel en un equipo. 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.

Figura 1 Diagrama deBloques de un Compilador 2. ESTRUCTURA DE UN COMPILADOR La estructura de un compilador, esta dividida en cuatro grandes módulos, cada uno independiente del otro, se podría decir que un compilador esta formado por cuatros módulos mas a su vez.

Figura 2 Estructura General de un Compilador

2.1. El Preprocesador Es el encargado de transformar el código fuente de entrada original en el códigofuente puro. Es decir en expandir las macros, incluir las librerías, realizar un preprocesado racional (capacidad de enriquecer a un lenguaje antiguo con recursos más modernos), extender el lenguaje y todo aquello que en el código de entrada sea representativo de una abreviatura para facilitar la escritura del mismo.

Figura 2.1 Preprocesador 2.2. El Compilador El segundo modulo es el compilador yes quien recibe el código fuente puro, este es él modulo principal de un compilador, pues si ocurriera algún error en esta etapa el compilador no podría avanzar. En esta etapa se somete al código fuente puro de entrada a un análisis léxico gráfico, a un análisis sintáctico, a un análisis semántico, que construyen la tabla de símbolos, se genera un código intermedio al cual se optimiza para asípoder producir un código de salida generalmente en algún lenguaje ensamblador.

Figura 2.2 Compilador 2.3. El Ensamblador El tercer modulo es el llamado modulo ensamblador, este modulo no es ni más mi menos que otro compilador pues recibe un código fuente de entrada escrito en ensamblador, y produce otro código de salida, llamado código binario no enlazado. Si por un momento viéramos a este modulocomo un programa independiente, veríamos que en este caso los términos programa compilador y proceso de compilación son los mismos. Pues este modulo no es mas que un compilador, que en su interior realiza como su antecesor un análisis léxico gráfico, un análisis sintáctico, un análisis semántico, crea una tabla de símbolos, genera un código intermedio lo optimiza y produce un código de salidallamado código binario no enlazado, y a todo este conjunto de tares se los denomina proceso de compilación. Como se puede ver este compilador (llamado ensamblador) a diferencia de los demás compiladores no realiza una expansión del código fuente original (código fuente de entrada), tiene solamente un proceso de compilación y por supuesto no enlaza el código fuente. Es un compilador que carece de losmódulos de preprocesado y enlazado, y donde los módulos de compilación y ensamblado son los mismos.

Figura 2.3 Ensamblador

2.4. El Enlazador El cuarto y ultimo modulo es el encargado de realizar el enlazador del código de fuente de entrada (código maquina relocalizable) con las librerías que necesita, como así también de proveer al código de las rutinas necesarias para poder ejecutarse ycargarse a la hora de llamarlo para su ejecución, modifica las direcciones relocalizables y ubica los datos en las posiciones apropiadas de la memoria. Este ultimo modulo es el que produce como salida el código binario enlazado. Ya sea dinámico o estático, al decir dinámico se refiere a que el código producido utiliza librerías dinámicas (librerías ya cargadas en el sistema), esto implica que se...
tracking img