Compilador e intérprete: diferencias, en
resumen
Tanto los compiladores como los intérpretes cumplen la función de convertir el código
de software que se ha escrito a un formato ejecutable y legible por máquina. Sin esta
traducción, los procesadores informáticos no podrían ejecutar el software en lenguajes
como C, C++, PHP, Python o Ruby, lo que convierte estos programas en unos
componentes imprescindibles para utilizar ordenadores, portátiles o smartphones. En la
siguiente tabla, se resumen los aspectos clave que caracterizan intérpretes y
compiladores: (Digital Guide IONOS, 2020)
Si observamos las diferencias entre compilador e intérprete, vemos claramente los
puntos fuertes y débiles de cada solución para traducir el código fuente: con el
intérprete, los programas se pueden ejecutar de inmediato y, por lo tanto, se inician
mucho más rápido. Además, el desarrollo es mucho más fácil que con un compilador,
porque el proceso de depuración (es decir, la corrección de errores) se lleva a cabo
igual que la traducción, línea por línea. En el caso del compilador, primero debe
traducirse todo el código antes de poder resolver los errores o iniciar la aplicación. Sin
embargo, una vez que se ejecuta el programa, los servicios del compilador ya no son
necesarios, mientras que el intérprete continúa utilizando los recursos informáticos.
(Digital Guide IONOS, 2020)
COMO DISTRIBUIR UN PROGRAMA
Un compilador genera un programa “stand-alone” es decir que tiene sentido y se puede
ejecutar por sí solo, mientras que un programa interpretado siempre necesita su
intérprete correspondiente para poder ejecutarse.
Por lo tanto, es más fácil distribuir un programa compilado. El problema es que sólo
podrás ejecutarlo en la plataforma para la que se ha compilado. Cada sistema
operativo (y cada familia de procesadores) necesita una versión compilada diferente.
Por ejemplo, un programa C++ podría ejecutarse en un ordenador con un procesador
x86 pero no en uno con ARM. O podría funcionar en Linux pero no en Windows.
Y al revés, puedes distribuir la misma copia de un programa interpretado a usuarios en
plataformas muy diferentes. Pero cada uno de ellos tendrá que disponer de un
intérprete para su plataforma. (Tomassetti, 2023)
Solución híbrida de intérprete y compilador: compilación en tiempo de
ejecución
Para compensar los puntos débiles de ambas soluciones, también existe el llamado
modelo de compilación en tiempo de ejecución (en inglés, just-in-time-compiler, o
“compilador justo a tiempo”). Este tipo de compilador, que a veces también se conoce
por el término inglés compreter (acrónimo de compiler e interpreter), rompe con el
modelo habitual de compilación y traduce el código del programa durante el tiempo de
ejecución, al igual que el intérprete. De esta forma, la alta velocidad de ejecución típica
de los compiladores se complementa con la simplificación del proceso de desarrollo.
Java es uno de los ejemplos más conocidos de lenguaje basado en compilación en
tiempo de ejecución: el compilador JIT, que figura entre los componentes del Java
Runtime Environment (JRE), mejora el rendimiento de las aplicaciones Java
traduciendo el código de bytes en código máquina de manera dinámica. (Digital Guide
IONOS, 2020)
Bibliografía
Digital Guide IONOS. (16 de 06 de 2020). ionos.mx. Obtenido de Digital Guide IONOS:
https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/compilador-e-
interprete/
Tomassetti, G. (08 de 10 de 2023). tomassetti.me. Obtenido de Strumenta:
https://tomassetti.me/difference-between-compiler-interpreter/#