lunes, 30 de mayo de 2011

Diferencias entre "Compiladores e Intérpretes"

¿Qué es un compilador?
Es en traductor que cualquier programa que toma como entrada un texto escrito en un lenguaje, llamado fuente y da como salida otro texto en un lenguaje, denominado objeto. 

¿Qué es un intérprete?
   Es un traductor que realiza la operación de compilación paso a paso. Para cada sentencia que compone el texto de entrada, se realiza una traducción, ejecuta dicha sentencia y vuelve a iniciar el proceso con la sentencia siguiente.

 Diferencia entre Compiladores e Intérpretes:


Intérprete
Compilador
        Fácil localización de errores.
         Cada vez que se ejecuta el programa es necesaria su interpretación. 
           Adecuado en la etapa de desarrollo y depuración.
         Difícil localización de errores.
        Solo es necesaria una compilación. Y una vez realizada, la velocidad de ejecución es alta.
        Adecuado cuando no hay más errores (etapa de explosión).

  • Un compilador actúa como un traductor que recibe un libro escrito en un idioma determinado (lenguaje de alto nivel) y escribe un nuevo libro que, con mayor fidelidad posible, contiene una traducción de texto original a otro idioma (código de maquina). El proceso de traducción tiene lugar una sola vez y podemos leer el libro (ejecutar el programa) en el idioma destino (código maquina) cuantas veces queramos.
  • Un compilador se compila una vez y se ejecuta n veces.
  • En bucles, la compilación genera código equivalente al bucle, pero interpretándolo se traduce tantas veces una línea como veces se repite el bucle. 

  
  •  Un intérprete de programas actúa como su homónimo en el caso de los idiomas. En una conferencia en inglés en diferentes cuidades y un interprete ofrece su traduccion simultánea al castellano. Cada ves que la conferencia es pronunicada, el intérprete deve realizar nuevamente la traduccion. Es mas, la traducción se produce sobre la marcha, frase a frase, y no de un tirón al final de la conferencia. Del mismo modo actúa el intérprete de un lenguaje de programación: traduce cada vez que ejecutamos el programa y además lo hace intrucción a intrucción.
  • Puede ser rápidamente modificado y ejecutado nuevamente. 
  • Resultan muy apropiados durante la fase de desarrollo de un programa, ya que la compilación no permite la ejecución paso a paso del programa y con ello impide la edición seguimiento y depuración del programa. 
  •  El programa se puede ejecutar de inmediato, sin esperar a ser compilado.
     



1 comentario:

  1. gracias por tu explicacion, para ser mi segundo dia en la carrera me quedo muy clara la diferencia entre ambos con tus ejemplos tan faciles de entender.

    ResponderEliminar