You are on page 1of 3

COMPILADORES E INTRPRETES COMPPILADORES DEFINICION

Un compilador es un programa o una herramienta cuya funcin es compilar; es decir es aquel que toma un texto o cdigo fuente escrito en un lenguaje de alto nivel y lo traduce a un lenguaje compresible para las computadoras.

INTERPRETES
Un 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. Los programas interpretados suelen ser ms lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son ms flexibles como entornos de programacin y depuracin (lo que se traduce, por ejemplo, en una mayor facilidad para reemplazar partes enteras del programa o aadir mdulos completamente nuevos), y permiten ofrecer al programa interpretado un entorno no dependiente de la mquina donde se ejecuta el intrprete, sino del propio intrprete (lo que se conoce comnmente como mquina virtual).

CARACTERISTICAS

Generalmente un compilador se divide en dos partes:* Front End: parte que analiza e l cdigo fuente, comprueba su validez, genera el rbol de derivacin y rellena los valores de la tabla de smbolos. Parte que suele ser independiente de la plataforma o sistema operativo para el que funcionar.* Back End: parte en donde se genera el cdigo mquina exclusivo para una plataforma a partir de lo analizado en el frontend. Por lo general el resultado del back end no puede ser ejecutado directamente, se necesita pasar por un proceso de enlazado (linker).Existen varios tipos de 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 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. Se compila una vez, se ejecuta n veces. En bucles, la compilacin genera cdigo equivalente al bucle, pero interpretndolo se traduce tantas veces una lnea como veces se repite el bucle. El compilador tiene una visin global

VENTAJAS
El programa se puede ejecutar de inmediato, sin esperar a ser compilado. Puede ser interrumpido con facilidad. puede ser rpidamente modificado y ejecutado nuevamente.

del programa, por lo que la informacin de mensajes de error es mas detallada. Ventajas del intrprete frente al compilador: Un intrprete necesita menos memoria que un compilador. En principio eran ms abundantes dado que los ordenadores tenan poca memoria. Permiten una mayor interactividad con el cdigo en tiempo de desarrollo. Resultan muy apropiados durante la fase de desarrollo de un programa, ya que la compilacin no permite la ejecucin paso a paso del programa y con ello impide la edicin seguimiento y depuracin del programa.

DESVENTAJAS
La ejecucin es ms lenta, pues cada intruccin debe ser traducida a cdigo mquina tantas veces como sea ejecutada. No son adecuados en la fase de explotacin del programa ya que el proceso de interpretacin se ha de repetir cada vez que se ejecuta el programa, mientras que con la compilacin, una vez obtenido el programa en leguaje mquina ste puede ser ejecutado sin necesidad de compilarlo de nuevo.

DIFERENCIAS

Genera un ejecutable El proceso de traduccin se realiza una sola vez -La ejecucin es muy rpida debido a que el programa ya ha sido traducido a cdigo mquina 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.

-No genera un ejecutable -El proceso de traduccin se realiza en cada ejecucin La ejecucin es ms lenta, ya que para cada lnea del programa es necesario realizar la traduccin 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

Los lenguajes compilados suelen proporcionar al programador mecanismos ms potentes y flexibles, a costa de una mayor ligazn a la plataforma. -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.

plataformas. Los programas que se van a interpretar no suelen ser muy dependientes de su plataforma de destino, siendo ms portables. 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. El cdigo fuente es necesario en cada ejecucin, as que no puede permanecer en secreto 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) -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.

You might also like