Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
80Activity
0 of .
Results for:
No results containing your search query
P. 1
INTRODUCCIÓN A PROLOG

INTRODUCCIÓN A PROLOG

Ratings: (0)|Views: 5,591 |Likes:
Published by MC. Rene Solis R.
Spanish of a prolog programing work at the university.
Es un compilado de un escrito referente a prolog, esta intermedio pero suficiente para arrancar.
Spanish of a prolog programing work at the university.
Es un compilado de un escrito referente a prolog, esta intermedio pero suficiente para arrancar.

More info:

Published by: MC. Rene Solis R. on Feb 26, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/31/2013

pdf

text

original

 
INTRODUCCIÓN
La Programación Lógica es un paradigma de computación que consiste de un enfoque declarativo paraescribir programas para el computador. PROLOG es un lenguaje de computación basada en ese paradigma. Losprogramas lógicos pueden ser entendidos y estudiados a partir de dos conceptos: verdad y deducción lógica. Enprogramación lógica, uno puede preguntarse si un axioma de un programa es verdad bajo alguna interpretaciónde los símbolos del programa y si ciertas declaraciones lógicas son consecuencia del programa. Esas preguntaspueden 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 tomaprestado sus conceptos básicos de la programación lógica. Los programas PROLOG son instrucciones paraejecutar sobre el computador. Esas instrucciones casi siempre son leídas como instrucciones lógicas y, lo másimportante, el resultado de una computación de un programa PROLOG es una consecuencia lógica de losaxiomas en éste.Es ampliamente aceptado que una programación efectiva en PROLOG requiere de una comprensión de lateoría de programación lógica, por lo menos en sus aspectos fundamentales, pero también que esto redunda enun 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 decláusulas de Horn y mostró que el axioma
 A si B
puede ser leído como un procedimiento de un lenguaje deprogramación recursivo, donde A es la cabeza del procedimiento y B su cuerpo. Al mismo tiempo, a principiosde 1970, Colmerauer y su grupo en la Universidad De Marseille-Aix desarrolló un probador de teoremaespecializado, 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ónprocedimental de Kowalski.El primer interpretador de PROLOG no fue tan rápido como los sistemas LISP, el lenguaje pioneropropuesto por el prof. McCarthy y muy popular en los Estados Unidos. Pero esto cambió a mediados de 1970cuando David H.D. Warren y sus colegas desarrollaron una implementación eficiente de PROLOG. Elcompilador, el cual fue casi completamente escrito en PROLOG, tradujo cláusulas de PROLOG haciainstrucciones de una máquina abstracta que es ahora conocida como Warren Abstract Machine (WAM). Sinembargo, la comunidad de la Inteligencia Artificial y de la computación de occidente se mantuvo aún ignorantee indiferente a la programación lógica.Esto cambió un poco con el anuncio del Proyecto de Quinta Generación Japonesa el cual claramenteafirmó el rol importante de la programación lógica en la próxima generación de sistemas computarizados. Nosólo los investigadores sino también el público en general comenzaron a deletrear la palabra PROLOG. Desdeentonces, PROLOG está alcanzando nuevas alturas. Actualmente, una de las extensiones más prominentes es laprogramación lógica con restricciones (Contraint Logic Programming-CLP), con una cantidad de nuevosrecursos 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.
PRIMEROS PASOS EN PROLOG
 
En este capítulo revisaremos unos pocos ejemplos para ilustrar las ideas básicas detrás de laprogramación en PROLOG. Pero primero, unas notas acerca de como usar Sistemas PROLOG.Un programa PROLOG es un conjunto de procedimientos (el orden es indiferente). Cada procedimientoconsiste de una o más cláusulas (ahora, el orden de las cláusulas si es importante). Hay dos tipos de cláusulas:hechos y reglas. El programa es almacenado en una base de conocimiento PROLOG. Usualmente cargas unprograma dentro de la base de datos usando el comando
consult 
, en la concha PROLOG, en la siguiente forma:
? consult(‘Nombre_Del_archivo_Con_El_Programa’).
 El comando consult agrega las cláusulas y hechos desde el archivo texto especificado a las cláusulas y hechosya almacenados en la base de datos. Así puedes cargar más programas dentro de la base de datos a la vez, perodebes ser cuidadoso si los programas no usan los procedimientos con el mismo nombre. De otra manera, debidoa la acumulación de cláusulas, esos procedimientos podrían comportarse incorrectamente.Otra forma de invocar este mismo comando es con la notacion de listas:
