lunes, 22 de junio de 2009

Programación Lógica

Lenguajes Basados en Reglas (lógico)

· La programación lógica:

La programación lógica consiste en la aplicación del corpus de conocimiento sobre lógica para el diseño de lenguajes de programación; no debe confundirse con la disciplina de la lógica computacional.
La programación lógica comprende dos paradigmas de programación: la programación declarativa y la programación funcional. La programación declarativa gira en torno al concepto de predicado, o relación entre elementos. La programación funcional se basa en el concepto de función (que no es más que una evolución de los predicados), de corte más matemático.

· Fundamentos
La mayoría de los lenguajes de programación lógica se basan en la teoría lógica de primer orden, aunque también incorporan algunos comportamientos de orden superior. En este sentido, destacan los lenguajes funcionales, ya que se basan en el cálculo lambda, que es la única teoría lógica de orden superior que es demostradamente computable (hasta el momento).

La programación lógica permite formalizar hechos del mundo real, por ejemplo:
las aves vuelan
los pingüinos no vuelan
"pichurri" es un ave
"sandokan" es un perro
"alegría" es un ave

y también reglas o restricciones:

una mascota vuela si es un ave y no es un pingüino

Ante dicho "programa" es posible establecer hipótesis que no son más que preguntas o incógnitas, por ejemplo:
¿"pichurri" vuela?
¿ qué mascotas vuelan ?....

Es cierto que "pichurri" vuela.
"pichurri" y "alegría" vuelan.
Gracias a que la lógica de primer orden es computable, el ordenador será capaz de verificar la hipótesis, es decir, responder a las incógnitas:

· Lenguajes basados en Reglas
Estos lenguajes han sido durante mucho tiempo posiblemente los más usados de todos, principalmente debido a su estrecha relación con los Sistemas Expertos utilizados en Inteligencia Artificial. Estos lenguajes son fáciles de entender debido a su sencillez conceptual y a su paralelismo con las estructuras de control más simples utilizadas en programación. Este tipo de lenguajes han recibido también un fuerte impulso a partir de la aparición de la web semántica.
Este nuevo lenguaje incluye las siguientes características:

Reglas de producción: reglas del tipo IF-THEN habituales en los sistemas expertos.

Reglas de integridad: afirmaciones que se deben cumplir en cualquier estado del sistema

Reglas reactivas: reglas que realizan acciones cuando se cumple un evento o se dan unas determinadas circunstancias
Reglas de derivación: reglas para definir conceptos derivados a partir de otros

Reglas de transformación: permiten crear reglas a partir de un llamador, una condición, y una transformación.

Podemos representar en RuleML la sentencia “Si a alguien le gusta la lectura, entonces a Juan le gusta esa persona” de la siguiente forma:

· Prolog

El lenguaje de programación lógica por excelencia es Prolog, que cuenta con diversas variantes.
Se creo como una respuesta a la crisis del software que ocurría durante los primeros años de la década del 70 y producto del avance de la lógica moderna (de tipo funcional), nace PROLOG (“PROgramación en LOGica”).
Prolog es un lenguaje de programación que es usado para resolver problemas que envuelven objetos y las relaciones entre ellos.
Su objetivo es la evolución de los lenguajes, como también el bajo ”costo y facilidad’ de programación que este puede ofrecer. El lenguaje está orientado para trabajar en aplicaciones de inteligencia artificial.

Otros ejemplos:

— ALF (Another logical framework)
— Gödel programming language
— Mercury programming language

Evelyn Morales Miranda
Erick Meneses Morales
Rubén Bermúdez Artavia

No hay comentarios:

Publicar un comentario