Lenguajes de programación: Compilados vs Interpretados

Actualmente el mundo de la programación se está desenvolviendo más y más. Cada tanto hay más interés por aprender a programar en alguno de los tantos lenguajes que hay siendo predilectos lenguajes modernos como Ruby, Python, Objective C y JavaScript. También hay sitios donde se dictan clases usando lenguajes antiguos o hay quienes los aprenden por su propia cuenta, lenguajes antiguos o no tan modernos como C, C++, Java, Visual Basic, C#, Lisp y otro más. Pues bien, hay una diferencia que puede marcar uno de otro y es sí es un lenguaje interpretado o compilado.

Si bien no es correcto decidir cual es mejor, si quiero con esta publicación hacer una claridad entre estos y dar a conocer algunos detalles.

Lenguaje Interpretado

El uso de los lenguajes interpretados ha venido en crecimiento y cuyos máximos representantes son los lenguajes usados para el desarrollo web entre estos Ruby, Python, PHP (se interpreta del lado del servidor), JavaScript y otros como Perl, Smalltalk, MATLAB, Mathematica (el que usan en Wolfram Alpha). Básicamente un lenguaje interpretado es aquel en el cual sus instrucciones o más bien el código fuente, escrito por el programador en un lenguaje de alto nivel, es traducido por el interprete a un lenguaje entendible para la máquina paso a paso, instrucción por instrucción. El proceso se repite cada vez que se ejecuta el programa el código en cuestión.

Los lenguajes interpretados permiten el tipado dinámico de datos, es decir, no es necesario inicializar una variable con determinado tipo de dato sino que esta puede cambiar su tipo en condición al dato que almacene entre otras características más.

También tienen por ventaja una gran independencia de la plataforma donde se ejecutan de ahí que los tres primeros mencionados arriba sean multiplataforma comparándolos con algunos lenguajes compilados como Visual Basic, y los programas escritos en lenguajes interpretados son más livianos.

La principal desventaja de estos lenguajes es el tiempo que necesitan para ser interpretados. Al tener que ser traducido a lenguaje máquina con cada ejecución, este proceso es más lento que en los lenguajes compilados, sin embargo, algunos lenguajes poseen una máquina virtual que hace una traducción a lenguaje intermedio con lo cual el traducirlo a lenguaje de bajo nivel toma menos tiempo.

Lenguaje Compilado

Un lenguaje compilado es aquel cuyo código fuente, escrito en un lenguaje de alto nivel, es traducido por un compilador a un archivo ejecutable entendible para la máquina en determinada plataforma. Con ese archivo se puede ejecutar el programa cuantas veces sea necesario sin tener que repetir el proceso por lo que el tiempo de espera entre ejecución y ejecución es ínfimo.

Dentro de los lenguajes de programación que son compilados tenemos la familia C que incluye a C++, Objective C, C# y también otros como Fortran, Pascal, Haskell y Visual Basic.

Java es un caso particular ya que hace uso de una máquina virtual que se encarga de la traducción del código fuente por lo que hay veces es denominado compilado e interpretado. Otra ventaja de la máquina virtual que usar Java es que le permite ejecutar código Java en cualquier máquina que tenga instalada la JVM.

Principalmente vemos los lenguajes interpretados en el desarrollo de aplicaciones o sitios web que van acompañados de frameworks que facilitan en gran medida su programación. Esto se da ya que no es necesario que el usuario final posea, en el caso de los lenguajes compilados, el compilador instalado en su ordenador para ejecutar el programa o el archivo objeto que este produce. Mayoritariamente necesitan un navegador actualizado y conexión a Internet para acceder y usar de aplicaciones en línea.

A los lenguajes compilados los vemos más en software de escritorio ya que requieren de mayores recursos y de acceso a archivos determinados. También por el peso mayor que estos suelen tener en sus archivos ejecutables.

En definitiva no se puede decir que uno es mejor que el otro sin tener en cuenta los aspectos mencionados anteriormente por eso es bueno aprender uno de cada tipo, no? Así como desarrolladores cubriremos dos terrenos totalmente distintos.

Anuncios

Autor: cesc1989

Ingeniero de Sistemas que le gusta escribir y compartir sobre recursos que considera útiles, además que le gusta leer manga y ver anime.

7 comentarios en “Lenguajes de programación: Compilados vs Interpretados”

  1. ¿los programas realizados con lenguajes interpretes entonces no pueden funcionar al 100% sin conexión a Internet o te referías que debe estar conectado al servidor de origen, es decir, puede funcionar fácilmente en una intranet?

    gracias de antemano por tu aclaratoria.

    1. Hola, @carlos. Gracias por comentar.

      Me disculpo de antemano un poco porque algunos datos son confusos.

      La diferencia entre un lenguaje compilado e interpretado radica en la traducción del lenguaje de programación al lenguaje máquina. En el artículo lo menciono solo que no queda muy claro.

      Un lenguaje de programación compilado pasa por el proceso de traducción antes de ser enviado a producción. Como cuando en VB.Net das a compilar el programa para genera un instalador. Ya ese ejecutable tiene todo lo necesario para correr.

      Por su parte, un lenguaje interpretado es traducido a medida que se va ejecutando. No necesariamente es solo para programación web solo que los lenguajes interpretados son más populares en ese ámbito.

      Lenguajes como Ruby o Python sirven para hacer scripts de tareas o hasta líneas de comando y aún así no necesitan un servidor. Lo que quiero decir es que un lenguaje interpretado no necesita de un servidor web para funcionar ni tampoco de internet 100%.

      Son ciertos factores los que lo hacen más óptimos para el mundo de la internet.

      Espero haya podido ayudar a aclarar tus dudas.

  2. Saludos y por ejemplo si deseara crear un mini compilador que tenga alguna variables reservadas creado en visual basic pero ha pascal por donde comenzaria????

    1. No estoy muy seguro al respecto, lo que sí creo saber es que para hacer eso necesitas programar en un lenguaje de bajo nivel. Casi que lenguaje máquina, porque la compilación son sucesos que tienen que ver con el procesamiento de datos.

      Te debo una respuesta más puntual.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s