Está en la página 1de 3

CLASIFICACIÓN DE LOS LENGUAJES DE PROGRAMACIÓN

Clasificar nunca es fácil puesto que requiere establecer a priori unos criterios
concretos que permitan dividir en clases o tipos el conjunto de elementos a
clasificar. Dado que es muy frecuente que estos elementos tengan aspectos
comunes, otros con ciertos matices y otros claramente diferentes, la clasificación
siempre puede no ser tan rigurosa como cabe pensar. Vamos a realizar varias
clasificaciones de los lenguajes de programación en función de diferentes criterios:

1. Según su proximidad al lenguaje máquina:


• Lenguajes de bajo nivel: Son distintos para cada procesador: cada tipo de
ordenador posee el suyo. Controlan directamente los recursos hardware de
la máquina. Como ejemplos tenemos el lenguaje máquina o el lenguaje
ensamblador (Assembly).
• Lenguajes de medio nivel: Tal y como refleja su nombre este grupo alberga
aquellos lenguajes que tienen algunas características de los de bajo nivel y
otras de los de alto nivel. El ejemplo más representativo es el lenguaje C.
• Lenguajes de alto nivel: Son independientes del procesador. Son más
sencillos y legibles pero generan un código mucho menos eficiente
(velocidad y tamaño) que los de bajo nivel. Para poder ser ejecutados
necesitan un procesador que bien trata una vez el código y genera un
programa ejecutable por un procesador (compiladores) o bien lo interpretan
línea por línea cada vez que son ejecutados (intérpretes). Ejemplos: Pascal,
php, Java, etc.

2. Según el propósito del lenguaje:


• Lenguajes de propósito general: como el Pascal, el C o incluso el Java
aunque este último se relaciona mucho con las aplicaciones empresariales.
• Lenguajes de propósito específico: php orientado al desarrollo de
aplicaciones Web, LISP orientado a la inteligencia artificial, etc.

3. Según su orientación:
• Lenguajes orientados al procedimiento: son lenguajes imperativos como
Pascal en los que se describen los pasos que han de darse para resolver un
determinado problema. Se explica como resolver un problema.
• Lenguajes orientados al problema: como por ejemplo Prolog. En estos
lenguajes lo que se describe es el problema en sí; son de tipo declarativo.
• Lenguajes orientados a objeto: son lenguajes en los que se modela la
realidad centrándose en la elementos que la componen.

Lenguajes de Alto Nivel


Los lenguajes de alto nivel buscan:
• Sencillez: ser un medio sencillo para expresar la solución de problemas.
• Simplicidad: contar con un conjunto reducido de operaciones básicas y un
conjunto de reglas para combinar las anteriores.
• Eficiencia: de manera que permitan una traducción rápida y un código
máquina los más eficiente posible.
• Legibilidad: facilitando la comprensión del código y presentando la posibilidad
de añadir comentarios que aunque no aportan nada al propio programa,
permite que otros programadores o incluso el mismo autor transcurrido el
tiempo puedan comprender su contenido con facilidad. Todo esto hace que
sea más sencillo depurar o modificar el código incluso por personas que no
lo han realizado.
• Portabilidad: los lenguajes de alto nivel son independientes de la máquina
para la que se esté haciendo un determinado desarrollo. Esto permite que el
esfuerzo de programación no esté condicionado por la variedad de
plataformas en las que se desea ejecutar.

Características de los lenguajes de alto nivel


Las características más importantes que deben presentar este tipo de lenguajes son
las siguientes:
• Utilizar un juego de caracteres determinado (por ejemplo, no admiten la "ñ")
y un juego de palabras reservadas que constituyen el léxico del lenguaje..
• Presentar unas reglas sintácticas de manera que la estructura de los
programas debe ceñirse a las mismas. Estas reglas conforman la gramática
del lenguaje.
• Tener capacidad para la realización de operaciones de tipo aritmético,
relacionales y lógicas incluyendo el tratamiento de cadenas de texto.
• Tener capacidad para bifurcar o repetir el código (o partes de él) en lugar de
ejecutarlo siempre secuencialmente.
• Tener facilidades para la programación modular basada en subprogramas.

Lenguajes de bajo nivel (ensamblador)


Para facilitar y agilizar su labor a los programadores, se buscaron nuevos lenguajes.
Cuando abstraemos los opcodes y los sustituimos por una palabra que sea una
clave de su significado, se tiene el concepto de Lenguaje Ensamblador. Así, el
lenguaje ensamblador representa las acciones del ordenador mediante pequeñas
abreviaturas de palabras en inglés. Podemos entonces definir al Lenguaje
Ensamblador de la siguiente forma:

Lenguaje Ensamblador consiste en asociar a los opcodes palabras clave que


faciliten su uso por parte del programador No obstante, el lenguaje ensamblador
requiere de muchas instrucciones para realizar simples operaciones.

Lenguaje máquina (Binario)


Una computadora sólo puede entender el lenguaje máquina. El lenguaje de
máquina ordena a la computadora realizar sus operaciones fundamentales una por
una. Dicho lenguaje es difícil de usar para lar persona porque trabajar con números
no es muy cómodo además de que estos números están en formato binario. ¿Cómo
es que se representan las operaciones como números? John Von Neumann
desarrolló el modelo que lleva su nombre para esta representación. Ya se estudió
que representar números usando el sistema binario no es complicado, pero se tenía
luego el problema de representar las acciones (o instrucciones) que iba a realizar la
computadora también en el sistema binario; pues la memoria, al estar compuesta
por bits, solamente permite almacenar números binarios. La solución que se tomó
fue la siguiente: a cada acción que sea capaz de realizar la computadora, se le
asocia un número, que corresponde a su código de operación (opcode).
Por ejemplo, una calculadora programable simple podría asignar los siguientes
opcodes:

Lenguajes de nivel medio. Este término no siempre es aceptado, que propone


lenguajes de programación que se ubican en un punto medio entre los dos
anteriores: pues permite operaciones de alto nivel y a la vez la gestión local de la
arquitectura del sistema.

Otra forma de clasificación a menudo es la siguiente:


• Lenguajes imperativos. Menos flexibles, dada la secuencialidad en que
construyen sus instrucciones, estos lenguajes programan mediante órdenes
condicionales y un bloque de comandos al que retornan una vez llevada a
cabo la función.
• Lenguajes funcionales. También llamados procedimentales, estos
lenguajes programan mediante funciones que son invocadas conforme a la
entrada recibida, que a su vez son resultado de otras funciones.

También podría gustarte