Lenguajes de
Programación Lógica
Cálculo Proposicional
PROLOG
PROLOG está orientado a la resolución de problemas mediante el
cálculo de predicados, basado en:
 Preguntas a la base de datos.
 Pruebas matemáticas.
El programa PROLOG especifica cómo debe ser la solución, en vez de
dar el algoritmo para su resolución. La solución se obtiene mediante
búsqueda aplicando la lógica de predicados.
El programa PROLOG se compone de unos hechos (datos) y un
conjunto de reglas, es decir, relaciones entre objetos de la base de
datos.
La ejecución del programa cargado en memoria consiste en realizar una
pregunta de forma interactiva: el interprete generará por inferencia los
resultados que se deducen a partir del contenido de la base de datos.
PROLOG tiene una sintaxis y semántica simples. Sólo busca relaciones
entre los objetos creados, las variables y las listas, que son sus
estructuras básicas.
LISP
 Es un lenguaje de programación aplicativo o funcional, de
propósito general, se basa en la aplicación de funciones a los datos
y se apoya en la utilización de funciones matemáticas para el
control de los mismos. El elemento fundamental en el LISP es la
lista, más ampliamente el término. Cada función del LISP y cada
programa que generemos con él vienen dado en forma de lista. . El
nombre proviene del término “List Processing ”.LISP es muy
utilizado en la InteligenciaArtificial.
 El LISP trata a los elementos o paramentos que le introducimos de
manera no destructiva, de forma que la mayoría de las funciones
nos devuelven una lista que es el resultado de alguna
transformación de otra que recibió, pero sin cambiar a esta (la que
recibió).
 Una de las razones por las que el LISP esta especialmente dotado
para la programación en inteligencia artificial (IA), es
precisamente, porque su código y todos los datos tienen la misma
estructura, en forma de lista.
CLIPS
 Representación del Conocimiento: CLIPS permite manejar una amplia
variedad de conocimiento, soportando tres paradigmas de programación: el
declarativo, el imperativo, y el orientado a objetos. Portabilidad: CLIPS fue
escrito en C con el fin de hacerlo más portable y rápido, y ha sido instalado en
diversos sistemas operativos (Windows 95/98/NT, MacOS X, Unix) sin ser
necesario modificar su código fuente. CLIPS puede ser ejecutado en cualquier
sistema con un compilador ANSI de C, o un compilador de C++. El código
fuente de CLIPS puede ser modificado en caso que el usuario lo considere
necesario, con el fin de agregar o quitar funcionalidades.
 Integralidad: CLIPS puede ser embebido en código imperativo, invocado
como una sub-rutina, e integrado con lenguajes como C, Java, FORTRAN y
otros.
 Desarrollo Interactivo: La versión estándar de CLIPS provee un ambiente de
desarrollo interactivo y basado en texto; este incluye herramientas para la
depuración, ayuda en línea, y un editor integrado.
 Verificación/Validación: CLIPS contiene funcionalidades que permiten
verificar las reglas incluidas en el sistema experto que está siendo
desarrollado, incluyendo diseño modular y particionamiento de la base de
conocimientos del sistema, chequeo de restricciones estático y dinámico para
funciones y algunos tipos de datos, y análisis semántico de reglas para
prevenir posibles inconsistencias.
CUADRO
COMPARATIVO
PROLOG LISP CLIPS
Lenguaje de programación diseñado para
representar y utilizar el conocimiento que se
tiene sobre un determinado dominio.
Es un lenguaje que muestra la información
estructurada en listas en las que se pueden
gestionar la información que estas contienen.
Herramienta proporciona un entorno completo
para la construcción de sistemas expertos
basados en reglas y/o en objetos.
Basado en lógica y programación declarativa.
LISP posee un manejo de memoria automático
que libera el espacio utilizado por los objetos
que dejan de ser necesitados.
Posee tres paradigmas: conocimiento basado en
reglas, orientado a los objetos y conocimiento
procedimental.
No se especifica cómo debe hacerse, sino qué
debe lograrse.
Incluye un mecanismo bastante simple para
utilizar evaluación perezosa de expresiones.
CLIPS puede combinarse con código escrito en
lenguajes como C, FORTRAN o ADA.
Una característica importante en PROLOG y
que lo diferencia de otros lenguajes de
programación, es que una variable sólo puede
tener un valor mientras se cumple el objetivo.
LISP no posee un sistema de tipos estáticos
como puede ocurrir en C/C++.
La versión estándar de CLIPS proporciona un
entorno interactivo, en forma de intérprete de
comandos.
El programador se concentra más en el
conocimiento que en los algoritmos. En
PROLOG, se llega a una solución infiriéndola
desde algo ya conocido.
Las implementaciones en LISP suelen
programarse de manera que cálculos iterativos
puedan realizarse en un espacio constante (en
memoria) aunque hayan sido descritos
mediante el uso de la recursividad.
CLIPS incluye cierto número de características
para realizar la verificación y validación de
sistemas expertos

