Compilación vs Interpretación

 ¿Qué es la compilación y la interpretación?


Original article: Interpreted vs Compiled Programming Languages: What's the Difference?

Cada programa es un conjunto de instrucciones, ya sea sumar dos números o enviar una petición a través de internet. Los compiladores e intérpretes toman código legible por los humanos y lo convierten en código máquina legible por computadoras.

En un lenguaje compilado, la máquina de destino traduce directamente el programa. En un lenguaje interpretado, el código fuente no es directamente traducido por la máquina de destino. En cambio, un distinto programa, mejor conocido como intérprete, lee el código y lo ejecuta.

Lenguajes compilados

Los lenguajes compilados son convertidos directamente a código máquina que el procesador puede ejecutar. 

Los lenguajes compilados necesitan un paso de compilación (build) - primero necesitan compilarse manualmente.

Algunos ejemplos de lenguajes compilados puros son C, C++, Erlang, Haskell, Rust y Go.

Lenguajes interpretados

Estos lenguajes ejecutan línea por línea el programa y a la vez ejecutan cada comando.

Los lenguajes interpretados alguna vez fueron significativamente más lentos que los lenguajes compilados. 

Ejemplos comunes de lenguajes interpretados son PHP, Ruby, Python y JavaScript.

Una pequeña advertencia

La mayoría de los lenguajes de programación pueden tener implementaciones tanto compiladas como interpretadas, el lenguaje en sí mismo no es necesariamente compilado o interpretado. Sin embargo, por cuestiones de simplicidad, normalmente se les conoce de tal manera.

Python, por ejemplo, puede ser ejecutado ya sea como programa compilado o como un lenguaje interpretado en modo interactivo. Por el otro lado, la mayoría de las herramientas de línea de comandos, CLIs y shells pueden ser teóricamente clasificadas como lenguajes interpretados.

Ventajas y desventajas

Ventajas de los lenguajes compilados

Los programas que son compilados a un código máquina nativo suelen ser más rápidos que los lenguajes interpretados. Esto es debido a que el proceso de traducción del código en tiempo de ejecución aumenta la sobrecarga y puede ocasionar que el programa sea más lento en general.

Desventajas de los lenguajes compilados

Las desventajas más notables son:

  • Tiempo extra necesario para completar la compilación completa antes de la prueba
  • Dependencia de la plataforma del código binario generado

Ventajas de los lenguajes interpretados

Los lenguajes interpretados suelen ser más flexibles, y a menudo ofrecen características como escritura dinámica y tamaño de programa más pequeño. Además, ya que los intérpretes ejecutan el código fuente del programa ellos mismos, el código en sí es independiente de la plataforma.

Desventajas de los lenguajes interpretados

La desventaja más notable es la velocidad de ejecución típica comparada con los lenguajes compilados.



Comentarios

Entradas populares de este blog

Uso de Numpy, Pandas y ChatGPT para realizar un análisis estadístico de Calificaciones

Primeros Pasos en el Análisis de Datos

PENSAMIENTO COMPUTACIONAL (PROBLEMA PRACTICO)