ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Prolog

zebreSíntesis26 de Noviembre de 2014

632 Palabras (3 Páginas)390 Visitas

Página 1 de 3

Prolog

El desarrollo de Prolog se inició en 1970 con Alain Coulmeauer y Philippe Roussel, quienes estaban interesados en desarrollar un lenguaje para hacer deducciones a partir de texto. El nombre corresponde a "Programming in Logic” (Programación en lógica).

Prolog fue desarrollado en Marsella, Francia, en 1972. El principio de resolución de Kowalski, de la Universidad de Edimburgo pareció un modelo apropiado para desarrollar sobre él mecanismo de inferencia. Con la limitación de de la resolución de cláusulas de Horn, la unificación condujo a un sistema eficaz donde el no-determinismo inherente de la resolución se manejó por medio de un proceso de exploración a la inversa, el cual se podía implementar con facilidad.

La primera implementación de Prolog se completó en 1972 usando el compilador de ALGOL W de Wirth y los aspectos básicos del lenguaje actual se concluyeron en 1973. El uso de Prolog se extendió gradualmente entre quienes se dedicaban a la programación lógica principalmente por contacto personal y no a través de una comercialización del producto. Existen varias versiones diferentes, aunque bastante similares. Aunque no hay un estándar del Prolog, la versión desarrollada en la Universidad de Edimburgo ha llegado a ser utilizada ampliamente. El uso de este lenguaje no se extendió sino hasta los años ochenta. La falta de desarrollo de aplicaciones eficaces de Prolog inhibió su difusión.

El entorno de desarrollo Prolog

Prolog es un lenguaje de programación seminterpretado. El codigo fuente se compila a un código de byte el cuál se interpreta en una máquina virtual denominada Warren Abstract Machine (comúnmente denominada WAM). Por eso, un entorno de desarrollo Prolog se compone de:

• Un compilador. Transforma el código fuente en código de byte. A diferencia de Java, no existe un standard al respecto. Por eso, el codigo de byte generado por un entorno de desarrollo no tiene por que funcionar en el intérprete de otro entorno.

• Un intérprete. Ejecuta el código de byte.

• Un shell o top-level. Se trata de una utilidad que permite probar los programas,depurarlos, etc. Su funcionamiento es similar a los interfaces de línea de comando de los sistemas operativos.

• Una biblioteca de utilidades. Estas bibliotecas son, en general, muy amplias. Muchos entornos incluyen (afortunadamente) unas bibliotecas standard-ISO que permiten funcionalidades básicas como manipular cadenas, entrada/salida, etc.

Un programa en Prolog se compone de una serie de hechos, relaciones concretas entre objetos de datos (hechos) y un conjunto de clausulas(reglas), es decir, un patrón de relaciones entre los objetos de la base de datos; "Si es verdad el antecendente, entonces es verdad el consecuente". Estos hechos y reglas se introducen en la base de datos a través de una operación de consulta.

No obstante, la forma de escribir las cláusulas es al contrario de lo habitual. Primero se escribe el consecuente y luego el antecedente. El antecedente puede ser una conjunción de condiciones que se denomina secuencia de objetivos. Cada objetivo se separa con una coma y puede considerarse similar a una instrucción o llamada a procedimiento de los lenguajes imperativos. En Prolog no existen instrucciones de control. Su ejecución se basa en dos conceptos: la unificación y el backtracking. Gracias a la unificación, cada objetivo determina un subconjunto de cláusulas susceptibles de ser ejecutadas. Cada una de ellas se denomina punto de elección. Prolog selecciona el primer punto de elección y sigue ejecutando el programa hasta determinar si el objetivo es verdadero o falso. En caso de ser falso entra en juego el 'backtracking', que consiste en deshacer todo lo ejecutado situando el programa en el mismo estado en el que estaba justo antes de

...

Descargar como (para miembros actualizados) txt (4 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com