You are on page 1of 5

Estructura de un Compilador:

La estructura de un compilador, esta dividida en cuatro grandes mdulos, cada uno independiente del otro, se
podra decir que un compilador esta formado por cuatros mdulos mas a su vez.

El primero de ellos es el preprocesador, es el encargado de transformar el cdigo fuente de entrada original
en el cdigo fuente puro. Es decir en expandir las macros, incluir las libreras, realizar un preprocesado racional
(capacidad de enriquecer a un lenguaje antiguo con recursos ms modernos), extender el lenguaje y todo
aquello que en el cdigo de entrada sea representativo de una abreviatura para facilitar la escritura del mismo.

El segundo modulo es el de compilacin que recibe el cdigo fuente puro, este es l modulo principal de un
compilador, pues si ocurriera algn error en esta etapa el compilador no podra avanzar. En esta etapa se
somete al cdigo fuente puro de entrada a un anlisis lxico grfico, a un anlisis sintctico, a un anlisis
semntico, que construyen la tabla de smbolos, se genera un cdigo intermedio al cual se optimiza para as
poder producir un cdigo de salida generalmente en algn lenguaje ensamblador.

El tercer modulo es el llamado modulo de ensamblado, este modulo no es ni ms mi menos que otro
compilador pues recibe un cdigo fuente de entrada escrito en ensamblador, y produce otro cdigo de salida,
llamado cdigo binario no enlazado. Si por un momento viramos a este modulo como un programa
independiente, veramos que en este caso los trminos programa compilador y proceso de compilacin son los
mismos. Pues este modulo no es mas que un compilador, que en su interior realiza como su antecesor un
anlisis lxico grfico, un anlisis sintctico, un anlisis semntico, crea una tabla de smbolos, genera un
cdigo intermedio lo optimiza y produce un cdigo de salida llamado cdigo binario no enlazado, y a todo este
conjunto de tares se los denomina proceso de compilacin. Como se puede ver este compilador (llamado
ensamblador) a diferencia de los dems compiladores no realiza una expansin del cdigo fuente
original(cdigo fuente de entrada), tiene solamente un proceso de compilacin y por supuesto no enlaza el
cdigo fuente. Es un compilador que carece de los mdulos de preprocesado y enlazado, y donde los mdulos
de compilacin y ensamblado son los mismos.

El cuarto y ultimo modulo es el encargado de realizar el enlazado del cdigo de fuente de entrada (cdigo
maquina relocalizable) con las libreras que necesita, como as tambin de proveer al cdigo de las rutinas
necesarias para poder ejecutarse y cargarse a la hora de llamarlo para su ejecucin, 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 cdigo binario enlazado. Ya sea dinmico o esttico, al decir dinmico se refiere a que
el cdigo producido utiliza libreras dinmicas (libreras ya cargadas en el sistema), esto implica que se
obtendr un cdigo ms corto y que se actualizara automticamente si aparece alguna nueva versin de las
libreras, mientras que el esttico se refiere al echo que no se realiza enlace con ninguna librera y por lo tanto
se obtendr un cdigo mas largo con una copia de las rutinas de librera que necesita.



2.- java es un lenguaje de programacion que utiliza una maquina virtual que interpreta
el bytecode este es normalmente interpretado o compilado a cdigo nativo para la ejecucin, aunque la ejecucin
directa por hardware del bytecode por un procesador Java tambin es posible

entonces lo que seria la respuesta mas aproximada a lo que preguntas es que un lenguaje de programacion basado
en tecnologia de C y hace uso de una maquina virtual para interpretar el bytecode que se genera al momento de
compilar el codigo escrito en el id que se utilice o ejecutado con javac o javaw
3.- intrprete o interpretador es un programa informtico capaz de analizar y ejecutar otros programas, escritos en
un lenguaje de alto nivel. Los intrpretes se diferencian de los compiladores en que mientras estos traducen un
programa desde su descripcin en un lenguaje de programacin al cdigo de mquina del sistema, los intrpretes
slo realizan la traduccin a medida que sea necesaria, tpicamente, instruccin por instruccin, y normalmente no
guardan el resultado de dicha traduccin.
Usando un intrprete, un solo archivo fuente puede producir resultados iguales incluso en sistemas sumamente
diferentes (ejemplo. una PC y un PlayStation 3). Usando un compilador, un solo archivo fuente puede producir
resultados iguales solo si es compilado a distintos ejecutables especficos a cada sistema.
Algunos ejemplos de lenguajes que son normalmente interpretados en vez de compilados son:
Perl
PHP
Javascript
Logo
ASP (hasta la versin 3)
Python
Tcl
Ruby
J#
ASP
4.-Un compilador es un programa informtico que traduce un programa escrito en un lenguaje de programacin a
otro lenguaje de programacin, generando un programa equivalente que la mquina ser capaz de interpretar.
Usualmente el segundo lenguaje es lenguaje de mquina, pero tambin puede ser un cdigo intermedio (bytecode), o
simplemente texto. Este proceso de traduccin se conoce como compilacin.
1

