18/6/09

Lenguajes de Programación (Basado en Reglas [lógico])

La Programación Lógica: consiste en la aplicación del corpus de conocimiento sobre lógica para el diseño de leguajes 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 entorno 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 que un 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 calculo lambda, que es la única teoría lógica de orden superior que es demostradamente computale (hasta el momento)
La programación permite formalizar hechos reales 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é mascotan vuelan?...
Gracias a que la lógica de primer orden es compuable, el ordenador será capaz de verificar la hipótesis, es decir, responder a las incógnitas:
Es cierto que "pichurri"vuela
"pichurri" y "alegría" vuelan

Lenguajes Basados en Reglas: estos lenguajes han sido durante mucho tiempo posiblemente o 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 enterder debido a su sencillez conceptual y su paralelismo con las estructuras de control más simples utilizadas en programación. Este tipo de lengujes han recibido también un fuerte impulso a partir de la web semántica. Este nuevo lenguaje incluye las siguientes características:

Reglas de producción: reglas de 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 travez de un llamador, una condición, y una transformación.

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

Prolog: el lenguaje de programación por excelencia es el 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 de los 70 y producto del avance de la lógica moderna (de tipo funcional), nace PROLOG("PROgramación el LOgica").

Prolog es un lenguaje de programación que es usado para resolver problemas que envuelven objetos y las relaciones entre ellos. Su objetivo s 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 son:

  • ALF (Another logical framework)
  • Godel programming language
  • Mercury programming language

No hay comentarios:

Publicar un comentario