antecedentes de la programacion logica
HISTORIA Y ANTECEDENTES DE LA PROGRAMACION LOGICA Y FUNCIONAL
Desde su aparición, las computadoras se han programado utilizando lenguajes muy cercanos al de la propia máquina: operaciones aritméticas simples, instrucciones de acceso a memoria, etc. Un programa escrito de esta manera puede ser muy difícil de comprender por el un ser humano, incluso uno entrenado. Actualmente, estoslenguajes pertenecientes al paradigma de la Programación imperativa han evolucionado de manera que ya no son tan crípticos.
Sin embargo, la lógica matemática es la manera más sencilla de expresar formalmente problemas complejos y de resolverlos mediante la aplicación de reglas, hipótesis y teoremas, para el intelecto humano. De ahí que el concepto de "programación lógica". La lógica ha estado muyrelacionada históricamente con las computadoras y los lenguajes de programación. Muchas operaciones matemáticas se realizan mecánicamente es decir que existe un algoritmo para resolverse. Otras, son más difíciles de automatizar, por ejemplo, la demostración de un teorema. La invención del Cálculo por parte de Newton y Leibniz mostró a los matemáticos de la época cómo una notación adecuada podíahacer que operaciones muy complicadas se simplificaran, y surgió la idea de que "con una notación adecuada, toda la matemática se puede hacer mecánica, podría concebirse una máquina que hiciera todo el trabajo".
Los circuitos de las computadoras son diseñados con la ayuda del álgebra booleana (George Boole). Datos y expresiones booleanos son usados en casi todos los lenguajes de programación parael control de acciones del programa. Proposiciones lógicas se han usado para describir formalmente la semántica de los lenguajes de programación, según el método axiomático que tuvo a Floyd y Hoare como iniciadores. Enunciados lógicos se usan para especificaciones formales que describen el comportamiento de un programa, lo que permite realizar sobre estas pruebas de corrección.
Las computadorashan sido empleadas para implementar los principios de la lógica matemática, a través de sistemas de deducción automática y demostradores de teoremas. Enunciados lógicos vistos como un lenguaje de programación y ejecutados en la computadora. Estos trabajos, iniciados por Robinson, Colmenaner y Kowalsky, condujeron al lenguaje Prolog.
La programación lógica implica forzosamente al uso de hechos yrelaciones para representar la información y al de deducciones para responder a consultas. Las consultas permiten conocer informaciones sobre las relaciones. Estos dos aspectos reflejan una división de labores entre los programadores y un lenguaje para la programación lógica. El programador proporciona las reglas y los hechos, mientras que el lenguaje usa la deducción para dar respuesta aconsultas. Esta división de labores es usualmente representado por la ecuación: algoritmo = lógica + control
La lógica se refiere a los hechos y reglas que especifican lo que realiza el algoritmo, y el control se refiere a cómo puede implementarse el algoritmo mediante la aplicación de reglas en un orden particular. El programador proporciona la parte lógica y el lenguaje de programación proporcionael control. Las consultas en los programas lógicos pueden usarse de dos formas: 1. Para determinar si un determinado conjunto de valores pertenece a una relación, en las cuales el intérprete responde Si, en caso de pertenecer la tupla, y Fracaso en caso de fracasar la deducción de una respuesta Sí. 2. Para determinar una instancia de valores para cada una de las variables presentes en la consulta,que pueda deducirse a partir de las reglas y hechos del programa lógico.
Año 1900. David Hilbert, un matemático alemán, propuso en un congreso una selección de 10 problemas, tomados de una lista de 23, que él consideraba los problemas matemáticos más relevantes a resolver en el siglo.
Uno de ellos, después de varias revisiones, decía:
La aritmética, ¿es «completa»? ¿Es «consistente»?...
Regístrate para leer el documento completo.