? [‘Nombre_Del_archivo_Con_El_Programa’].
 Puedes también usar el comando reconsult para recargar un programa.
?
 
reconsult('Nombre_Del_Archivo_Con_El_Programa').
 Este comando se comporta igual al comando consult (agrega procedimientos dentro de la base de datos)pero si hay un procedimiento en la base de datos con el mismo nombre de algún procedimiento en el archivoreconsultado, entonces el primer procedimiento es reemplazado por la nueva definición. Puedes usar elcomando reconsult para cambiar un programa en la base de datos durante la depuración.El programa PROLOG es ejecutado invocando algún procedimiento del programa de la siguiente forma
:
 
?
nombre_Del_Procedimiento(parámetros).
 Nota que tu ya has llamado un procedimiento cuando tu consultastes o reconsultastes el archivo. "Llamar unprocedimiento" es equivalente a "preguntando una pregunta" en PROLOG.
BASE DE DATOS GENEALÓGICA
Una base de datos genealógica puede ser una buena introducción a PROLOG , pués no es exactamente unconjunto de procedimientos y tiene más elementos que una base de datos común. En ésta lección , presentamosun programa de PROLOG simple que captura relaciones de familia básicas. El programa demuestra algunas delas características de PROLOG como el usar hechos , reglas , variables y la recursión.Primero, expresamos la propiedad de ser un hombre o mujer usando hechos de PROLOG
:
 
hombre(adan).
 
hombre(pedro).
 
hombre(paul).
 
mujer(maria).
 
 
mujer(eva).
 Ahora podemos agregar la relación "pariente" el cual asocia pariente y niño:
pariente(adan,pedro). % Significa adan es pariente de pedro.
 
pariente(eva,pedro).
 
pariente(adan,paul).
 
pariente(marry,paul).
 Hasta ahora, hemos agregado sólo hechos a nuestro programa. Pero el poder real de PROLOG está en lasreglas. Mientras que los hechos afirman la relación explícitamente, las reglas definen la relación en una formamás general. Cada regla tiene su cabeza (nombre de la relación definida), y su cuerpo (las condiciones dedefinición de la relación). Las siguientes reglas definen las relaciones de ser un padre y ser una madre usandolas relaciones definidas previamente de ser un hombre o mujer y ser un pariente.
padre(F,C) :-hombre(F), pariente(F,C).
 
madre(M,C)
 
:- mujer(M), pariente(M,C).
 Notar que usamos variables (comienzan con mayúscula) para expresar la característica que cada hombre el cuales un pariente de cualquier niño es también su padre. Si algún parámetro de la relación no es importantepodemos usar variables anónimas (denotadas _) como en esas definiciones:
es_padre(F) :- padre(F,_).
 
es_madre(M) :- madre(M,_).
 Antes de avanzar más, uno debería saber como ejecutar los programas PROLOG. Tu ejecutas el programahaciendo preguntas como ésta:
?-padre(X,paul)
.La cual expresa: ¿Quién es padre de Paul? (Estrictamente hablando la frase pregunta si existe "algo" que sea elpadre de Paul). La respuesta es X=adan, según nuestro programa anterior.Ahora extenderemos la base de datos de hechos y trataremos de definir otras relaciones de familia como ser unhijo, tío o abuelo. También, trataremos de preguntar al sistema PROLOG diversas preguntas para ver quesucede. Tu puedes comparar tu propio programa con las siguientes reglas:
hijo(S,P):-hombre(S),pariente(P,S).
 
hija(D,P):-mujer(D),pariente(P,D).
 
hermanos(A,B):-pariente(P,A), pariente(P,B), A\=B.
 
% hermanos tienen al menos un pariente común
 
% la prueba A\=B preserva que hermanos son personas diferentes.
 
hermanos_completos(A,B):-
 

Activity (80)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Paulo Cesar liked this
Nash Flores liked this
Vianney García liked this
Victor Aguilar liked this
Francisco Urias liked this

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->