Para responder a su pregunta – Err, en su mayoría no realmente (?) :-). Los idiomas compilados tradicionalmente convierten su código legible por humanos en código de máquina, una cadena de números binarios que el sistema operativo y la CPU luego “ejecutan”.
Si su idioma es interpretado, significa que su idioma está en una representación que no es de código de máquina para el momento en que se ejecuta, y tiene otra capa que lo atraviesa línea por línea. El CPython tradicional convierte su Python fácil de usar en el código de bytes de Python, que luego el intérprete recorre línea por línea.
La situación taxonómica se vuelve más complicada una vez que empiezas a hablar de JIT’ing, como lo están haciendo Unladen-Swallow (y Parrot), y como lo hará CPython muy pronto. Las secciones de bytecode se convierten a pedido en código máquina y se ejecutan adecuadamente. ¿JIT’ing algún idioma lo convierte en un lenguaje compilado? En realidad no, pero la distinción se vuelve más confusa aquí.
- ¿Cómo dunked.com se hizo tan popular tan rápido?
- ¿Java es bueno para el desarrollo web?
- ¿Cuál es su marco de desarrollo web favorito (.NET, Django, Ruby on Rails, etc.)? ¿Por qué?
- Cómo dominar el desarrollo web front-end en un mes
- ¿Cuál es la mejor práctica para poner la misma información en varias páginas? ¿Google me penalizará por tener el mismo párrafo en varias páginas?
En conclusión: este es un debate filosófico sobre taxonomías que se va haciendo cada vez más confuso a medida que pasa el tiempo 🙂