Está en la página 1de 4

LENGUAJES COMPILADOS Y LENGUAJES INTERPRETADOS

Lenguajes compilados: Un lenguaje compilado es una expresin un tanto imprecisa para referirse a un lenguaje de programacin que se implementa mediante un compilador. Esto implica que, una vez escrito el programa, ste se traduce a partir de su cdigo fuente por medio de un compilador en un archivo ejecutable para una determinada plataforma (por ejemplo Solaris para Sparc, Windows NT para Intel, etc.). Los lenguajes compilados son lenguajes de alto nivel en los que las instrucciones se traducen del lenguaje utilizado a cdigo mquina para una ejecucin rpida. Es tericamente posible escribir un compilador o un intrprete para cualquier lenguaje, sin embargo en algunos lenguajes una u otra implementacin es ms sencilla porque se disearon con una implementacin en particular en mente.

C++

Pascal Delphi, Kylix, Lazarus

El lenguaje compilado maestro por excelencia, excepto en Visual Studio.Net. Solo menciono que es el lenguaje en el cual se disearon la gran mayora, por no decir todos, los sistemas operativos modernos. Alguno se peguntar, por qu separo C de C++. Pues bien, sucede que C++ no es TAN compilado como C, especialmente porque casi siempre est usado en sistemas operativos grficos, solo en sus versiones de consola es compilado en cdigo mquina real, pero bsicamente y en esencia se compila a cdigo mquina. Bsicamente, en todos sus sabores y colores, es compilado a cdigo nativo mquina Son altamente compilados, aunque no totalmente, pues estn orientados a sistemas operativos grficos, as que en menor grado son interpretados, pero son considerados lenguajes compilados, pues el cdigo generado es nativo de la plataforma objetivo.

Lenguaje interpretado: Un lenguaje interpretado es un lenguaje de programacin que est diseado para ser ejecutado por medio de un intrprete, en contraste con los lenguajes compilados. Tericamente, cualquier lenguaje puede ser compilado o ser interpretado, as que esta designacin es aplicada puramente debido a la prctica de implementacin comn y no a alguna caracterstica subyacente de un lenguaje en particular. Sin embargo, hay lenguajes que son diseados para ser intrnsecamente interpretativos, por lo tanto un compilador causar una carencia de la eficacia. Muchos autores rechazan la clasificacin de lenguajes de programacin entre interpretados y compilados, considerando que el modo de ejecucin (por medio de intrprete o de compilador) del programa escrito en el lenguaje es independiente del propio lenguaje. A ciertos lenguajes interpretados tambin se les conoce como lenguajes de script. Muchos lenguajes han sido implementados usando tanto compiladores como intrpretes, incluyendo Lisp, Pascal, C, BASIC, y Python. Mientras que Java es traducido a una forma que se destina a ser interpretada, la compilacin justo a tiempo es frecuentemente usada para generar el cdigo de mquina. Los lenguajes de Microsoft .NET compilan a una forma intermedia (CIL) la cual es entonces a menudo compilada en cdigo de mquina nativo; sin embargo hay una mquina virtual capaz de interpretar el CIL. Muchas implementaciones Lisp pueden mezclar libremente cdigo interpretado y compilado. Estas implementaciones tambin usan un compilador que puede traducir arbitrariamente cdigo fuente en tiempo de ejecucin (runtime) a cdigo de mquina.

El lenguaje interpretado por excelencia y hasta donde tengo conocimiento, el ms antiguo, aunque no fue interpretado en sus principios, luego se convirti en el hito de los lenguajes BASIC interpretados. Todos sus derivados son en mayor o menor grado interpretados, aunque alguna vez, Borland lanz un BASIC que se compilaba, en teora (nunca lo comprob), a cdigo mquina. JavaScript, Aunque ms interprestados que este par, creo que no existen, VBScript los menciono como para informacin general. Estos lenguajes diseados para web, son lenguajes interpretados por excelencia, aunque se compilan a cdigo Perl, PHP intermedio en tiempo de ejecucin, cosa que acelera su ejecucin. Existen tambin herramientas que generan un cdigo cercano a la mquina para estos dos lenguajes y

cachean contenido, pero a la larga, siguen siendo interpretados. Lenguajes interpretados para los OS's, los cuales se ejecutan Batch, Shell bastante lento, pero ya que por lo general son tan cortos o realizan tareas tan bsicas no es perceptible el rendimiento. Este lenguaje ha sido bastante diversificado en la actualidad, incluso, varias de las grandes aplicaciones comerciales Java modernas estn diseadas en este lenguaje, por ejemplo, Zend Studio y Oracle JDeveloper, solo por mencionar dos grandes. El Boom de los lenguajes por imposicin Microsoft. NINGN programa generado con los lenguajes de esta suite o como se le quiera denominar a este paquete, genera cdigo mquina y de hecho est bastante lejos de ser cdigo mquina, o incluso, referencias a libreras como lo haran otros lenguajes como Delphi, C++, o similares. No estoy en contra de esta nueva metodologa para la interpretacin de software, pero s hay una gran desventaja, es la MUY lenta ejecucin de los programas generados y en cortas palabras explico el porqu (podra hacer todo un compendio): El Visual Studio lenguaje generado es un cdigo intermedio el cual a su vez .NET se compila en tiempo de ejecucin, el cual es interpretado por el Framework de .Net, el cual ejecuta las instrucciones haciendo los llamados respectivos a las libreras del sistema operativo. En mi concepto personal, es demasiada vuelta para ejecutar una simple instruccin con llamado a una API del Sistema Operativo. Aunque la teora dice que el programa luego de compilarse en tiempo de ejecucin, permanece as, por lo tanto es un aumento en la velocidad de ejecucin, mejora que he tenido la oportunidad de experimentar, porque cdigo interpretado que ejecute cdigo el interpretado, me temo no es muy veloz que digamos. Ventajas de los lenguajes interpretados

Portabilidad: Esta es la principal ventaja que presenta este tipo de lenguajes, porque puede ser compilado en y para cualquier plataforma o sistema operativo. Compatibilidad: al ser interpretado por el sistema operativo, es la mquina virtual o framework el que se encarga de que las intrucciones sean ejecutadas por el software y el hardware.

Desventajas de los lenguajes interpretados

Velocidad: Es el aspecto ms notable y el cual se debe evaluar a fondo al crear software con este tipo lenguajes, pues se debe equilibrar la portabilidad con la velocidad que se est sacrificando. A menos que las prestaciones de los equipos informticos sean bastante altas, en el caso cual, se podra despreciar este aspecto. Portabilidad: es una desventaja tambin. El problema radica en que en la actualidad, asi todos los lenguajes compilados, existen para todas las plataformas, no as las mquinas virtuales o frameworks, aunque en el caso de Java, se ha hecho un excelente trabajo en cuanto a eso y no me puedo quejar, existe para casi todas las plataformas, por no decir todas, actuales. El .NET framework, lamento decir que en la actualidad, se encuentra ciento por ciento probado solo en Windows, aunque existen proyectos que prometen tal portabilidad, aunque todava no son un hecho.