TRADUCTORES DE LENGUAJE

Los traductores de lenguaje son programas que traducen a su vez los programas fuentes escritos en lenguajes de alto nivel a código maquina. Estos se dividen en compiladores e interpretes.

INTÉRPRETES.

Un intérprete es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta. BASIC es un lenguaje interpretado.

Se trata de traductores-ejecutores ya que con cada instrucción realizan un proceso triple de lectura-traducción-ejecución. Son relativamente lentos, pero muy buenos para la depuración de programas.

Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el código objeto para utilizarlo posteriormente.

La siguiente vez que se utilice una instrucción, se le debe interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instrucción del ciclo tendrá que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). El intérprete elimina la necesidad de realizar una corrida de compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de producción.

COMPILADORES

Es un programa que traduce programas fuentes escritos en alto nivel a lenguaje máquina (programa objeto). Un programa objeto no ha sido traducido normalmente a código maquina sino a ensamblador. Para conseguir el programa maquina real se debe utilizar un programa llamado montador o enlazador (linker). El proceso de enlazador conduce a un programa en lenguaje máquina directamente ejecutable.

El enlazador, en C, es necesario por varias razones:
1. El programa necesitara ser combinado con varias bibliotecas de rutinas.
2. Tal vez no desees compilar el programa completo ya que muchos programas en C grandes consisten de archivos separados que tal vez ya estén compilados.
El proceso de una ejecución de un programa en C tiene los siguientes pasos:

1. Escritura del programa fuente con un editor.

2. Introducir el programa fuente en memoria.

3. Compilar el programa.

4. Verificar y corregir errores de compilación.

5. Obtención del programa objeto.

6. El enlazador obtiene el programa ejecutable.

7. Se ejecuta el programa si no existen errores.

Los compiladores son más rápidos que los intérpretes pero presentan mayor dificultad a la hora de detectar errores.
Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores.
Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente. Se requiere una corrida de compilación antes de procesar los datos de un problema.

Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario).

Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el código.