Los tipos de lenguajes de programación según
la forma de ejecución se clasifican en dos grandes grupos y estos son:
Lenguajes compilados y leguajes interpretados.

Los Lenguajes compilados son
aquellos cuya función es traducir un programa escrito en un
determinado lenguaje a un idioma que la computadora entienda
(lenguaje maquina con código binario). Al usar un lenguaje compilado
(como lo son los lenguajes del popular Visual Studio de microsoft),
el programa desarrollado nunca se ejecuta mientras haya errores, sino
hasta que luego de haber compilado el programa, ya no aparecen errores
en el código . Un programa escrito en un lenguaje compilado posee l
ventaja de no necesitar un programa anexo para se ejecutado una vez que
se ha compilado.
Además, como solo es necesario una traducción, la
ejecución se vuelve mas rápida. Sin embargo no es tan flexible como un
programa interpretado. Un programa escrito
en un lenguaje compilado posee la ventaja de no necesitar un programa
anexo para ser ejecutado una vez que ha sido compilado.
Por otra parte, un programa compilado tiene la ventaja de garantizar la
seguridad del código fuente. En efecto, el lenguaje interpretado, al ser
directamente un lenguaje legible, hace que cualquier persona pueda
conocer los secretos de fabricación de un programa y, de este modo,
copiar su código o incluso modificarlo. Por lo tanto, existe el riesgo
de que los derechos de autor no sean respetados. Por otro lado, ciertas
aplicaciones aseguradas necesitan confidencialidad de código para evitar
las copias ilegales (transacciones bancarias, pagos en línea,
comunicaciones seguras, etc.).

-
Los lenguajes interpretados son
aquellos que necesitan de un interprete que este almacenado en el
sistema operativo del disco, o incluido de manera permanente dentro
de la maquina con el software de programación. Estos interpretes
toman cada proposición del programa fuente y lo convierte a lenguaje
de maquina conforme vaya siendo necesario durante el proceso de los
datos. No se graba el código objeto para utilizarlo posteriormente.

Ejemplo de un programa escrito en C y como va
pasando por los diferentes procesos hasta llegar a lenguaje de maquina para
que luego sea interpretado y corrido por el microprocesador.
Lenguaje |
Principal área de aplicación |
Compilado/Interpretado
|
ADA |
Tiempo ReAL |
Lenguaje compilado |
BASIC |
Programación para fines educativos
|
Lenguaje interpretado |
C |
Programación de sistema
|
Lenguaje compilado |
C++ |
Programación de sistema orientado a
objeto
|
Lenguaje compilado |
Cobol |
Administración |
Lenguaje compilado |
Fortran |
Cálculo
|
Lenguaje compilado |
Java |
Programación orientada a Internet
|
Lenguaje intermediario |
MATLAB |
Cálculos matemáticos
|
Lenguaje interpretado |
LISP |
Inteligencia artificial
|
Lenguaje intermediario |
Pascal |
Educación
|
Lenguaje compilado |
PHP |
Desarrollo de sitios Web dinámicos
|
Lenguaje interpretado |
PERL |
Procesamiento de cadenas de caracteres
|
Lenguaje interpretado |
La ventaja principal
para el proceso de compilación es la velocidad. Ser capaz de
compilar cualquier idioma de destino a un código de máquina
que el procesador real de la máquina pueda entender elimina
cualquier código intermediario, traducción o filtro.
Eliminando todo eso (básicamente todo lo que hace un
intérprete) ganamos velocidad computacional. Podemos hacer
deliberadamente cálculos útiles sin ningún paso adicional,
aumentando así el número de ellos posibles en un intervalo
de tiempo determinado.
Sin embargo, la desventaja es que
cuando compila un programa es para ejecutar en un procesador
en particular, está creando código de objeto que sólo se
ejecutará en ese procesador. Si desea que un programa se
ejecute en otra máquina, digamos un procesador ARM en lugar
de un procesador basado en Intel 8086, tendrá que
re-compilar para ese procesador y, desafortunadamente, a
veces la recompilación puede ser un proceso arduo si su
nuevo procesador tiene Limitaciones o idiosincrasias no
presentes en la primera.
El mayor beneficio de los
lenguajes interpretados es la flexibilidad. No sólo puede
ejecutar un programa interpretado en cualquier procesador o
plataforma para la que se ha compilado ese intérprete, pero
la misma manera en que se escribe un intérprete puede
ofrecer flexibilidad adicional. Debido a que en algunos
casos, en mi opinión, los intérpretes son más fáciles de
entender y codificar que los compiladores (creo que esto se
debe al hecho de que la acción a realizar es tan cercana al
programa de entrada y de no del hardware a donde se va a
correr) a menudo es más fácil re- Implementar intérpretes,
agregar funciones adicionales, jugar con implementaciones de
cosas como recolectores de basura, y de otra manera extender
el lenguaje. Este es un beneficio secundario de los
intérpretes junto con el mayor beneficio de “escribir una
vez, correr en cualquier lugar”.
|