
Un lenguaje interpretado es un lenguaje de programación que está diseñado para ser ejecutado por medio de un intérprete, en contraste con los lenguajes compilados. Teóricamente, cualquier lenguaje puede ser compilado o ser interpretado, así que esta designación es aplicada puramente debido a la práctica de implementación común y no a alguna característica subyacente de un lenguaje en particular. Sin embargo, hay los lenguajes que son diseñados para ser intrínsecamente interpretativos, por lo tanto un compilador causarán una carencia de la eficacia. Muchos autores rechazan la clasificación de lenguajes de programación entre interpretados y compilados, considerando que el modo de ejecución (por medio de intérprete o de compilador) del programa escrito en el lenguaje es independiente del propio lenguaje. A ciertos lenguajes interpretados también se les conoce como lenguajes de script.
Muchos lenguajes han sido implementados usando tanto compiladores como intérpretes, incluyendo Lisp, Pascal, C, BASIC, y Python. Mientras que Java es traducido a una forma que se destina a ser interpretada, la compilación justo a tiempo es frecuentemente usada para generar el código de máquina. Los lenguajes de Microsoft .NET compilan a una forma intermedia (CIL) la cual es entonces a menudo compilada en código de máquina nativo; sin embargo hay una máquina virtual capaz de interpretar el CIL. Muchas implementaciones Lisp pueden mezclar libremente código interpretado y compilado. Estas implementaciones también usan un compilador que puede traducir arbitrariamente código fuente en tiempo de ejecución (runtime) a código de máquina.
Ventajas de los lenguajes de Programacion Interpretados
- independencia de plataforma (por ejemplo el byte code de Java)
- reflexión y uso reflexivo del evaluador (ej. una función eval de primer orden)
- tipos dinámicos
- facilidad en la depuración (es más fácil obtener información del código fuente en lenguajes interpretados)
- pequeño tamaño del programa (puesto que los lenguajes interpretados tienen flexibilidad para elegir el código de instrucción)
- ámbito dinámico
- gestión de memoria automática
Desventajas de los lenguajes de Programacion Interpretados
La ejecución del programa por medio de un intérprete es usualmente mucho menos eficiente que la ejecución de un programa compilado. No es eficiente en tiempo porque, o cada instrucción debe pasar por una interpretación en tiempo de ejecución, o como en más recientes implementaciones, el código tiene que ser compilado a una representación intermedia antes de cada ejecución. La máquina virtual es una solución parcial al problema de la eficiencia del tiempo pues la definición del lenguaje intermedio es mucha más cercana al lenguaje de máquina y por lo tanto más fácil de ser traducida en tiempo de ejecución. Otra desventaja es la necesidad de un intérprete en la máquina local para poder hacer la ejecución posible.
- ActionScript
- ASP (hasta la versión 3)
- Bash
- Basic4GL (Basic para OpenGL. Permite generar ejecutables Windows completos)
- BeanShell (Java en lenguaje de Scripts)
- Inform
- IO (es un lenguaje reciente -2002-)
- JavaScript (todas las plataformas)
- Logo (Linux, Windows y Mac)
- Lenguaje de Programacion R
- Lisp
- Lua
- Lush (Lisp para gráficos Linux)
- NWNScript (empleado en el videojuego Neverwinter Nights y Neverwinter Nights 2)
- Perl (todas las plataformas)
- PHP
- Pike (es el más rápido de todos, al estar escrito en gran parte en código nativo)
- Python (todas las plataformas)
- REXX y variantes como Object REXX (todas las plataformas, en especial: OS/2 / AmigaOS)
- Ruby
- Tcl
- VBScript (Microsoft Windows)
- REXX y variantes como Object REXX (todas las plataformas, en especial:OS/2 / AmigaOS)
- Ruby
- Tcl
- VBSScript (Microsoft Windows)

