Está en la página 1de 2

Clasificacin de lenguajes de programacin

Un lenguaje de programacin es un lenguaje inventado para controlar una mquina,


(normalmente, un ordenador). Hay muchsimos, de toda clase de tipos y caractersticas,
inventados para facilitar el abordaje de distintos problemas, el mantenimiento del software,
su reutilizacin, mejorar la productividad, etc.

Los lenguajes de programacin se pueden clasificar segn varios criterios: Nivel de


abstraccin, propsito, evolucin histrica, manera de ejecutarse, manera de abordar la
tarea a realizar, paradigma de programacin, lugar de ejecucin, concurrencia,
interactividad, etc.

Hay que tener en cuenta tambin, que en la prctica, la mayora de lenguajes no pueden
ser puramente clasificados en una categora, pues surgen incorporando ideas de otros
lenguajes y de otras filosofas de programacin, pero no importa al establecer las
clasificaciones, pues el autntico objetivo de las mismas es mostrar los rangos, las
posibilidades y tipos de lenguajes que hay.

1. Nivel de abstraccin.
Segn el nivel de abstraccin, o sea, segn el grado de cercana a la mquina:

Lenguajes de bajo nivel: La programacin se realiza teniendo muy en cuenta las


caractersticas del procesador. Ejemplo: Lenguajes ensamblador.
Lenguajes de nivel medio: Permiten un mayor grado de abstraccin pero al mismo
tiempo mantienen algunas cualidades de los lenguajes de bajo nivel. Ejemplo: C
puede realizar operaciones lgicas y de desplazamiento con bits, tratar todos los tipos
de datos como lo que son en realidad a bajo nivel (nmeros), etc.
Lenguajes de alto nivel: Ms parecidos al lenguaje humano. Manejan conceptos,
tipos de datos, etc., de una manera cercana al pensamiento humano ignorando
(abstrayndose) del funcionamiento de la mquina. Ejemplos: Java, Ruby.

Hay quien slo considera lenguajes de bajo nivel y de alto nivel, (en ese caso, C es
considerado de alto nivel).

2. Propsito.
Segn el propsito, es decir, el tipo de problemas a tratar con ellos:

Lenguajes de propsito general: Aptos para todo tipo de tareas: Ejemplo: C.


Lenguajes de propsito especfico: Hechos para un objetivo muy concreto.
Ejemplo: Csound (para crear ficheros de audio).
Lenguajes de programacin de sistemas: Diseados para realizar sistemas
operativos o drivers. Ejemplo: C.
Lenguajes de script: Para realizar tareas varias de control y auxiliares.
Antiguamente eran los llamados lenguajes de procesamiento por lotes (batch) o JCL
(Job Control Languages). Se subdividen en varias clases (de shell, de GUI, de
programacin Web, etc.). Ejemplos: bash (shell), mIRC script, JavaScript
(programacin Web).

3. Evolucin histrica.
Con el paso del tiempo, se va incrementando el nivel de abstraccin, pero en la prctica, los
de una generacin no terminan de sustituir a los de la anterior:

Lenguajes de primera generacin (1GL): Cdigo mquina.


Lenguajes de segunda generacin (2GL): Lenguajes ensamblador.
Lenguajes de tercera generacin (3GL): La mayora de los lenguajes modernos,
diseados para facilitar la programacin a los humanos. Ejemplos: C, Java.
Lenguajes de cuarta generacin (4GL): Diseados con un propsito concreto, o
sea, para abordar un tipo concreto de problemas. Ejemplos: NATURAL, Mathematica.
Lenguajes de quinta generacin (5GL): La intencin es que el programador
establezca el qu problema ha de ser resuelto y las condiciones a reunir, y la mquina
lo resuelve. Se usan en inteligencia artificial. Ejemplo: Prolog.

1
4. Manera de ejecutarse.
Segn la manera de ejecutarse:

Lenguajes compilados: Un programa traductor traduce el cdigo del programa


(cdigo fuente) en cdigo mquina (cdigo objeto). Otro programa, el enlazador,
unir los ficheros de cdigo objeto del programa principal con los de las libreras para
producir el programa ejecutable. Ejemplo: C.
Lenguajes interpretados: Un programa (intrprete), ejecuta las instrucciones del
programa de manera directa. Ejemplo: Lisp.

Tambin los hay mixtos, como Java, que primero pasan por una fase de compilacin en la
que el cdigo 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 mquina virtual Java.

5. Manera de abordar la tarea a realizar.


Segn la manera de abordar la tarea a realizar, pueden ser:

Lenguajes imperativos: Indican cmo hay que hacer la tarea, es decir, expresan los
pasos a realizar. Ejemplo: C.
Lenguajes declarativos: Indican qu hay que hacer. Ejemplos: Lisp, Prolog. Otros
ejemplos de lenguajes declarativos, pero que no son lenguajes de programacin, son
HTML (para describir pginas Web) o SQL (para consultar bases de datos).

6. Paradigma de programacin.

El paradigma de programacin es el estilo de programacin empleado. Algunos lenguajes


soportan varios paradigmas, y otros slo uno. Se puede decir que histricamente han ido
apareciendo para facilitar la tarea de programar segn el tipo de problema a abordar, o
para facilitar el mantenimiento del software, o por otra cuestin similar, por lo que todos
corresponden a lenguajes de alto nivel (o nivel medio), estando los lenguajes
ensambladores atados a la arquitectura de su procesador correspondiente. Los principales
son:

Lenguajes de programacin procedural: Divide el problema en partes ms


pequeas, que sern realizadas por subprogramas (subrutinas, funciones,
procedimientos), que se llaman unas a otras para ser ejecutadas. Ejemplos: C, Pascal.
Lenguajes de programacin orientada 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. Ejemplos: C++, Java.
Lenguajes de programacin funcional: La tarea se realiza evaluando funciones,
(como en Matemticas), de manera recursiva. Ejemplo: Lisp.
Lenguajes de programacin lgica: La tarea a realizar se expresa empleando
lgica formal matemtica. Expresa qu computar. Ejemplo: Prolog.

7. Lugar de ejecucin.
En sistemas distribuidos, segn dnde se ejecute:

Lenguajes de servidor: Se ejecutan en el servidor. Ejemplo: PHP es el ms utilizado


en servidores Web.
Lenguajes de cliente: Se ejecutan en el cliente. Ejemplo: JavaScript en
navegadores Web.

También podría gustarte