Lenguajes 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
|
Link Glosarios:
https://docs.google.com/document/d/1HvZhr1VAvvkDI81Z017A90xYfBC8yVxWIS1tlVE7HDE/edit?usp=sharing
https://docs.google.com/document/d/1_utO6DXJJOeLOYcHSz3KImxBGOMUNR9DpKlC29pqLxY/edit?usp=sharing
https://docs.google.com/document/d/1_utO6DXJJOeLOYcHSz3KImxBGOMUNR9DpKlC29pqLxY/edit?usp=sharing