You are on page 1of 3

COMPILADORES E INTÉRPRETES

COMPPILADORES INTERPRETES
Un compilador es un programa o Un interpretador es un programa
DEFINICION una herramienta cuya función es informático capaz de analizar y
compilar; es decir es aquel que toma ejecutar otros programas, escritos
un texto o código fuente escrito en en un lenguaje de alto nivel. Los
un lenguaje de alto nivel y lo traduce intérpretes se diferencian de los
a un lenguaje compresible para las compiladores en que mientras estos
computadoras. traducen un programa desde su
descripción en un lenguaje de
programación al código de máquina
del sistema, los intérpretes sólo
realizan la traducción a medida que
sea necesaria, típicamente,
instrucción por instrucción, y
normalmente no guardan el
resultado de dicha traducción.
Generalmente un compilador se Los programas interpretados suelen
CARACTERISTICAS divide en dos partes:* Front End: ser más lentos que los compilados
parte que analiza e l código fuente, debido a la necesidad de traducir el
comprueba su validez, genera el programa mientras se ejecuta, pero
árbol de derivación y rellena los a cambio son más flexibles como
valores de la tabla de símbolos. entornos
Parte que suele ser independiente de programación y depuración (lo
de la plataforma o sistema operativo que se traduce, por ejemplo, en una
para el que funcionará.* Back End: mayor facilidad para reemplazar
parte en donde se genera el código partes enteras del programa o
máquina exclusivo para una añadir módulos completamente
plataforma a partir de lo analizado nuevos), y permiten ofrecer al
en el frontend. programa interpretado un entorno
Por lo general el resultado del back no dependiente de la máquina
end no puede ser ejecutado donde se ejecuta el intérprete, sino
directamente, se necesita pasar por del propio intérprete (lo que se
un proceso de enlazado conoce comúnmente como máquina
(linker).Existen varios tipos de virtual).
compiladores: Compiladores
cruzados, Compiladores
optimizadores, Compiladores de una
sola pasada, Compiladores de
varias pasadas, Compiladores JIT
(Just In Time).
De esta manera un programador
puede diseñar un programa en un
lenguaje mucho más cercano a
como piensa un ser humano, para
luego compilarlo a un programa más
manejable por una computadora.
VENTAJAS
Se compila una vez, se ejecuta n El programa se puede ejecutar de
veces. inmediato, sin esperar a ser
compilado.
En bucles, la compilación genera
código equivalente al bucle, pero • Puede ser interrumpido con
interpretándolo se traduce tantas facilidad.
veces una línea como veces se
repite el bucle. • puede ser rápidamente modificado
y ejecutado nuevamente.
El compilador tiene una visión global
del programa, por lo que la
información de mensajes de error es • Resultan muy apropiados durante
mas detallada. Ventajas del la fase de desarrollo de un
intérprete frente al compilador: programa, ya que la compilación no
permite la ejecución paso a paso del
Un intérprete necesita menos programa y con ello impide la
memoria que un compilador. En edición seguimiento y depuración
principio eran más abundantes dado del programa.
que los ordenadores tenían poca
memoria.

Permiten una mayor interactividad


con el código en tiempo de
desarrollo.

DESVENTAJAS
La ejecución es más lenta, pues
cada intrucción debe ser traducida a
código máquina tantas veces como
sea ejecutada.

• No son adecuados en la fase de


explotación del programa ya que el
proceso de interpretación se ha de
repetir cada vez que se ejecuta el
programa, mientras que con la
compilación, una vez obtenido el
programa en leguaje máquina éste
puede ser ejecutado sin necesidad
de compilarlo de nuevo.

DIFERENCIAS Genera un ejecutable


-No genera un ejecutable
El proceso de traducción se realiza
una sola vez -El proceso de traducción se realiza
en cada ejecución
-La ejecución es muy rápida debido
a que el programa ya ha sido
traducido a código máquina La ejecución es más lenta, ya que
para cada línea del programa es
El ejecutable va dirigido a una
plataforma concreta (una CPU, un necesario realizar la traducción
sistema operativo, y quizá alguna
otra consideración), siendo
No hay ejecutable, así que si existe
prácticamente imposible portarlo a
otra. En ocasiones, si existe un un intérprete para una plataforma
compilador para otra plataforma, se concreta, el programa se podrá
puede recompilar el programa, ejecutar en ambas. Típicamente, los
aunque normalmente esto plantea
serias dificultades. Los programas programas interpretados son mucho
que se van a compilar suelen estar más portables que los compilados,
muy ligados a la plataforma de ya que suelen existir intérpretes del
destino.
mismo lenguaje en distintas
Los lenguajes compilados suelen plataformas. Los programas que se
proporcionar al programador
mecanismos más potentes y van a interpretar no suelen ser muy
flexibles, a costa de una mayor dependientes de su plataforma de
ligazón a la plataforma. destino, siendo más portables.

-Una vez compilado el programa, el


código fuente no es necesario para Los lenguajes interpretados no
ejecutarlo, así que puede suelen ser muy dependientes de la
permanecer en secreto si se desea
plataforma de destino, pero en
-Los errores sintácticos se detectan contrapartida suelen ser menos
durante la compilación. Si el fuente flexibles y potentes que los
contiene errores sintácticos, el
compilados.
compilador no producirá un
ejecutable.
El código fuente es necesario en
Un programa compilado puede, por cada ejecución, así que no puede
error, afectar seriamente a la
estabilidad de la plataforma, permanecer en secreto
comprometiendo la ejecución de los
otros procesos, por ejemplo, Los errores sintácticos se detectan
acaparando la CPU, la memoria o
algún otro recurso, siendo a veces durante la ejecución, ya que
complicado para el sistema traducción y ejecución se van
operativo interrumpir su ejecución. haciendo simultáneamente. Algún
error sintáctico podría quedar
enmascarado, si para una ejecución
concreta no es necesario traducir la
línea que lo contiene. (Algunos
intérpretes son capaces de evitar
esto)

-Un programa interpretado con un


comportamiento torpe normalmente
puede ser interrumpido sin
dificultad, ya que su ejecución está
bajo el control del intérprete, y no
sólo del sistema operativo.

You might also like