1. LENGUAJES DE PROGRAMACIÓN
¿Qué es un lenguaje de programación?
Un lenguaje de programación es un idioma artificial diseñado por el ser humano para
expresar procesos que pueden ser llevados a cabo por máquinas como los ordenadores y
poder comunicarse con ellos. Pueden usarse para crear programas que controlen el
comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o
como modo de comunicación humana. Este tipo de lenguaje de programación es diferente al
lenguaje de la maquina.
¿Cómo están formados?
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su
estructura y el significado de sus elementos y expresiones.
¿Cómo se dividen?
1. En líneas generales
Se pueden dividir, en líneas generales, en tres grupos: lenguajes interpretados, lenguajes
compilados y lenguajes intermediarios.
Lenguaje interpretado: 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.
Lenguaje intermediario: Algunos lenguajes pertenecen a ambas categorías 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.
2. Según el procesamiento de sus comandos
Generalmente los lenguajes de programación están divididos en dos grupos en baso al
procesamiento de sus comandos: Lenguajes imperativos y lenguajes funcionales.
Lenguaje imperativo: es un 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
2. lenguajes de programación en uso y aún hoy muchos lenguajes modernos usan este
principio.
Lenguaje funcional o 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.
3. Tipo de lenguajes de programación
Lenguaje de máquina: es el lenguaje de programación que entiende directamente la
computadora o máquina. Este lenguaje de programación utiliza el alfabeto binario, es
decir, el 0 y el 1.
Lenguajes de programación de bajo nivel: Son mucho más fáciles de utilizar que el
lenguaje máquina, pero dependen mucho del ordenador. El lenguaje ensamblador fue
el primer lenguaje de programación que trato de sustituir el lenguaje máquina por otro
mucho más parecido al de los seres humanos.
En este lenguaje se conoce como programa fuente a un programa de instrucciones escrito en
lenguaje ensamblador por el programador, y programa objeto es la traducción a lenguaje
máquina del programa fuente.
Los lenguajes de este tipo pueden crear programas muy rápidos, pero son difíciles de
aprender, son específicos de cada procesador, si nos llevamos el programa a otro computador
será preciso reescribir el programa desde el comienzo.
Lenguajes de programación de nivel medio: Permiten un mayor grado de
abstracción pero al mismo tiempo mantienen algunas cualidades de los lenguajes de
bajo nivel.
Lenguajes de programación de alto nivel: Este tipo de lenguajes de programación
son independientes de la máquina, lo podemos usar en cualquier computador con muy
pocas modificaciones o sin ellas, son muy similares al lenguaje humano, pero precisan
de un programa interprete o compilador que traduzca este lenguaje de programación
de alto nivel a uno de bajo nivel como el lenguaje de máquina que la computadora
pueda entender.
Los lenguajes de programación de alto nivel: Son más fáciles de aprender porque
se usan palabras o comandos del lenguaje natural, como por ejemplo del inglés. Este
es el caso del BASIC, el lenguaje de programación más conocido.
4. Según la manera de abordar la tarea a realizar:
Lenguajes de programación imperativos: Indican cómo hay que hacer la tarea, es
decir, expresan los pasos a realizar.
Lenguajes de programación declarativos: Indican qué hay que hacer. Ejemplos:
Lisp, Prolog. Otros ejemplos de lenguajes declarativos, pero que no son lenguajes de
programación, son HTML o SQL.
5. Según la paradigma de programación:
3. Lenguajes de programación orientados a objetos: Crean un sistema de clases
y objetos siguiendo el ejemplo del mundo real, en el que unos objetos realizan
acciones y se comunican con otros objetos.
Lenguajes de programación procedural: Divide el problema en partes más
pequeñas, que serán realizadas por subprogramas que se llaman unas a otras
para ser ejecutadas.
Lenguajes de programación funcional: La tarea se realiza evaluando funciones,
de manera recursiva.
Lenguajes de programación lógica: La tarea a realizar se expresa empleando
lógica formal matemática. Expresa qué computar.
6. Según la evolución histórica:
Otra clasificación de los lenguajes de programación de alto nivel, es teniendo en cuenta el
desarrollo de las computadoras según sus diferentes generaciones:
Lenguajes de programación de primera generación: el lenguaje máquina y el
ensamblador.
Lenguajes de programación de segunda generación: los primeros lenguajes de
programación de alto nivel imperativo (FROTRAN, COBOL).
Lenguajes de programación de tercera generación: son lenguajes de
programación de alto nivel imperativo pero mucho más utilizados y vigentes en la
actualidad (ALGOL 8, PL/I, PASCAL, MODULA).
Lenguajes de programación de cuarta generación: usados en aplicaciones de
gestión y manejo de bases de dados (NATURAL, SQL).
Lenguajes de programación de quinta generación: creados para la inteligencia
artificial y para el procesamiento de lenguajes naturales (LISP, PROLOG).
7. Según su propósito:
Lenguajes de propósito general: Aptos para todo tipo de tareas.
Lenguajes de propósito específico: Hechos para un objetivo muy concreto.
Lenguajes de programación de sistemas: Diseñados para realizar sistemas
operativos o drivers.
Lenguajes de script: Para realizar tareas varias de control y auxiliares. Antiguamente
eran los llamados lenguajes de procesamiento por lotes o JCL.
4. 8. Según el lugar de ejecución:
Lenguajes de servidor: Se ejecutan en el servidor.
Lenguajes de cliente: Se ejecutan en el cliente.
9. Según la concurrencia: Podemos encontrar lenguajes concurrentes y no concurrentes
10. Según la interactividad:
Lenguajes orientados a sucesos: El flujo del programa es controlado por la
interacción con el usuario o por mensajes de otros programas/sistema operativo, como
editores de texto, interfaces gráficos de usuario (GUI) o kernels.
Lenguajes no orientados a sucesos: El flujo del programa no depende de sucesos
exteriores, sino que se conoce de antemano, siendo los procesos batch el ejemplo más
claro.
11. Según la realización visual:
Lenguajes de programación visual: El programa se realiza moviendo bloques de
construcción de programas en un interfaz adecuado para ello. No confundir con
entornos de programación visual.
Lenguajes de programación textual: El código del programa se realiza escribiéndolo.
12. Según el determinismo:
Lenguajes deterministas.
Lenguajes probabilísticos o no deterministas: Sirven para explorar grandes espacios de
búsqueda, y en la investigación teórica de hipercomputación.
13. Según la productividad:
Lenguajes útiles o productivos: Sus virtudes en cuanto a eficiencia, sencillez, claridad,
productividad, etc., motiva que sean utilizados en empresas, administraciones públicas
y/o en la enseñanza.
Lenguajes esotéricos o exóticos: Inventados con la intención de ser los más raros,
oscuros, difíciles, simples y/o retorcidos de los lenguajes, para diversión y entretenimiento
de las personas dedicadas a esto.