LOGOSJUNTOS.gif (3585 bytes)    

 

 

 

UNIVERSIDAD DE LOS ANDES 

COORDINACION GENERAL DE ESTUDIOS INTERACTIVOS A  DISTANCIA

MERIDA - VENEZUELA

 

 

                wpe1.jpg (1485 bytes)

              wpe2.jpg (2265 bytes)

Curso de Lógica y Matemática

    Postgrado en Computación                                        

    Postgrado en Modelado y Simulación de Sistemas      


ANTERIOR

PRINCIPAL

SIGUIENTE

 

MANUAL de PROLOG - BRATKO

 

 INTRODUCCIÓN

 

       La Programación Lógica es un paradigma de computación que consiste de un enfoque declarativo para escribir programas para el computador. PROLOG es un lenguaje de computación basada en ese paradigma.  Los programas lógicos pueden ser entendidos y estudiados a partir de dos conceptos: verdad y deducción lógica. En programación lógica, uno puede preguntarse si un axioma de un programa es verdad bajo alguna interpretación de los símbolos del programa y si ciertas declaraciones lógicas son consecuencia del programa. Esas preguntas pueden ser respondidas independientemente de cualquier mecanismo de ejecución concreto.

       Por otro lado, PROLOG es un lenguaje de programación con un significado operacional preciso que toma prestado sus conceptos básicos de la programación lógica. Los programas PROLOG son instrucciones para ejecutar sobre el computador. Esas instrucciones casi siempre son leídas como instrucciones lógicas y, lo más importante, el resultado de una computación de un programa PROLOG es una consecuencia lógica de los axiomas en éste.

       Es ampliamente aceptado que una programación efectiva en PROLOG requiere de una comprensión de la teoría de programación lógica, por lo menos en sus aspectos fundamentales, pero también que esto redunda en un mayor dominio del  procesamiento de la información usando el conmputador.

 

UN POCO DE HISTORIA

 

       El comienzo de la programación lógica puede ser atribuido a los profesores Kowalski y Colmerauer. R. A. Kowalski. trabajando en la Universidad de Edinburgo, formuló la interpretación procedimental de la lógica de cláusulas de Horn y mostró que el axioma A si B puede ser leído como un procedimiento de un lenguaje de programación recursivo, donde A es la cabeza del procedimiento y B su cuerpo. Al mismo tiempo, a principios de 1970, Colmerauer y su grupo en la Universidad De Marseille-Aix desarrolló un probador de teorema especializado, el cual ellos usaron para implementar sistemas de procesamiento natural. El probador de teorema, lo llamaron PROLOG (for Programation et Logique or Programming in Logic), basado en la interpretación procedimental de Kowalski.

       El primer interpretador de PROLOG no fue tan rápido como los sistemas LISP, el lenguaje pionero propuesto por el prof. McCarthy y muy popular en los Estados Unidos. Pero esto cambió a mediados de 1970 cuando David H.D. Warren y sus colegas desarrollaron una implementación eficiente de PROLOG. El compilador, el cual fue casi completamente escrito en PROLOG, tradujo cláusulas de PROLOG hacia instrucciones de una máquina abstracta que es ahora conocida como Warren Abstract Machine (WAM). Sin embargo, la comunidad de la Inteligencia Artificial y de la computación de occidente se mantuvo aún ignorante e indiferente a la programación lógica.

        Esto cambió un poco con el anuncio del Proyecto de Quinta Generación Japonesa el cual claramente afirmó el rol importante de la programación lógica en la próxima generación de sistemas computarizados. No sólo los investigadores sino también el público en general comenzó a deletrear la palabra PROLOG. Desde entonces, PROLOG está alcanzando nuevas alturas. Actualmente, una de las extensiones más prominentes es la programación lógica con restricciones (Contraint Logic Programming-CLP), con una cantidad de nuevos recursos para Ingeniería Lógica. Otras areas con desarrollos importantes son: la Programación Lógica Inductiva (ILP) y los Agentes en Programación Lógica.

 

ANTERIOR

PRINCIPAL

SIGUIENTE