Está en la página 1de 4

Traductores de lenguaje

Son programas que traducen a su vez los programas fuente escritos en


lenguajes de alto nivel a código máquina.
Los traductores se dividen en:
 Compiladores
 Interpretes
COMPILADOR
¿Qué es un Compilador?
Un compilador es un programa que traduce los programas fuente escritos en
lenguajes de alto nivel a lenguaje máquina.
Los programas escritos en lenguajes de alto nivel (en el editor del lenguaje) se
llaman programas fuente y el programa traducido programa objeto o código
objeto. El compilador traduce (sentencia a sentencia) el programa fuente.
Lenguajes compiladores típicos son: PASCAL, COBOL.

La compilación es el proceso de la traducción de programas fuente a


programas objeto.
El programa objeto obtenido de la compilación no ha sido traducido
normalmente a código máquina sino a ensamblador. Para conseguir el
programa máquina real se debe utilizar un programa llamado montador o
enlazador (linker). El proceso de montaje conduce a un programa en lenguaje
máquina directamente ejecutable:

Alternativamente, las fases descritas para las tareas de análisis y síntesis se


pueden agrupar en Front-end y Back-end:

Front-end: es la parte que analiza el código fuente, comprueba su validez,


genera el árbol de derivación y rellena los valores de la tabla de símbolos. Esta
parte suele ser independiente de la plataforma o sistema para el cual se vaya a
compilar, y está compuesta por las fases comprendidas entre el análisis
Léxico y la generación de código intermedio.

Back-end: es la parte que genera el código máquina, específico de una


plataforma, a partir de los resultados de la fase de análisis, realizada por
el Front End.

Esta división permite que el mismo Back End se utilice para generar el código
máquina de varios lenguajes de programación distintos y que el mismo Front
End que sirve para analizar el código fuente de un lenguaje de
programación concreto sirva para generar código máquina en varias
plataformas distintas. Suele incluir la generación y optimización del código
dependiente de la máquina.
Básicamente, existen dos grandes formas de ejecutar programas:
programas compilados (previamente pasados por un compilador) y programas
interpretados (necesitan pasar por un intérprete para ejecutarse en tiempo
real). en este caso hablamos de los compilador

Tipos de compiladores
Esta taxonomía de los tipos de compiladores no es excluyente, por lo que
puede haber compiladores que se adscriban a varias categorías:

 Compiladores cruzados: generan código para un sistema distinto del que


están funcionando.
 Compiladores optimizadores: realizan cambios en el código para mejorar
su eficiencia, pero manteniendo la funcionalidad del programa original.
 Compiladores de una sola pasada: generan el código máquina a partir de
una única lectura del código fuente.
 Compiladores de varias pasadas: necesitan leer el código fuente varias
veces antes de poder producir el código máquina.
 Compiladores JIT (Just In Time): forman parte de un intérprete y compilan
partes del código según se necesitan.

INTERPRETE
¿Qué es un Interpretador?

Un interpretador es un programa informático capaz de analizar y ejecutar


otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se
diferencian de los compiladores en que mientras estos 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.

Un intérprete es un traductor que toma un programa fuente, lo traduce y a


continuación lo ejecuta.
Un lenguaje que soporte un traductor de tipo intérprete se denomina lenguaje
interpretado.
BASIC es el modelo por excelencia de lenguaje interpretado.

Algunos ejemplos de lenguajes que son normalmente interpretados en vez de


compilados son:
Perl
PHP
Javascript
Logo
ASP (hasta la versión 3)
Python
Tcl
Ruby

Diferencias entre un programa compilado y uno interpretado.

COMPILADOR INTERPRETE

 Necesita traducir de un código  Toma cada línea de código,


fuente a un lenguaje objeto. la analiza y ejecuta al mismo
tiempo.
 Genera un programa
ejecutable.
 Más lento que un compilador
 Más rápido que el intérprete. ya que el intérprete siempre
está verificando el código.
 Mayor dificultad al detectar
errores.
 Si hay un error se debe corregir  Ejecutan sus instrucciones
y volver a compilar. sobre una máquina virtual
interna.
 Si ya género el archivo objeto
se puede ejecutar el programa
tantas veces quiera sin volver a  Traduce el lenguaje de alto
compilar. nivel a lenguaje máquina sin
generar ningún objeto.
 Ejecuta más rápido un
programa.

También podría gustarte