Diferencia entre lenguajes de programación compilados e interpretados

Diferencia entre lenguajes de programación compilados e interpretados


aprender a programar curso de programación programa curso Hackademy Javascript Formación profesional Coding Bootcamp desarrollador full-stack lenguaje de programación Curriculum Vitae

A menudo cuando nos acercamos a la programación, la noción de lenguaje compilado e interpretado se omite totalmente y pasamos al cabo de muy poco tiempo a la realización del primer programa “Hello World”. A menudo, esto sucede sin ser plenamente consciente de la mecánica detrás de nuestro simple python print (), por ejemplo.

No todos los idiomas funcionan de la misma manera, al contrario, todos los idiomas se crean para remediar las deficiencias presentes en los demás idiomas existentes. Sin embargo, podemos dividir los lenguajes de programación en dos categorías macro dependiendo de cómo se comunican con el procesador. Hablamos, por tanto, de lenguajes compilados e interpretados.

Refiriéndonos al ejemplo anterior, la función python print () es muy rápida en cuanto a programación, solo es necesario teclear el comando insertando el texto que queremos imprimir dentro de los corchetes.

Pensando en el lenguaje C, naturalmente uno se pregunta por qué es más difícil incluir la biblioteca, crear la principal, escribir la función (printf) y recordar el ";" que terminan el comando.

Obviamente, los programadores que usan C no pueden ser imprudentes, nadie les complicaría la vida tanto.

Bueno, las razones detrás de esta diversidad se pueden encontrar en la propia naturaleza de los lenguajes, Python es un lenguaje interpretado y C es un lenguaje compilado.

Lenguajes compilados 

La diferencia entre lenguajes compilados e interpretados está contenida en la forma en que interactúan con el ordenador. Es una noción común que los ordenadores se expresan y entienden el código binario, pero antes hablé claramente de funciones escritas en inglés (print). Bueno, en un lenguaje compilado estas funciones, a menudo llamadas por la terminología inglesa, son convertidas en ensamblador por el compilador y posteriormente ensambladas en lenguaje binario para que la PC pueda leerlas.

Sin embargo, el Assembly es un código que varía según la familia de procesadores, por lo que es muy costoso en términos de tiempo y energía escribir un programa para cada código Assembly. Por tanto, la solución pasa por escribir un programa de alto nivel que pueda ser universal. Sin embargo, el problema sigue siendo que para realizar cambios tendrás que acceder al código fuente, cambiar el necesario y volver a convertirlo.

El file así obtenido, sin embargo, será un archivo binario que en cada lanzamiento no necesitará ser convertido, luego se separan las fases de conversión y lanzamiento, y en ausencia de cambios la conversión se llevará a cabo solo una vez sin importar cuántas veces se lanzará el programa.

Una representación concreta de esta separación se puede encontrar en Ubuntu, luego de escribir el archivo se convierte en el comando gcc FILE.c obteniendo un archivo binario llamado FILE. Una vez obtenido este archivo, para ejecutar el programa basta con escribir ./FILE cada vez que desee utilizarlo, por lo que el programa no está representado por el código fuente sino por el FILE binario. 

Lenguajes interpretados 

Para proceder a la explicación de esta segunda familia de lenguajes nos referiremos a la propia etimología, Interpretada. El proceso de interpretación consiste en la traducción de un idioma a otro idioma, en este es la traducción del idioma elegido al idioma binario para que la PC pueda leerlo y ejecutarlo.

La diferencia con los lenguajes compilados radica en que el programa de un lenguaje compilado está representado por el archivo ya escrito en binario que, una vez lanzado, se lee directamente y se ejecuta. En los idiomas interpretados, el programa está representado por el código fuente que primero se traduce y luego se compila cada vez, con la consiguiente disminución del rendimiento. Sin embargo, esto permite una mayor simplicidad en términos de sintaxis, como se muestra al principio con python, pero sobre todo permite que el programa se ejecute en cualquier máquina con cualquier sistema operativo.

Lenguajes compilados e interpretados: los lenguajes pseudocompilados

Algunos lenguajes, como Java, se compilan en un lenguaje intermedio como, en este caso, el Bytecode que luego se interpreta en instrucciones para el procesador gracias a la Java Virtual Machine. Esto te permite tener archivos ligeros, Bytecode genera archivos pequeños, pero también te permite ejecutar el programa en cada máquina gracias a la intervención de un sistema de interpretación que no depende de la máquina.

Diferencias, ventajas y desventajas entre lenguajes de programación interpretados y compilados

Lenguajes compilados

Lenguajes interpretados

Un lenguaje compilado genera un file binario no modificable 

Un lenguaje interpretado es escrito en un lenguaje de programación definido y modificable en cada momento

Las instrucciones vienen enviadas directamente al procesador

Las instrucciones deben traducirse antes de llegar al procesador

Se requieren dos pasos separados para ejecutar el programa desde el código fuente

El código fuente se ejecuta a través de un solo comando

Dado que el programa ya se ha traducido, la ejecución es más rápida

El programa debe traducirse cada vez aumentando el tiempo de ejecución.

El programa solo se puede ejecutar en ciertas máquinas y sistemas operativos

El programa funciona en todas las máquinas y sistemas

Los errores de compilación impiden que se compile el código

Los errores de compilación son visibles sólo si se inicia el programa

Ejemplos de lenguajes compilados son C, C++, Delphi

Ejemplos de lenguajes interpretados son Python, Javascript, Perl, PHP

Actualmente existen muchos lenguajes, algunos más fáciles de aprender, otros más difíciles, algunos más rápidos y otros más lentos, pero la habilidad de un programador radica en utilizar el lenguaje adecuado para el proyecto adecuado. Cada idioma tiene su razón de existir y tiene características que lo hacen único, lo único que hay que hacer es estudiar, aprender y mejorar cada vez más

Curso de programación Aulab Hackademy

Conviértete en Desarrollador weben 6 meses

Descubre el bootcamp de programación Hackademy

Programa Completo

© 2022 Aulab. Todos los derechos reservados • P.IVA: IT07647440721 • Política de privacidad