Un lenguaje de programación interpretado es aquel que no necesita ser compilado previamente a su ejecución. Un programa, llamado intérprete, lee el programa línea por línea, lo traduce a lenguaje máquina y lo ejecuta sobre la marcha.
Un lenguaje de programación interpretado es un tipo de lenguaje de programación que se basa en otra pieza de software llamada intérprete para ejecutarse. Los lenguajes interpretados tienen varias limitaciones en términos de rendimiento, pero la programación con ellos es más fácil, por lo que son ideales para ciertos tipos de aplicaciones.
La mayoría de los lenguajes de programación se basan en un compilador, el cual convierte el código en un conjunto de instrucciones diseñadas específicamente para un tipo particular de máquina y sistema operativo. Sin embargo, cuando se escriben programas utilizando un lenguaje interpretado el programa en sí es un archivo de texto con código en el cual el intérprete actúa como intermediario traduciendo las instrucciones en algo que la máquina pueda entender sobre la marcha.
Hace un tiempo el uso de lenguajes interpretados era muy cuestionado, principalmente por la velocidad. Cuando el procesamiento computacional era escaso, los lenguajes interpretados tenían usos muy limitados porque consumían muchos más recursos. Con los lenguajes compilados todo es más eficiente y directo porque los programas ya se han traducido a lenguaje máquina. El proceso de compilación se produce cada vez que una persona ejecuta un programa interpretado, por lo que el software de interpretación tiene que ejecutarse constantemente al mismo tiempo, lo que generalmente afecta al rendimiento.
A medida que ha ido aumentando el poder de cómputo, también se ha incrementado el uso de lenguajes interpretados, pero aún existen ciertas limitaciones. Incluso con computadoras potentes, estos lenguajes no se consideran ideales para ciertos tipos de aplicaciones (como es el caso de los videojuegos).
Algunos programas se construyen utilizando una combinación de lenguajes interpretados y lenguajes compilados. En este tipo de implementaciones, el lenguaje interpretado puede manejar solo un pequeño aspecto de la funcionalidad, mientras que la mayoría del programa usa código compilado. Un ejemplo sería un juego con su propio intérprete incorporado para un lenguaje de scripting que permite a los usuarios crear y modificar contenido fácilmente.
Pros y contras de los lenguajes de programación interpretados
Los lenguajes de programación interpretados tienen varias ventajas:
- Los programas creados con ellos pueden ser más fáciles de probar porque no tienen que compilarse repetidamente y, por lo general, resulta más sencillo realizar cambios en el código. En general, la codificación de software es más ágil, con tiempos de desarrollo más cortos.
- La depuración es mucho más fácil en un lenguaje interpretado, ya que se dispone de acceso a todo el código y el intérprete informa de los errores en tiempo de ejecución. Aquí no es necesario esperar a que el compilador convierta el programa en un archivo ejecutable y luego ejecutarlo para verificar si el resultado es favorable o no.
- Otra gran ventaja es su amplia portabilidad. En términos generales, si hay una versión del intérprete para múltiples tipos de máquinas y sistemas operativos, entonces cualquier programa escrito en ese lenguaje se puede usar en una amplia variedad de plataformas. Por ejemplo, un programa escrito en un lenguaje interpretado podría ejecutarse en un sistema basado en Macintosh™, Windows® o Linux® sin ninguna modificación.
Sus desventajas son:
- Para ejecutar los programas en lenguajes interpretados se requiere tener un intérprete para ese lenguaje en la máquina; en caso contrario no puede ser ejecutado.
- Al necesitar interpretar el programa cada vez que se ejecuta, esto es más lento que en los lenguajes compilados en los que hay un archivo ejecutable para que lo ejecute la CPU, lo que resulta más rápido.
- Es imprescindible compartir el código con todos los que necesiten ejecutar el programa en su máquina. Este paso no se precisa en el lenguaje compilado ya que solo se comparte el archivo ejecutable del programa, haciendo que el código fuente sea privado y seguro.
Ejemplos de lenguajes interpretados
Los lenguajes interpretados más ampliamente utilizados son:
- Python: Data Science, Machine Learning, aplicaciones y desarrollo web, visión artificial y procesado de imagen, videojuegos, scripting.
- PHP: desarrollo web (servidor), iteración con BBDD y HTML.
- Pearl: scripting, aplicaciones y desarrollo web, integración de sistemas e interfaces, minería de datos.
- Ruby: desarrollo web, scripting, Data Science, web scraping.
- Visual Basic: automatización de tareas, aplicaciones de escritorio y servicios de BBDD.
- Bash: scripting.
- Javascript
Lenguaje interpretado vs. compilado
La secuencia de ejecución de un programa en un lenguaje interpretado es:
Código fuente > Intérprete > Resultados
Sin embargo, en un lenguaje compilado es:
Código fuente > Compilador > Código máquina > Resultados
Las principales diferencias entre un tipo de lenguaje y otro son:
- Un lenguaje interpretado utiliza un intérprete, mientras que un lenguaje compilado usa un compilador para convertir el código fuente en código de máquina.
- En un lenguaje interpretado, el código fuente se ejecuta en el momento de la interpretación. En el lenguaje compilado requiere de dos pasos: primero, convierte el código en un archivo ejecutable adecuado para el lenguaje de la máquina de destino, a continuación, se puede ejecutar ese archivo.
- Un lenguaje compilado es más rápido que un lenguaje interpretado.
- En un lenguaje interpretado, se obtienen los errores en tiempo de ejecución. Un intérprete informa solo un error a la vez, lo que facilita la depuración. Frente a ello, en lenguajes compilados un compilador informa de todos los errores presentes en el programa al compilar, impide la compilación y dificulta un poco la depuración.
- En un lenguaje compilado, la CPU puede ejecutar el archivo ejecutable directamente, mientras que en el interpretado se ejecuta directamente línea a línea el código.
- Como no se obtienen los errores al ejecutar el archivo ejecutable, el rendimiento del lenguaje compilado es mejor que el lenguaje interpretado.
En el Máster en Full Stack Developer online de UNIR se utilizan lenguajes interpretados con el objetivo de que los alumnos adquieran las capacidades necesarias para trabajar con tecnologías orientadas a la creación de aplicaciones en el front y, a su vez, con herramientas para la gestión y programación de servidores en el back.