Un compilador es un programa que permite traducir el cdigo fuente de un programa en lenguaje de alto
nivel, a otro lenguaje de nivel inferior (tpicamentelenguaje de mquina). De esta manera un programador
puede disear un programa en un lenguaje mucho ms cercano a como piensa un ser humano, para
luego compilarlo a un programa ms manejable por una computadora.
Como parte importante de este proceso de traduccin, el compilador informa a su usuario de la presencia de
errores en el programa fuente

5.- DIFERENCIA ENTRE INTERPRETE Y COMPILADOR
Interprete Compilador
Es un programa que lee lnea a lnea un
programa escrito en un lenguaje; en lenguaje
fuente y lo va traduciendo a un cdigo
intermedio, para ejecutarlo.
Es un programa que lee totalmente un programa
escrito en un lenguaje; el lenguaje fuente, y lo
traduce a un programa equivalente a otro
lenguaje, lenguaje objeto.
Un intrprete traduce el programa cuando lo lee,
convirtiendo el cdigo del programa
directamente en acciones.
Un programa que ha sido compilado puede
correr por si solo, pues en el proceso de
compilacin se lo transformo en otro lenguaje
(lenguaje mquina).
La ventaja del intrprete es que dado cualquier
programa se puede interpretarlo en cualquier
plataforma (sistema operativo).
El archivo generado por el compilador solo
funciona en la plataforma en donde se lo ha
creado.
No genera un ejecutable Un archivo compilado puede ser distribuido
fcilmente conociendo la plataforma, mientras
que un archivo interpretado no funciona si no se
tiene el intrprete.
El proceso de traduccin se realiza en cada
ejecucin
Hablando de la velocidad de ejecucin un
archivo compilado es de 10 a 20 veces ms
rpido que un archivo interpretado.
La ejecucin es ms lenta, ya que para cada
lnea del programa es necesario realizar la
traduccin
Genera un ejecutable
No hay ejecutable, as que si existe un intrprete
para una plataforma concreta, el programa se
podr ejecutar en ambas. Tpicamente, los
programas interpretados son mucho ms
portables que los compilados, ya que suelen
existir intrpretes del mismo lenguaje en
distintas plataformas. Los programas que se van
a interpretar no suelen ser muy dependientes de
su plataforma de destino, siendo ms portables.
El proceso de traduccin se realiza una sola vez
Los lenguajes interpretados no suelen ser muy
dependientes de la plataforma de destino, pero
en contrapartida suelen ser menos flexibles y
potentes que los compilados.
La ejecucin es muy rpida debido a que el
programa ya ha sido traducido a cdigo mquina
El cdigo fuente es necesario en cada ejecucin,
as que no puede permanecer en secreto
El ejecutable va dirigido a una plataforma
concreta (una CPU, un sistema operativo, y
quiz alguna otra consideracin), siendo
prcticamente imposible portarlo a otra. En
ocasiones, si existe un compilador para otra
plataforma, se puede recompilar el programa,
aunque normalmente esto plantea serias
dificultades. Los programas que se van a
compilar suelen estar muy ligados a la
plataforma de destino.
Los errores sintcticos se detectan durante la
ejecucin, ya que traduccin y ejecucin se van
haciendo simultneamente. Algn error
sintctico podra quedar enmascarado, si para
una ejecucin concreta no es necesario traducir
la lnea que lo contiene. (Algunos intrpretes
son capaces de evitar esto)
Los lenguajes compilados suelen proporcionar
al programador mecanismos ms potentes y
flexibles, a costa de una mayor ligazn a la
plataforma.
Un programa interpretado con un
comportamiento torpe normalmente puede ser
interrumpido sin dificultad, ya que su ejecucin
est bajo el control del intrprete, y no slo del
sistema operativo.
Una vez compilado el programa, el cdigo
fuente no es necesario para ejecutarlo, as que
puede permanecer en secreto si se desea.
Los errores sintcticos se detectan durante la
compilacin. Si el fuente contiene errores
sintcticos, el compilador no producir un
ejecutable.
Un programa compilado puede, por error,
afectar seriamente a la estabilidad de la
plataforma, comprometiendo la ejecucin de los
otros procesos, por ejemplo, acaparando la CPU,
la memoria o algn otro recurso, siendo a veces
complicado para el sistema operativo
interrumpir su ejecucin.
el compilador es un programa que recibe como datos de entrada el cdigo fuente de un programa escrito por un
programador, y genera como salida un conjunto de instrucciones escritas en el lenguaje binario de
la computadora donde se van a ejecutar.
un intrprete se caracteriza por traducir y ejecutar, de una en una, las instrucciones del cdigo fuente de un
programa, pero, sin generar como salida cdigo objeto. El proceso que realiza un intrprete es el siguiente: lee la
primera instruccin del cdigo fuente, la traduce a cdigo objeto y la ejecuta; a continuacin, hace lo mismo con la
segunda instruccin; y as sucesivamente, hasta llegar a la ltima instruccin del programa, siempre y cuando, no se
produzca ningn error que detenga el proceso.

You might also like