Traductores de lenguajes de programación

La comunicación entre dos personas que hablan distinto idioma no puede establecerse sin la colaboración de un traductor. Éste puede ser un intérprete que realice una traducción simultánea, frase a frase, o simplemente un traductor que escriba en el idioma del destinatario el texto redactado en el idioma de origen. Con los ordenadores pasa algo parecido, os hablamos de los traductores de lenguajes de programación.

Esta es una realidad trasladable al mundo de los ordenadores. Excepto en el caso de que el diálogo se mantenga utilizando el lenguaje máquina, es necesario un proceso de traducción para que el programa confeccionado por el usuario resulte inteligible para el ordenador.

Por supuesto, la tarea de traducción no correrá a cargo de traductores humanos; sino que de ello se ocuparán los propios ordenadores una vez instruidos al efecto.

La ejecución de programas redactados en un lenguaje de ensamble o de alto nivel exige una previa traducción a lenguaje máquina.

La ejecución de programas redactados en un lenguaje de ensamble o de alto nivel exige una previa traducción a lenguaje máquina.

De programa fuente a programa objeto

En cualquier proceso de traducción intervienen dos programas:
* El programa fuente, redactado en un lenguaje evolucionado, ya se trate de un lenguaje de ensamble o de alto nivel.
* El programa objeto o programa resultante del proceso de traducción, escrito en el lenguaje propio de la máquina.

Tal como sucede en la traducción de comunicaciones humanas, también en este caso cabe una doble posibilidad:
– Recurrir a un intérprete o traductor simultáneo que permita un diálogo o comunicación interactiva,
– o utilizar los servicios de un traductor que reescriba el contenido de la comunicación en el lenguaje del destinatario (la máquina en nuestro caso).

Los eficientes traductores humanos son ahora programas auxiliares especializados en realizar una traducción inmediata o demorada (del mensaje en bloque).

El intérprete realiza una traducción del programa fuente línea a línea, ejecutándose éstas con inmediatez y sobre el mismo ordenador.

El intérprete realiza una traducción del programa fuente línea a línea, ejecutándose éstas con inmediatez y sobre el mismo ordenador.

Intérpretes y compiladores

Estos dos tipos de programas auxiliares son los responsables de traducir los programas fuente redactados en lenguaje de alto nivel, a programas objeto directamente ejecutables por el ordenador.
* Intérpretes
Son los programas auxiliares especializados en la traducción intelectiva. Traducen el programa línea a línea, de tal forma que el ordenador las ejecuta a medida que va disponiendo del resultado de la traducción.
* Compiladores
La traducción diferida corre a cargo de los denominados programas compiladores. Éstos traducen el programa fuente en bloque, obteniendo el correspondiente programa objeto redactado en el lenguaje de la máquina que debe ejecutarlo.

Diferencias entre intérpretes y compiladores

La traducción de un programa fuente en lenguaje de alto nivel a programa objeto admite, como se ha indicado, la adopción de dos tipos de procesos: interpretación y compilado.

La elección de uno u otro proceso depende de las necesidades específicas que concurran en cada caso. A continuación se relacionan algunas de las diferencias que derivan de traducir los programas de alto nivel apoyándose en intérpretes o compiladores.
– La idoneidad del intérprete se manifiesta en los diálogos intelectivos; de ahí que este tipo de traductores de lenguajes de programación resulte apropiado cuando se trata de habilitar una comunicación inmediata con la máquina.
– Dado el método de traducción, un intérprete invertirá bastante más tiempo en realizar su función que un compilador. Este último realiza la traducción del programa en bloque, de una sola vez, sin aguardar a que vayan ejecutándose las instrucciones a medida que son traducidas.
– La ejecución de un programa objeto traducido en su integridad (compilado), es mucho más rápida que la ejecución línea a línea del programa interpretado (de tres a veinte veces más rápida).
– La interpretación de un programa fuente se efectúa en el propio ordenador que cursará su ejecución. Sin embargo, el compilado de un programa puede no realizarse en el ordenador que debe ejecutar el correspondiente programa objeto.

Representación gráfica de las funciones de un compilador

Representación gráfica de las funciones de un compilador

Es frecuente que sea un ordenador auxiliar quien se encargue de generar el programa objeto, convirtiéndolo al lenguaje máquina propio del equipo a que vaya destinado. Terminada la compilación, el programa puede ya introducirse y ejecutarse cuantas veces sea necesario en el ordenador de destino.

Criterios de elección

Son muchos los lenguajes para los que se dispone de ambos tipos de traductores de lenguajes de programación.
La elección de un intérprete o compilador dependerá del tipo de actividad que se encomiende al ordenador.
– Si la velocidad no es un factor esencial y prima la necesidad de mantener un diálogo intelectivo, cabe optar por un intérprete.
– Cuando la característica solicitada es una alta velocidad de ejecución, hay que optar por un compilador.
Los lenguajes con una marcada inclinación hacia las aplicaciones intelectivas (SIC, LOGO, PILO…) suelen utilizarse en versión interpretada; mientras que los lenguajes más especializados, habitualmente no intelectivos (FORTUNA, COBO, ALGO, PLAN/1…), actúan a través de compiladores.

Programas ensambladores

Los ensambladores son programas auxiliares destinados a automatizar los procesos de traducción de programas fuente a programas objeto; si bien, a diferencia con los intérpretes y compiladores, éstos actúan sobre programas fuente redactados en un lenguaje de ensamble.

La traducción se lleva a cabo en bloque, cual si se realizara una virtual compilación del programa fuente escrito en lenguaje simbólico o de ensamble.

No hay comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies