Lenguaje de programación
Un
lenguaje de programación" es un lenguaje diseñado para describir el
conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un
lenguaje de programación es un modo práctico para que los seres humanos puedan
dar instrucciones a un equipo.
Por
otro lado, el término "lenguaje natural" define un medio de
comunicación compartido por un grupo de personas (por ejemplo: inglés o
francés).
Los
lenguajes que los equipos usan para comunicarse entre ellos no tienen nada que
ver con los lenguajes de programación; se los conoce como protocolos de
comunicación. Se trata de dos conceptos
totalmente diferentes. Un lenguaje de programación es muy estricto:
A
CADA instrucción le corresponde UNA acción de procesador.
El
lenguaje utilizado por el procesador se denomina lenguaje máquina. Se trata de
datos tal como llegan al procesador, que consisten en una serie de 0 y 1 ( datos binarios).
El
lenguaje máquina, por lo tanto, no es comprensible para los seres humanos,
razón por la cual se han desarrollado lenguajes intermediarios comprensibles
para el hombre. El código escrito en este tipo de lenguaje se transforma en
código máquina para que el procesador pueda procesarlo.
El
ensamblador fue el primer lenguaje de programación utilizado. Es muy similar al
lenguaje máquina, pero los desarrolladores pueden comprenderlo. No obstante,
este lenguaje se parece tanto al lenguaje máquina que depende estrictamente del
tipo de procesador utilizado (cada tipo de procesador puede tener su propio
lenguaje máquina). Así, un programa desarrollado para un equipo no puede ser portado
a otro tipo de equipo. El término "portabilidad" describe la
capacidad de usar un programa de software en diferentes tipos de equipos. Para
poder utilizar un programa de software escrito en un código ensamblador en otro
tipo de equipo, ¡a veces será necesario volver a escribir todo el programa!
Por
lo tanto, un lenguaje de programación tiene varias ventajas:
- es mucho más fácil de comprender que un lenguaje máquina:
- permite mayor portabilidad, es decir que puede adaptarse fácilmente para ejecutarse en diferentes tipos de equipos.
Los
lenguajes de programación generalmente se dividen en dos grupos principales en
base al procesamiento de sus comandos:
- lenguajes imperativos;
- lenguajes funcionales.
Un
lenguaje imperativo programa mediante una serie de comandos, agrupados en
bloques y compuestos de órdenes condicionales que permiten al programa retornar
a un bloque de comandos si se cumple la condición. Estos fueron los primeros
lenguajes de programación en uso y aún hoy muchos lenguajes modernos usan este
principio.
No
obstante, los lenguajes imperativos estructurados carecen de flexibilidad
debido a la secuencialidad de las instrucciones.
Lenguaje de programación funcional
Un
lenguaje de programación funcional(a menudo llamado lenguaje
procedimental) es un lenguaje que crea programas mediante funciones,
devuelve un nuevo estado de resultado y recibe como entrada el resultado de
otras funciones. Cuando una función se invoca a sí misma, hablamos de
recursividad.
Interpretación y compilación
Los lenguajes de programación
pueden, en líneas generales, dividirse en dos categorías:
- lenguajes interpretados
- lenguajes compilados
Un
lenguaje de programación es, por definición, diferente al lenguaje máquina. Por
lo tanto, debe traducirse para que el procesador pueda comprenderlo. Un
programa escrito en un lenguaje interpretado requiere de un programa auxiliar
(el intérprete), que traduce los comandos de los programas según sea necesario.
Lenguaje compilado
Un
programa escrito en un lenguaje "compilado" se traduce a
través de un programa anexo llamado compilador que, a su vez, crea un
nuevo archivo independiente que no necesita ningún otro programa para
ejecutarse a sí mismo. Este archivo se llama ejecutable.
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. Además, como
sólo es necesaria una traducción, la ejecución se vuelve más rápida.
Sin embargo, no es tan flexible como un programa escrito en lenguaje interpretado, ya que cada modificación del archivo fuente (el archivo comprensible para los seres humanos: el archivo a compilar) requiere de la compilación del programa para aplicar los cambios.
Sin embargo, no es tan flexible como un programa escrito en lenguaje interpretado, ya que cada modificación del archivo fuente (el archivo comprensible para los seres humanos: el archivo a compilar) requiere de la compilación del programa para aplicar los cambios.
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 ese 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...).
Lenguajes intermediarios
Algunos
lenguajes pertenecen a ambas categorías (LISP, Java, Python...) dado que el
programa escrito en estos lenguajes puede, en ciertos casos, sufrir una fase de
compilación intermediaria, en un archivo escrito en un lenguaje ininteligible
(por lo tanto diferente al archivo fuente ) y no ejecutable (requeriría un
interprete). Los applets Java, pequeños programas que a menudo se cargan en
páginas web, son archivos compilados que sólo pueden ejecutarse dentro de un
navegador web (son archivos con la extensión .class).
Algunos ejemplos de lenguajes ampliamente usados
A
continuación, encontrará una breve lista de los lenguajes de programación
actuales:
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
|
Cálculos matemáticos
|
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
|
Inteligencia artificial
|
Inteligencia artificial
|
Lenguaje interpretado
|
Perl
|
Procesamiento de cadenas de
caracteres
|
Lenguaje interpretado
|