La
programación lógica es un tipo de paradigmas de programación dentro del paradigma
de programación declarativa. El resto de los subparadigmas de programación dentro de la
programación declarativa son: programación funcional, programación con restricciones, programas
DSL (de dominio específico) e híbridos. 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. La
programación lógica gira en torno al concepto de predicado, o relación entre elementos.l lenguaje
principal representante del paradigma, se basa en un subconjunto de la lógica de primer orden
(restricción de la forma clausal de la lógica denominada cláusulas de Horn). Philippe Roussel y
Alain Colmerauer (Universidad de AixMarseille) lo crearon en 1972, y su base teórica se debe
en gran parte a Kowalski. Estructuras básicas Prolog cuenta con dos tipos de estructuras:
términos y sentencias. Los términos pueden ser constantes, variables o functores:
Las constantes, representadas por una cadena de caracteres, pueden ser números o cualquier
cadena que comience en minúscula.
> Las variables son cadenas que comienzan con una letra mayúscula.
La programacion logica simplifica un problema
Uno de los aspectos críticos en el desarrollo de aplicaciones empresariales es el de la
programación de reglas de negocio. Existen numerosos trabajos acerca de la mejor forma de
modelarlas: el problema se relaciona con el tipo de conocimiento que requieren. Tenemos tres
tipos: > Factual. Puede ser modelado e implementado como datos (por ejemplo, filas en una
tabla relacional). Establece hechos. > Procedural. Serie de pasos para resolver problemas. >
Lógico. Representa un conjunto de reglas para modelar relaciones entre objetos (por ejemplo, en
una aplicación de tarifas telefónicas, serían las relaciones entre horarios, distancia, descuentos,
plan del usuario, tiempo de duración, costo de la llamada, etc.).
Integración total: lógica para .NET y Java Para que el uso de programas lógicos pueda aplicarse
al desarrollo de software moderno, es necesario que sean verdaderos componentes lógicos que
puedan utilizarse desde entornos como .NET, JSP, Delphi, Java, etc. Muchas implementaciones
actuales de Prolog proveen mecanismos para invocar programas Prolog desde otros ambientes.
El entorno Amzi Prolog + Logic Server brinda una integración total multiplataforma con los
ambientes más conocidos. Además, podemos invocar desde Prolog rutinas hechas en otros
lenguajes, mediante predicados extendidos (así Prolog puede actualizar, por ejemplo, el estado
de un botón en pantalla habilitándolo o no dependiendo de un complejo conjunto de relaciones
lógicas).
Puedo aplicar la programcaion lógica para todos los problemas?
La programación lógica encuentra su hábitat natural en aplicaciones de inteligencia artificial o
relacionadas:
Sistemas expertos, donde un sistema de información imita las recomendaciones de un experto
sobre algún dominio de conocimiento.
Demostración automática de teoremas, donde un programa genera nuevos teoremas sobre una
teoría existente.
Reconocimiento de lenguaje natural, donde un programa es capaz de comprender (con
limitaciones) la información contenida en una expresión lingüística humana.
La programación lógica también se utiliza en aplicaciones más "mundanas" pero de manera
muy limitada, ya que la programación tradicional es más adecuada a tareas de propósito general.