Hugo Ernesto


TRADUCTORES



INTÉRPRETE

Los lenguajes interpretados son aquellos que van siendo codificados para el computador al tiempo en que se están ejecutando. Es decir, un "intérprete" es un traductor de lenguajes de programación de alto nivel, el cual realiza la operación de compilación paso a paso, los intérpretes ejecutan un programa línea por línea. Para cada sentencia que compone el texto inicial, se realiza una traducción, se ejecuta la sentencia y se vuelve a iniciar el proceso con la sentencia siguiente.

El programa siempre permanece en su forma original (programa fuente) y el intérprete proporciona la traducción al momento de ejecutar cada una de las instrucciones. Es decir, el programa será ejecutado sin necesidad de ser codificado antes, y de encontrarse un error la ejecución se detendrá en el comando o acción errónea.

Ejemplo: BASIC.




COMPILADOR

Los lenguajes compilados son aquellos que necesitan ser codificados, para el computador, antes de ser ejecutados y obtener resultados, de encontrarse un error a la hora de codificar los comandos del programa, éste nunca podrá ser ejecutado.

Ahora bien, un compilador es un programa que traduce un lenguaje de alto nivel al lenguaje máquina de una computadora. Según va ejecutando la traducción verifica, comprueba y coteja los errores hechos por el programador; un compilador traduce un programa una sola vez, generalmente. Un programa compilado indica que ha sido traducido y está listo para ser ejecutado. La ejecución de los programas compilados es cinco veces más rápida que la de los interpretados, ya que el intérprete debe traducir mientras está en la fase de ejecución.

Se le atribuye a la oficial de marina Grace Murray Hopper (1906-1992) la acuñación de este término y se refería al trabajo que estaba detrás de la programación en aquellos tiempos, 1952: existía una biblioteca de programas constituida de un conjunto de rutinas, cada una de ellas probada individualmente; cuando se necesitaba un programa, se elegían las rutinas necesarias de esa biblioteca y se integraban para conformar el proceso que ejecutaría la computadora. Quién realizaba este trabajo de acopio de rutinas y de integración se le denominó compilador, de ahí que los nuevos lenguajes tuviesen sus propios "compiladores" para la integración del proceso que programar representaba.

Un compilador es un programa, en el que pueden distinguirse dos subprogramas o fases principales: una fase de análisis, en la cual se lee el programa fuente y se estudia la estructura y el significado del mismo; y otra fase de síntesis, en la que se genera el programa objeto. En un compilador pueden distinguirse, además, algunas estructuras de datos comunes, la más importante de las cuales es la tabla de símbolos, junto con las funciones de gestión de ésta y de los demás elementos del compilador, y de una serie de rutinas auxiliares para detección de errores.

    Al proceso de compilación lo podemos dividir en las siguientes fases:

  1. Análisis de léxico, que toma al programa fuente y lo convierte en una secuencia de unidades de léxico, devolviendo el token o clave que la representa. En el español, esta etapa representa tomar una oración y ubicar a cada palabra como artículo, sustantivo, adjetivo, verbo o adverbio cada una de las categorías de léxico que el idioma posee.

  2. Análisis gramatical o sintáctico, en donde se revisa que cada unidad de léxico se emplee de manera correcta de acuerdo a la gramática del lenguaje.

  3. Análisis semántico y de verificación de tipos, en donde se revisa que las operaciones sean realizables al determinar que las entidades están definidas de los tipos correctos y que los operadores son capaces de manipularlos. En ocasiones, se pueden ajustar los tipos para permitir la operación.

  4. Generación de código intermedio, en donde se obtiene un código para una máquina virtual (es decir, una máquina que no existe en la realidad pero que posee las características de la mayoría de las computadoras). Este código representa operaciones básicas para esta máquina virtual.

  5. Optimización de código intermedio, donde se eliminan operaciones redundantes o innecesarias que su ejecución implica más trabajo para el computador, pero que pueden ser simplificadas.

  6. Generación de código final, aquí cada orden en código intermedio encuentra una equivalencia para un procesador específico, quien será quien ejecute el programa que se dió originalmente por el programador. Es la última etapa del proceso de compilación.

Ejemplos: ALGOL, COBOL, FORTRAN, PASCAL.



"Al que puede ser sabio, no se le perdona que no lo sea"

Josemaría Escribá de Balaguer


COMPARACIÓN    (Intérprete-Compilador)

Un compilador crea una lista de instrucciones de código máquina, el código objeto, basándose en un código fuente; antes de su ejecución. El código objeto resultante es un programa rápido y listo para funcionar, por lo cual se ejecutan con tanta rapidez como si hubiesen sido escritos directamente en lenguaje máquina, pero que puede hacer que falle el ordenador si no está bien diseñado. Los intérpretes, por otro lado, son más lentos ya que no producen un código objeto, sino que recorren el código fuente una línea cada vez. Cada línea se traduce a código máquina y se ejecuta. Los programas que repiten un ciclo para volver a ejecutar parte de sus instrucciones, reinterpretan la misma instrucción cada vez que aparece.

Por consiguiente, los programas interpretados se ejecutan con mucha mayor lentitud que los programas en lenguaje máquina. Aunque este proceso es más lento, es menos susceptible de provocar fallos en la computadora. Pero por el contrario, es más cómodo desarrollar un programa mediante un intérprete que mediante un compilador puesto que en el intérprete las fases de edición y ejecución están más integradas, y también la depuración de los programas suele ser más fácil puesto que el código fuente está presente durante la ejecución. Estas ventajas pueden incorporarse al compilador mediante la utilización de entornos de desarrollo y depuradores simbólicos en tiempo de ejecución.




     Índice del sitio      Tema siguiente: Sistemas Operativos

Hosted by www.Geocities.ws

1