El documento clasifica los lenguajes de programación en 12 categorías: 1) Nivel de abstracción, 2) Propósito, 3) Evolución histórica, 4) Manera de ejecutarse, 5) Manera de abordar la tarea, 6) Paradigma de programación, 7) Lugar de ejecución, 8) Concurrencia, 9) Interactividad, 10) Realización visual, 11) Determinismo y 12) Productividad. Proporciona ejemplos para cada categoría.
1. CLASIFICACIÓN DE LENGUAJES DE
PROGRAMACIÓN
Un lenguaje de programación es un
lenguaje inventado para controlar una
máquina
2. 1. Nivel de
abstracción
Según el nivel de abstracción, o sea, según el
grado de cercanía a la máquina
Lenguajes de Lenguajes de Lenguajes de
bajo nivel nivel medio alto nivel
Permiten un mayor grado Manejan conceptos,
La programación se de abstracción pero al tipos de datos de una
realiza teniendo muy en mismo tiempo mantienen manera cercana al
cuenta las características algunas cualidades de los pensamiento humano
del procesador. Ejemplo: lenguajes de bajo nivel. ignorando
Lenguajes ensamblador. Ejemplo: C puede realizar (abstrayéndose) del
operaciones lógicas y de
funcionamiento de la
desplazamiento con bits,
tratar todos los tipos de máquina. Ejemplos:
datos como lo que son en Java, Ruby.
realidad a bajo nivel
(números)
3. LENGUAJES DE PROPÓSITO GENERAL: Aptos
para todo tipo de tareas: Ejemplo: C.
LENGUAJES DE PROPÓSITO ESPECÍFICO:
Hechos para un objetivo muy concreto.
Ejemplo: Csound (para crear ficheros de
audio).
Según el propósito, es
2. Propósito. decir, el tipo de
problemas a tratar con
ellos: LENGUAJES DE PROGRAMACIÓN DE
SISTEMAS: Diseñados para realizar sistemas
operativos o drivers. Ejemplo: C.
LENGUAJES DE SCRIPT: Para realizar tareas
varias de control y auxiliares. Se subdividen
en varias clases (de shell, de GUI, de
programación web, etc.). Ejemplos: bash
(shell), mIRC script, JavaScript (programación
web).
4. 3. Evolución histórica
Con el paso del tiempo, se va incrementando el nivel de abstracción,
pero en la práctica, los de una generación no terminan de sustituir a
los de la anterior
Lenguajes de Lenguajes de tercera
primera Lenguajes de
segunda generación (3GL): La
generación mayoría de los lenguajes
(1GL): Código generación (2GL): modernos, diseñados para
máquina. Lenguajes facilitar la programación a los
ensamblador. humanos. Ejemplos: C, Java.
Lenguajes de cuarta Lenguajes de quinta
generación (4GL): generación (5GL): La intención
Diseñados con un propósito es que el programador establezca el
concreto, o sea, para qué problema ha de ser resuelto y las
abordar un tipo concreto de condiciones a reunir, y la máquina lo
problemas. Ejemplos: resuelve. Se usan en inteligencia
NATURAL, Mathematica. artificial. Ejemplo: Prolog.
5. 4. Manera de
ejecutarse.
Según la manera de ejecutarse:
Lenguajes compilados: Un
programa traductor traduce el
Lenguajes
código del programa (código
fuente) en código máquina interpretados: Un
(código objeto). Otro programa, programa (intérprete),
el enlazador, unirá los ficheros de ejecuta las instrucciones del
código objeto del programa programa de manera directa.
principal con los de las librerías Ejemplo: Lisp.
para producir el programa
ejecutable. Ejemplo: C.
También los hay mixtos, como Java, que primero pasan
por una fase de compilación en la que el código fuente se
transforma en “bytecode”, y este “bytecode” puede ser
ejecutado luego (interpretado) en ordenadores con
distintas arquitecturas (procesadores) que tengan todos
instalados la misma “máquina virtual” Java.
6. Lenguajes imperativos: Indican cómo
hay que hacer la tarea, es decir, expresan los
pasos a realizar. Ejemplo: C.
5. Manera de Según la manera de
abordar la tarea a abordar la tarea a
realizar. realizar, pueden ser:
Lenguajes declarativos: Indican qué hay
que hacer. Ejemplos: Lisp, Prolog. Otros ejemplos
de lenguajes declarativos, pero que no son
lenguajes de programación, son HTML (para
describir páginas web) o SQL (para consultar
bases de datos).
7. 6. Paradigma de
programación.
El paradigma de programación es el estilo de programación empleado. Algunos
lenguajes soportan varios paradigmas, y otros sólo uno. Los principales son:
Lenguajes de Lenguajes de
programación Lenguajes de
programación Lenguajes de programación
procedural: Divide orientada a
programación lógica: La tarea a
el problema en partes objetos: Crean un
más pequeñas, que sistema de clases y funcional: La tarea realizar se expresa
se realiza evaluando empleando lógica
serán realizadas por objetos siguiendo el
funciones, (como en formal
subprogramas ejemplo del mundo
Matemáticas), de matemática.
(subrutinas, funciones, real, en el que unos
manera recursiva. Expresa qué
procedimientos), que se objetos realizan
Ejemplo: Lisp. computar.
llaman unas a otras acciones y se
Ejemplo: Prolog.
para ser ejecutadas. comunican con otros
Ejemplos: C, Pascal. objetos. Ejemplos:
C++, Java.
Hay muchos paradigmas de programación: Programación genérica, programación
reflexiva, programación orientada a procesos, etc.
8. Lenguajes de servidor: Se
ejecutan en el servidor. Ejemplo:
PHP es el más utilizado en
servidores web.
7. Lugar de En sistemas
ejecución. distribuidos, según
dónde se ejecute
Lenguajes de cliente: Se
ejecutan en el cliente.
Ejemplo: JavaScript en
navegadores web.
9. Lenguajes concurrentes.
Según admitan o no Ejemplo: Ada.
concurrencia de procesos,
esto es, la ejecución
8. Concurrencia.
simultánea de varios
procesos lanzados por el
programa
Lenguajes no concurrentes.
Ejemplo: C.
10. 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. Ejemplo:
VisualBasic, lenguajes de programación
Según la declarativos.
interactividad del
9. Interactividad programa con el
usuario u otros
programas:
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
(actualizaciones de bases de datos, colas
de impresión de documentos, etc.).
Ejemplos: Lenguajes de programación
imperativos.
11. 10. Realización visual.
Según la realización visual o no del
programa:
Lenguajes de
programación visual: El
programa se realiza moviendo Lenguajes de
bloques de construcción de programación
programas (objetos visuales)
en un interfaz adecuado para
textual: El código del
ello. No confundir con programa se realiza
entornos de programación escribiéndolo.
visual, como Microsoft Visual Ejemplos: C, Java, Lisp.
Studio y sus lenguajes de
programación textuales (como
Visual C#). Ejemplo:
Mindscript.
12. 11. Determinismo.
Según se pueda predecir o no el siguiente
estado del programa a partir del estado
actual:
Lenguajes
probabilísticos o no
Lenguajes deterministas: Sirven
deterministas. para explorar grandes
Ejemplos: Todos los espacios de búsqueda,
anteriores. (como gramáticas), y en la
investigación teórica de
hipercomputación. Ejemplo:
mutt (generador de texto
aleatorio).
13. 12. Productividad.
Según se caractericen por tener virtudes útiles o productivas, u
oscuras y enrevesadas:
Lenguajes útiles o
Lenguajes esotéricos o
productivos: Sus virtudes
en cuanto a eficiencia, exóticos: Inventados con la
sencillez, claridad, intención de ser los más raros,
productividad, etc., motiva que oscuros, difíciles, simples y/o
sean utilizados en empresas, retorcidos de los lenguajes, para
administraciones públicas y/o diversión y entretenimiento de
en la enseñanza. Ejemplos: frikis programadores. A veces
Cualquier lenguaje de uso exploran nuevas ideas en
habitual (C, Java, C++, Lisp, programación. Ejemplo:
Python, Ruby Brainfuck.