Clasificación
Clasificar nunca es fácil puesto que requiere establecer a priori unos criteros 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:
- 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.
- 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.
- 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.
En este curso se estudiará un lenguaje de alto nivel, de propósito general y orientado al procedimiento o imperativo: el lenguaje Pascal.
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.
Veamos a continuación que elementos son necesarios para la realización de un programa.