Sunteți pe pagina 1din 13

CLASIFICACIN DE LENGUAJES DE PROGRAMACIN

1. Nivel de abstraccin

Segn el nivel de abstraccin, o sea, segn el grado de cercana a la mquina

Lenguajes de bajo nivel

Lenguajes de nivel medio

Lenguajes de alto nivel

La programacin se realiza teniendo muy en cuenta las caractersticas del procesador. Ejemplo: Lenguajes ensamblador.

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)

Manejan conceptos, tipos de datos de una manera cercana al pensamiento humano ignorando (abstrayndose) del funcionamiento de la mquina. Ejemplos: Java, Ruby.

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). Segn el propsito, es decir, el tipo de problemas a tratar con ellos:

2. Propsito.

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. 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.

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.

Lenguajes imperativos: Indican cmo


hay que hacer la tarea, es decir, expresan los pasos a realizar. Ejemplo: C.

5. Manera de abordar la tarea a realizar.

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

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. 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 programaci n lgica: La


tarea a realizar se expresa empleando lgica formal matemtica. Expresa qu computar. Ejemplo: Prolog.

Hay muchos paradigmas de programacin: Programacin genrica, programacin reflexiva, programacin orientada a procesos, etc.

Lenguajes de servidor: Se ejecutan en el servidor. Ejemplo: PHP es el ms utilizado en servidores web. 7. Lugar de ejecucin. En sistemas distribuidos, segn dnde se ejecute Lenguajes de cliente: Se ejecutan en el cliente. Ejemplo: JavaScript en navegadores web.

8. Concurrencia.

Segn admitan o no concurrencia de procesos, esto es, la ejecucin simultnea de varios procesos lanzados por el programa

Lenguajes concurrentes. Ejemplo: Ada.

Lenguajes no concurrentes. Ejemplo: C.

Lenguajes orientados a sucesos:


El flujo del programa es controlado por la interaccin con el usuario o por mensajes de otros programas/sistema operativo, como editores de texto, interfaces grficos de usuario (GUI) o kernels. Ejemplo: VisualBasic, lenguajes de programacin declarativos.

9. Interactividad

Segn la interactividad del 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 ms claro (actualizaciones de bases de datos, colas de impresin de documentos, etc.). Ejemplos: Lenguajes de programacin imperativos.

10. Realizacin visual.


Segn la realizacin visual o no del programa:

Lenguajes de programacin visual: El


programa se realiza moviendo bloques de construccin de programas (objetos visuales) en un interfaz adecuado para ello. No confundir con entornos de programacin visual, como Microsoft Visual Studio y sus lenguajes de programacin textuales (como Visual C#). Ejemplo: Mindscript.

Lenguajes de programacin textual: El cdigo del


programa se realiza escribindolo. Ejemplos: C, Java, Lisp.

11. Determinismo.

Segn se pueda predecir o no el siguiente estado del programa a partir del estado actual:

Lenguajes deterministas.
Ejemplos: Todos los anteriores.

Lenguajes probabilsticos o no deterministas: Sirven


para explorar grandes espacios de bsqueda, (como gramticas), y en la investigacin terica de hipercomputacin. Ejemplo: mutt (generador de texto aleatorio).

12. Productividad.

Segn se caractericen por tener virtudes tiles o productivas, u oscuras y enrevesadas:

Lenguajes tiles o productivos: Sus virtudes


en cuanto a eficiencia, sencillez, claridad, productividad, etc., motiva que sean utilizados en empresas, administraciones pblicas y/o en la enseanza. Ejemplos: Cualquier lenguaje de uso habitual (C, Java, C++, Lisp, Python, Ruby

Lenguajes esotricos o exticos: Inventados con la


intencin de ser los ms raros, oscuros, difciles, simples y/o retorcidos de los lenguajes, para diversin y entretenimiento de frikis programadores. A veces exploran nuevas ideas en programacin. Ejemplo: Brainfuck.

S-ar putea să vă placă și