Un intérprete permite que un programa fuente
escrito en un determinado lenguaje vaya traduciéndose y ejecutándose
directamente, sentencia a sentencia, por el ordenador. El intérprete capta una
sentencia fuente, la analiza e interpreta, dando lugar a su ejecución
inmediata, no creándose, por tanto, un archivo o programa objeto almacenaje en
memoria masiva para posteriores ejecuciones. La ejecución del programa estará
supervisada por el intérprete.
En
la práctica, el usuario crea un archivo con el programa fuente. Esto suele
realizarse con un editor específico del propio intérprete del lenguaje. Según
se van almacenado las instrucciones simbólicas, se analizan y se producen los
mensajes de error correspondientes; así, el usuario puede proceder
inmediatamente a su corrección. Una vez creado el archivo fuente, el usuario
puede dar la orden de ejecución y el intérprete lo ejecuta línea a línea.
Siempre el análisis antecede inmediatamente a la ejecución.
Si
utilizamos un intérprete para traducir un programa, cada vez que necesitemos
ejecutar el programa se volverá a analizar, ya que, no se genera un fichero
objeto. En cambio, con un compilador, aunque sea más lenta, la traducción sólo
debe realizarse una vez. Además los traductores no permiten realizar
optimizaciones del código (que eliminan órdenes innecesarias compactando el
código) más allá del contexto de cada sentencia del programa.
La
principal ventaja de los intérpretes frente a los compiladores es que resulta
más fácil localizar y corregir errores de los programas, ya que la ejecución de
un programa bajo un intérprete puede interrumpirse en cualquier momento para
conocer los valores de las distintas variables y la instrucción fuente que
acaba de ejecutarse. Con un compilador esto no se puede realizar, salvo que el
programa se ejecute bajo el control de un programa especial de ayuda denominado
depurador (“debugger”). Por este motivo, los intérpretes resultan más pedagógicos
para aprender a programar, ya que el alumno puede detectar y corregir más
fácilmente sus errores.
0 comentarios:
Publicar un comentario