CUADRO COMPARATIVO ENTRE INTÉRPRETE Y COMPILADOR Nombre: Blanca Itzel Jiménez Islas. No. Control: 11200646. Carrera: Ingeniería en Sistemas Computacionales. Asignatura: Lenguajes y autómatas II Profesor: Arturo González Cerón Fecha: 31/Agosto/2015
CUADRO COMPARATIVO ENTRE INTÉRPRETE Y COMPILADOR INTÉRPRETE Vista gráfica general (Esquema de funcionamiento)
Programa fuente
COMPILADOR Programa fuente
Intérprete
Código intermedio
¿Cómo lee/traduce el programa? Funcionamiento
¿A qué tipo de lenguaje lo traduce? ¿Genera código equivalente? Comparación con un ejemplo de la vida cotidiana
Programa objeto Todo de una vez.
Traduce cada línea (instrucción o sentencia) del programa fuente a un lenguaje intermedio e inmediatamente la ejecuta. Obtiene los resultados conforme se van analizando las entradas. A código intermedio
Traduce el programa a uno equivalente escrito en otro lenguaje. Y posteriormente genera los resultados a partir de los datos de entrada.
No
Sí
Cuando un intérprete humano traduce las frases que oye sobre la marcha, sin producir ningún escrito permanente.
Cuando usamos el traductor de google. Si una palabra de la frase a traducir está mal escrita, el compilador no la entenderá. Entonces se está produciendo un error. Se analiza el lenguaje fuente una sola vez, durante la generación del programa equivalente. Lanza un mensaje de error al detectarlo. Si el código fuente contiene errores sintácticos, el compilador no producirá un ejecutable.
¿Qué hace al detectar Da la apertura de corregir los errores un error, por ejemplo, incluso cuando el programa está en marcha. de tipo sintáctico?
¿Qué actividad realiza con facilidad y rapidez? ¿Genera código ejecutable? Rapidez en velocidad de ejecución ¿El archivo generado puede funcionar en cualquier plataforma (sistema operativo)? ¿Ofrece la posibilidad de que el usuario pueda
Error
Línea por línea
¿Cómo es su etapa de Se ve obligado a analizar cada instrucción tantas veces como se ejecute. análisis?
Tipo de lenguaje que emplea
Compilador
O bien, pueden quedar enmascarados si para un ejercicio no es necesario traducir la línea que los contiene. Interpretativo: Incluye operadores muy potentes que exigen un intérprete. La búsqueda de errores.
A código objeto, normalmente máquina o ensamblador
Compilativo: Permite el uso de un compilador, prescinden de operadores muy potentes. Generar programas más rápidos y eficientes.
No
Sí
Lenta porque es necesario traducir línea por línea.
10 a 20 veces mayor que el archivo interpretado
Sí.
No, solo en la que se ha creado
Sí, en cualquier momento.
No, cuando detecta un error, la marcha se detiene por sí sola, antes de llegar a la ejecución.
interrumpir la marcha del programa? ¿Se puede modificar el Sí, incluso sin necesidad de reiniciar la No, primero se debe detener el proceso de compilación. programa sobre la ejecución. marcha?
Conclusión Como se puede observar, los dos presentan la similitud de traducir un texto proveniente de un lenguaje de alto nivel a uno de más bajo nivel, para que le sea más fácil a la computadora interpretarlo. Los intérpretes presentan algunas ventajas frente a los compiladores, por ejemplo, al ejecutar directamente el código sin necesidad de compilación, llegamos a la deducción de que necesita menos memoria que un compilador, que tiene que leer todo el documento antes de ejecutarlo. Además, facilita la interrupción del programa para corregir errores o explorar variables de entorno. Sin embargo, su ejecución es más lenta, ya que ejecuta línea por línea del programa. Entonces, e l compilador posee la cualidad de que una vez obtenido el programa en otro lenguaje, éste puede ser ejecutado sin necesidad de compilarlo de nuevo. Encontrar los aspectos del traductor que lo distinguieran del compilador y del intérprete, no fue una tarea sencilla, ya que algunos autores sostienen que el compilador y el intérprete son derivaciones del traductor. Mientras otros defienden que por la manera tan parecida de trabajar, el compilador y el traductor son lo mismo. Es por eso que decidí omitirlo en el cuadro comparativo. Sin embargo, quiero hacer la mención de que el traductor es un instrumento que facilita la función de los compiladores e intérpretes.
Referencias bibliográficas
Autor desconocido (2010). Software de sistemas. Comparación intérpretes y compiladores. México. Consultado el día 29 de agosto de 2015 desde: http://equipo5241v.blogspot.mx/2010/05/comparacioninterpretes-y-compiladores.html Autor desconocido (2012). Fundamentos de programación. México. Consultado el día 30 de agosto de 2015 desde: http://funprogramacion.wikispaces.com/Compiladores+e+Int%C3%A9rpretes GAM, Jesús (2011). Diferencia entre intérprete y compilador. México. Consultado el día 31 de agosto de 2015 de: http://racherfou.blogspot.mx/2011/02/diferencia-entre-interprete-y.html