Saltar al contenido

¿Cómo funciona un intérprete/compilador?

Posteriormente a buscar en varios repositorios y páginas de internet finalmente nos encontramos con la resolución que te enseñaremos a continuación.

Solución:

compiladores

Los compiladores fueron el primer tipo de programa traductor que se escribió. La idea es simple: escribes el programa, luego lo entregas al compilador que lo traduce. Luego ejecutas el resultado.

Intérpretes

Un intérprete es también un programa que traduce un lenguaje de alto nivel a uno de bajo nivel, pero lo hace en el momento en que se ejecuta el programa. Escribes el programa usando un editor de texto o algo similar, y luego le indicas al intérprete que ejecute el programa. Toma el programa, una línea a la vez, y traduce cada línea antes de ejecutarlo: traduce la primera línea y la ejecuta, luego traduce la segunda línea y la ejecuta, etc.

Características del compilador:

  • pasa mucho tiempo analizando y procesando el programa
  • el ejecutable resultante es alguna forma de código binario específico de la máquina
  • el hardware de la computadora interpreta (ejecuta) el código resultante
  • la ejecución del programa es rápida

Características del intérprete:

  • se dedica relativamente poco tiempo a analizar y procesar el programa
  • el código resultante es una especie de código intermedio
  • el código resultante es interpretado por otro programa
  • la ejecución del programa es relativamente lenta

¿Qué es un traductor?

Un Traductor S -> T acepta el código expresado en el idioma de origen S y lo traduce a un código equivalente expresado en otro idioma (de destino) T.

Ejemplos de traductores:

  • Compiladores: traduce código de alto nivel a código de bajo nivel, p. Java -> JVM
  • Ensambladores: traduce el código de lenguaje ensamblador a código de máquina, por ejemplo x86as -> x86
  • Traductores de alto nivel: traduce código de un PL a otro, p. Java->C
  • Descompiladores: traduce código de bajo nivel a código de alto nivel, p. Código de bytes Java JVM -> Java

¿Qué es un intérprete?

Un intérprete de s acepta código expresado en lenguaje S, e inmediatamente ejecuta ese código. Funciona buscando, analizando y ejecutando una instrucción a la vez.

Excelente cuando el usuario ingresa instrucciones de forma interactiva (piense en Python) y le gustaría obtener el resultado antes de ingresar la siguiente instrucción. También es útil cuando el programa debe ejecutarse una sola vez o requiere ser portátil.

  • Interpretar un programa es mucho más lento que ejecutar código de máquina nativo
  • Interpretar un lenguaje de alto nivel es ~100 veces más lento
  • La interpretación de un lenguaje de nivel intermedio (como el código de bytes JVM) es aproximadamente 10 veces más lenta
  • Si una instrucción se llama repetidamente, se analizará repetidamente, ¡consumiendo mucho tiempo!
  • No es necesario compilar código

diferencias

Conducta

  • Un compilador traduce el código fuente a código de máquina, pero no ejecuta el código fuente ni el código objeto.

  • Un intérprete ejecuta el código fuente una instrucción a la vez, pero no traduce el código fuente.

Rendimiento

  • Un compilador tarda mucho tiempo en traducir el programa fuente a un código de máquina nativo, pero la ejecución posterior es rápida.
  • Un intérprete comienza a ejecutar el programa fuente inmediatamente, pero la ejecución es lenta

compiladores interpretativos

Un compilador interpretativo es un buen compromiso entre compiladores e intérpretes. Traduce el programa fuente en código de máquina virtual, que luego se interpreta.

Un compilador interpretativo combina una traducción rápida con una ejecución moderadamente rápida, siempre que:

  • El código de la máquina virtual es más bajo que el idioma de origen, pero más alto que el código de máquina nativo
  • Las instrucciones de VM tienen formatos simples (pueden ser analizadas rápidamente por un intérprete)

Ejemplo: JDK proporciona un compilador interpretativo para Java.

Compilador, transforma el código fuente de un lenguaje informático a otro.

Intérprete, ejecuta el código fuente directamente (generalmente dentro de su propia máquina virtual).

texto alternativo


(fuente: respuestas.com)

Por lo general, el intérprete tiene un rendimiento costoso.

Más adelante puedes encontrar los comentarios de otros usuarios, tú además tienes la libertad de dejar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *