1. Inicio
  2. Diferencias
  3. Compilador e intérprete

Diferencia entre compilador e intérprete

Tema: tecnología.

Un compilador traduce todo el código fuente a lenguaje máquina antes de ejecutarlo, generando un programa independiente; un intérprete traduce y ejecuta el código línea a línea, sin generar antes ese programa independiente.

Para recordarlo: el compilador traduce un libro entero antes de entregarlo, y el intérprete traduce en voz alta frase por frase, a medida que se va leyendo.

Tabla comparativa: compilador e intérprete

CompiladorIntérprete
Qué esPrograma que traduce todo el código antes de ejecutarlo.Programa que traduce y ejecuta el código línea a línea.
ResultadoUn archivo ejecutable independiente.No genera un archivo aparte; ejecuta directamente.
Cuándo detecta erroresAntes de ejecutar el programa, durante la compilación.Durante la ejecución, al llegar a la línea con el error.
Velocidad de ejecuciónSuele ser más rápida, porque ya está traducido a lenguaje máquina.Suele ser algo más lenta, porque traduce mientras ejecuta.
Ejemplo típicoLenguajes como C o C++.Lenguajes como Python o JavaScript, en su forma clásica.

Qué es el compilador

El compilador lee el código fuente completo, comprueba que no tenga errores de sintaxis y lo traduce por completo a lenguaje máquina antes de que el programa se ejecute ni una sola vez. El resultado es un archivo ejecutable que después se puede correr tantas veces como se quiera, sin necesidad de volver a traducirlo.

Esto permite optimizar el código durante la traducción y suele dar programas que se ejecutan más rápido, aunque el proceso de compilación en sí mismo lleva un tiempo antes de poder probar cualquier cambio.

Qué es el intérprete

El intérprete no genera un archivo ejecutable aparte: lee el código fuente, lo traduce y lo ejecuta línea a línea, en el mismo momento. Si encuentra un error, se detiene justo en esa línea, después de haber ejecutado correctamente todas las anteriores.

Esto facilita probar cambios de forma casi inmediata, sin esperar a una compilación previa, aunque suele hacer que el programa se ejecute algo más lento que uno ya compilado, porque la traducción ocurre a la vez que la ejecución.

Ejemplos que muestran la diferencia

Un programa escrito en un lenguaje compilado debe traducirse por completo antes de poder probarlo, aunque después se ejecute muy rápido cada vez.

Un programa escrito en un lenguaje interpretado puede probarse línea a línea de inmediato, pero se detiene justo al llegar a un error, sin haber revisado antes el resto del código.

Al distribuir un programa compilado basta con entregar el archivo ejecutable, mientras que un programa interpretado necesita que el ordenador de destino tenga instalado el intérprete correspondiente.

Cuándo usar cada término

Preguntas frecuentes

¿Qué es más rápido, un lenguaje compilado o uno interpretado?

En general, un programa ya compilado se ejecuta más rápido, porque la traducción a lenguaje máquina se hizo por completo de antemano; un programa interpretado traduce sobre la marcha, lo que añade cierto trabajo adicional durante la ejecución.

¿Un lenguaje de programación es siempre compilado o siempre interpretado?

No de forma estricta: la misma sintaxis de un lenguaje puede implementarse con un compilador, con un intérprete o con un enfoque mixto, que compila primero a un código intermedio y después lo interpreta o lo compila una segunda vez.

¿Por qué algunos lenguajes usan un enfoque mixto?

Porque buscan combinar ventajas de ambos: la comodidad de probar cambios rápido, típica de los intérpretes, con parte de la velocidad de ejecución que ofrece traducir antes el código a un formato más cercano al lenguaje máquina.

Ver también