UNIDAD 1 ARQUITECTURA DE LOS COMPILADORES E INTERPRETES
Unidad de competencia
Determina la estructura general de los compiladores e intérpretes con base en la funcionalidad de sus etapas y fases
¿Qué es un intérprete?
Un intérprete ejecuta el programa sin traducirlo.
El funcionamiento de un intérprete se caracteriza por traducir y
ejecutar, de una en una, las instrucciones del código fuente de un programa,
pero, sin generar como salida código objeto.
Analiza el programa fuente y lo ejecuta directamente, o sea en el
ejemplo del traductor humano, éste sería un traductor humano que conforme a lo
que está escuchando va ejecutando, sin generar ningún escrito, es decir que
sobre la marcha va traduciendo.
¿Como funciona un interprete?
Intérprete, que analiza el programa fuente y "lo ejecuta
directamente", sin generar ningún código equivalente. Su acción equivale a
la de un intérprete humano, que traduce las frases que oye sobre la marcha, sin
producir ningún escrito permanente. Intérpretes y compiladores tienen diversas
ventajas e inconvenientes que los hacen complementarios:
Un intérprete facilita la búsqueda de errores, pues la ejecución
de un programa puede interrumpirse en cualquier momento para estudiar el
entorno (valores de las variables, etc.). Además, el programa puede modificarse
sobre la marcha, sin necesidad de volver a comenzar la ejecución.
El proceso que realiza un intérprete es el siguiente: lee la
primera instrucción del código fuente, la traduce a código objeto y la ejecuta;
a continuación, hace lo mismo con la segunda instrucción; y así sucesivamente,
hasta llegar a la última instrucción del programa, siempre y cuando, no se
produzca ningún error que detenga el proceso.
Un intérprete permite utilizar funciones y operadores más
potentes, como por ejemplo ejecutar código contenido en una variable en forma
de cadenas de caracteres. Usualmente, este tipo de instrucciones es imposible
de tratar por medio de compiladores. Los lenguajes que incluyen este tipo de
operadores y que, por tanto, exigen un intérprete, se llaman interpretativos.
Los lenguajes compilativos, que permiten el uso de un compilador, prescinden de
este tipo de operadores. En pocas palabras "el compilador sólo traduce; el
intérprete decodifica y ejecuta.
Ventajas del intérprete frente al compilador:
• El programa se
puede ejecutar de inmediato, sin esperar a ser compilado.
• Puede ser
interrumpido con facilidad.
• 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.
Desventajas del intérprete frente al compilador:
• La ejecución es
más lenta, pues cada instrucción debe ser traducida a código máquina tantas
veces como sea ejecutada.
• No son
adecuados en la fase de explotación del programa ya que el proceso de
interpretación se ha de repetir cada vez que se ejecuta el programa, mientras
que con la compilación, una vez obtenido el programa en leguaje máquina éste
puede ser ejecutado sin necesidad de compilarlo de nuevo.
Son lenguajes interpretados:
• PHP
• ASP (hasta la
versión 3)
• HTML
• JavaScript
• Haskell
• Prolog
No hay comentarios:
Publicar un comentario