La Programación Declarativa.
Aunque en nuestro país la informática comenzó a popularizarse en la década de los ochenta, con la aparición del ordenador personal (pc), la programación de computadoras es mucho más antigua.
El lenguaje maquina, basado en el sistema binario y el álgebra booleana, es el natural de las computadoras. La razón reside en que el soporte físico de las mismas lo constituye el paso de una corriente eléctrica a través de un circuito microprogramable, dando lugar a dos niveles de voltaje: encendido(1) y apagado(0). La consecuencia lógica de estas dos situaciones es la aplicación de un lenguaje que tenga como sistema de numeración ambas cifras. (0 y 1). La trascendencia fue tal que en nuestro sistema educativo le dimos una gran importancia a la “teoría de conjuntos”, allá por los años setenta.
Pero la programación en este lenguaje es pesada, laboriosa y tediosa por lo que pronto se construyeron otros lenguajes en los que las instrucciones al computador se hacían con palabras más significativas, los lenguajes de más alto nivel: Ensamblador, Cobol, Fortram, Perl, Basic, Pascal, C, Smalltalk , Lisp y otros. No obstante, al final, mediante un interprete o mediante un proceso llamado compilación, se traducen esas palabras de más alto nivel al lenguaje que verdaderamente entiende la máquina.
La clasificación de todos estos lenguajes que tratan la programación de computadoras puede hacerse desde varios puntos de vistas: bajo y alto nivel, de propósito general o especialistas, interpretados o compilados, etc. Pero hay uno que nos interesa especialmente para introducirnos en el tema: la filosofía de cómo abordar un sistema de programación. Desde está óptica podemos clasificar a los lenguajes en dos grandes bloques: Imperativos y Declarativos.
Los lenguajes imperativos son aquellos que dicen al computador qué tiene que ser computado, cómo tiene que hacerlo y en el orden que deben ejecutarse las sentencias.
Los lenguajes declarativos son los que indican qué debe computarse, que resultados queremos obtener, pero no necesariamente se le indica al computador cómo hacerlo y es prerrogativa del computador elegir el orden de las sentencias.