Lenguajes de programación

Para la clasificación de los lenguajes de programación pueden adoptarse dos criterios, es decir, en función de su nivel (habiendo cuatro niveles distintos de lenguajes de programación) o de cuáles sean sus principales aplicaciones. En su clasificación influye también la evolución histórica que haya experimentado el lenguaje a lo largo de su vida. Los cuatro niveles de lenguajes de programación son, empezando por el superior y acabando con el inferior, los lenguajes declarativos.

Los de alto nivel, los ensambladores y los lenguajes máquina. Los lenguajes declarativos son los que muestran un mayor parecido con lo que usualmente se entiende por lenguaje o  idioma (p. ej., el español), ya que en ellos las órdenes se imparten mediante sentencias que no indican cómo hay que hacer las cosas sino qué es lo que hay que hacer.

Dichos lenguajes fueron desarrollados con la idea de que los programas de aplicación pudiesen ser utilizados con relativa facilidad por los usuarios mediante una rápida asimilación del empleo del lenguaje, sin necesidad de adquirir una formación específica de programadores ni verse en la necesidad de realizar prácticas de programación.

Los llamados lenguajes de alto nivel son los que se emplean con mayor frecuencia como lenguajes de programación; si bien no son como los de declarativos, sí permiten expresar los algoritmos de una manera y con un estilo fácilmente reconocible por parte de diversos programadores y usuarios.

Asimismo, presentan una ventaja fundamental; la facilidad de poder ser transportados de una máquina a otra sin necesidad de realizar grandes cambios en ellos, por lo que se dice que son independientes dela máquina empleada. A este grupo pertenecen los lenguajes más conocidos, tales como el APL, FORTRAN, PASCAL, COBOL, LISR PROLOG, C, ADA y PL/l.

Por su parte, los llamados lenguajes ensambladores y los lenguajes máquina son tipos de lenguajes especifica mente dependientes de la máquina, es decir, que cada tipo de máquina concreto tiene su propio y particular lenguaje máquina y el lenguaje ensamblador a el asociado.

El lenguaje ensamblador es tan sólo una forma de representación simbólica del lenguaje máquina al que está asociado y que presenta la ventaja de facilitar la programación en lenguaje máquina, que es esencialmente el que entiende la máquina y en el que por lo tanto deben estar expresadas todas las indicaciones que se le hagan.

La diferencia esencial entre los lenguajes ensamblador y máquina es que, mientras que en el primero se emplean símbolos para indicar las operaciones (p. ej., la M para multiplicar), en el lenguaje máquina esto debe expresarse mediante códigos de tipo numérico ya que el ordenador tan sólo entiende este tipo de información (lógica binaria). Las diversas características de los distintos tipos de lenguajes nos permiten percatarnos de que cuanto más bajo es el nivel del lenguaje empleado en la programación tanto más parecidas son sus características respecto de las del lenguaje máquina de la instalación y tanto mayores son sus diferencias respecto del lenguaje cotidiano (el lenguaje natural) empleado por el ser humano para comunicarse con sus semejantes.

Por ende, cuando se programa, ya sea en lenguaje de alto nivel o en lenguaje ensamblado; es necesario disponer de una interfase con el lenguaje máquina para que el programa sea ejecutable. A este respecto existen tres tipos fundamentales de interfases, que son el ensamblador, el compilador y el intérprete.

Los dos primeros traducen el programa, obteniendo, antes

de la ejecución, otro equivalente en el lenguaje de la máquina. El tercero ejecuta directamente las instrucciones en un lenguaje de alto nivel sin pasar por el procesamiento previo.

De los tres tipos, principales mencionados, el  compilador es el más eficaz para la mayor parte de las máquinas, puesto que presenta la ventaja de que cada una de las sentencias del programa es interpretada y traducida al lenguaje máquina sólo una  vez.

Por otra parte, la interpretación puede ser ventajosa en aquellos casos en los que cada ejecución de cierto programa represente una modificación del texto del mismo lo que sucede, por ejemplo, en el caso dela programación experimental de los procesos educativos, ya que ofrece una mayor facilidad para la diagnosis y depuración que los lenguajes ya compilados dado, donde los mensajes de error que emite la máquina se refieren directamente a las sentencias contenidas en el y texto original del mismo.

Finalmente, cabe indicar que la evolución de las máquinas cuyos lenguajes máquina son por si mismos lenguajes de alto nivel puede hacer desaparecer, con el correr del tiempo, la ventaja que hasta ahora tiene la compilación frente al ensamblado y la interpretación.