Lenguajes de programación lógica

  • 1.
  • 2.
    PROLOG PROLOG está orientadoa la resolución de problemas mediante el cálculo de predicados, basado en:  Preguntas a la base de datos.  Pruebas matemáticas. El programa PROLOG especifica cómo debe ser la solución, en vez de dar el algoritmo para su resolución. La solución se obtiene mediante búsqueda aplicando la lógica de predicados. El programa PROLOG se compone de unos hechos (datos) y un conjunto de reglas, es decir, relaciones entre objetos de la base de datos. La ejecución del programa cargado en memoria consiste en realizar una pregunta de forma interactiva: el interprete generará por inferencia los resultados que se deducen a partir del contenido de la base de datos. PROLOG tiene una sintaxis y semántica simples. Sólo busca relaciones entre los objetos creados, las variables y las listas, que son sus estructuras básicas.
  • 3.
    LISP  Es unlenguaje de programación aplicativo o funcional, de propósito general, se basa en la aplicación de funciones a los datos y se apoya en la utilización de funciones matemáticas para el control de los mismos. El elemento fundamental en el LISP es la lista, más ampliamente el término. Cada función del LISP y cada programa que generemos con él vienen dado en forma de lista. . El nombre proviene del término “List Processing ”.LISP es muy utilizado en la InteligenciaArtificial.  El LISP trata a los elementos o paramentos que le introducimos de manera no destructiva, de forma que la mayoría de las funciones nos devuelven una lista que es el resultado de alguna transformación de otra que recibió, pero sin cambiar a esta (la que recibió).  Una de las razones por las que el LISP esta especialmente dotado para la programación en inteligencia artificial (IA), es precisamente, porque su código y todos los datos tienen la misma estructura, en forma de lista.
  • 4.
    CLIPS  Representación delConocimiento: CLIPS permite manejar una amplia variedad de conocimiento, soportando tres paradigmas de programación: el declarativo, el imperativo, y el orientado a objetos. Portabilidad: CLIPS fue escrito en C con el fin de hacerlo más portable y rápido, y ha sido instalado en diversos sistemas operativos (Windows 95/98/NT, MacOS X, Unix) sin ser necesario modificar su código fuente. CLIPS puede ser ejecutado en cualquier sistema con un compilador ANSI de C, o un compilador de C++. El código fuente de CLIPS puede ser modificado en caso que el usuario lo considere necesario, con el fin de agregar o quitar funcionalidades.  Integralidad: CLIPS puede ser embebido en código imperativo, invocado como una sub-rutina, e integrado con lenguajes como C, Java, FORTRAN y otros.  Desarrollo Interactivo: La versión estándar de CLIPS provee un ambiente de desarrollo interactivo y basado en texto; este incluye herramientas para la depuración, ayuda en línea, y un editor integrado.  Verificación/Validación: CLIPS contiene funcionalidades que permiten verificar las reglas incluidas en el sistema experto que está siendo desarrollado, incluyendo diseño modular y particionamiento de la base de conocimientos del sistema, chequeo de restricciones estático y dinámico para funciones y algunos tipos de datos, y análisis semántico de reglas para prevenir posibles inconsistencias.
  • 5.
    CUADRO COMPARATIVO PROLOG LISP CLIPS Lenguajede programación diseñado para representar y utilizar el conocimiento que se tiene sobre un determinado dominio. Es un lenguaje que muestra la información estructurada en listas en las que se pueden gestionar la información que estas contienen. Herramienta proporciona un entorno completo para la construcción de sistemas expertos basados en reglas y/o en objetos. Basado en lógica y programación declarativa. LISP posee un manejo de memoria automático que libera el espacio utilizado por los objetos que dejan de ser necesitados. Posee tres paradigmas: conocimiento basado en reglas, orientado a los objetos y conocimiento procedimental. No se especifica cómo debe hacerse, sino qué debe lograrse. Incluye un mecanismo bastante simple para utilizar evaluación perezosa de expresiones. CLIPS puede combinarse con código escrito en lenguajes como C, FORTRAN o ADA. Una característica importante en PROLOG y que lo diferencia de otros lenguajes de programación, es que una variable sólo puede tener un valor mientras se cumple el objetivo. LISP no posee un sistema de tipos estáticos como puede ocurrir en C/C++. La versión estándar de CLIPS proporciona un entorno interactivo, en forma de intérprete de comandos. El programador se concentra más en el conocimiento que en los algoritmos. En PROLOG, se llega a una solución infiriéndola desde algo ya conocido. Las implementaciones en LISP suelen programarse de manera que cálculos iterativos puedan realizarse en un espacio constante (en memoria) aunque hayan sido descritos mediante el uso de la recursividad. CLIPS incluye cierto número de características para realizar la verificación y validación de sistemas expertos