Lenguajes interpretados vs compilados
Lenguajes interpretados VS lenguajes compilados: breve y fácil
Si has empezado a programar hace poco, es posible que al aprender tu primer lenguaje de programación te lo hayan introducido como "lenguaje interpretado", o bien como "lenguaje compilado".
Si no tienes claro qué significa esta clasificación, tranqui, aquí lo dejo todo resumido.
¿En qué se basa esta clasificación?
Existen varias clasificaciones diferentes para los lenguajes de programación: según el proposito para el que se han creado, según el paradigma con el que deba usarse, según cómo será leído por la computadora, y muchos otros tipos.
El último caso es la clasificación que estamos tratando en este post.
Los lenguajes deben ser ejecutados por la computadora, pero nuestros ordenadores no saben leer el código que escribimos, solo saben leer el código máquina, un código basado en números binarios.
En nuestro caso es al revés, no se nos da bien leer el código máquina, y por ello se han inventado lenguajes que tengan una sintaxis más legible para los humanos: los lenguajes de programación.
Para que los lenguajes de programación sean ejecutados, es necesario que las instrucciones sean traducidas de alguna manera al código máquina.
Y aquí es donde entran en juego dos elementos muy importantes, los elementos encargados de traducir el código de un lenguaje a otro: los intérpretes y los compiladores.
Lenguajes compilados
Estos lenguajes, antes de poder ejecutarlos, pasan por un proceso de compilación, es decir, todo el código es leído y transformado en un archivo binario (que lo puede leer y ejecutar la computadora directamente).
Para ello, se usa el compilador, que es un software que se encarga del proceso de "traducción" de un archivo al otro.
Ejemplos: C, C++, Rust o Go.
Lenguajes interpretados
Estos lenguajes se pueden ejecutar sin usar un binario, ya que son traducidos al código máquina a medida que se van leyendo las instrucciones.
Para ello, se usa el intérprete, que es un software que se encarga de leer cada línea de código para traducirla y enviar las órdenes a la CPU.
Ejemplos: Bash, Python, Ruby o JavaScript.
Diferencias notables
Sin entrar mucho al detalle, las dos diferencias más notables a tener en cuenta son:
- Los archivos binarios son más rápidos y potentes de usar que el proceso de interpretación, ya las instrucciones están en el lenguaje que la computadora puede entender y ejecutar.
- La compilación es un proceso que necesita de cierto tiempo antes de poder ejecutar el archivo final, mientras que la interpretación es más rápida por ir leyendo el código a medida que se ejecuta.
Es por eso que los lenguajes compilados dan como resultado un software más potente y veloz de usar, mientras que durante la etapa de desarrollo resulta más rápido trabajar con un lenguaje interpretado (por ahorrarnos los procesos de compilación a cada cambio).
¿Y los transpilados?
Existen lenguajes que se traducen a otro lenguaje de programación que no sea código máquina. A eso se les llama lenguajes transpilados.
Un ejemplo sería TypeScript. En este caso, el código pasa por un proceso parecido a la compilación, pero en vez de traducirse a código máquina, se traduce a JavaScript, para luego usar el intérprete adecuado.
Se podría decir que es un tipo de compilación, ya que no deja de ser la traducción de un tipo de código a otro tipo de código; aunque en este caso el resultado no pueda ser ejecutado directamente por la computadora y dependa de otro proceso (normalemte de intepretación).
Por último...
Me gustaría añadir que los lenguajes de programación no están anclados a ser solo una de estas cosas.
Podrás encontrar compiladores para lenguajes intepretados.
A final de cuentas, a cualquier lenguaje se le puede construir un compilador o un intérprete.
Comentarios
Publicar un comentario