Documente Academic
Documente Profesional
Documente Cultură
12/12/2017
Programacin lgica y funcional Zambrano Robles Esdras Moises
INDICE
Qu es la programacin lgica? ............................................................................................................................................ 3
Alcances .................................................................................................................................................................................. 4
Lenguajes de programacin lgica.......................................................................................................................................... 4
Prolog : ................................................................................................................................................................................ 5
Godel ................................................................................................................................................................................... 6
CLP (FD) ............................................................................................................................................................................... 7
Elementos y sintaxis de la programacin lgica ..................................................................................................................... 8
Hechos ........................................................................................................................................................................... 8
Reglas ............................................................................................................................................................................ 8
Consultas ....................................................................................................................................................................... 8
Recursin....................................................................................................................................................................... 9
Aplicaciones .......................................................................................................................................................................... 10
Qu es la programacin lgica?
La Programacin Lgica, junto con la funcional, forma parte de lo que se conoce como Programacin
Declarativa, es decir la programacin consiste en indicar como resolver un problema mediante
sentencias, en la Programacin Lgica, se trabaja en una forma descriptiva, estableciendo relaciones
entre entidades, indicando no como, sino que hacer, entonces se dice que la idea esencial de la
Programacin Lgica es
Alcances
Prolog
Mercury
CLP (FD)
CSP (Constraint Satisfaction Problem)
Lambda Prolog
Logtalk
Alma-0
CLAC(Logical Composition with the Assistance of Computers)
Gdel
Curry
Ace
PALs
Actor Prolog
Prolog :
Es un Lenguaje de Programacin diseado para representar y utilizar el conocimiento que se tiene
sobre un determinado dominio. Los programas en Prolog responden preguntas sobre el tema del
cual tienes conocimiento.
Godel
Gdel es un lenguaje en el que las sentencias lgicas llevan un orden y en el que existe el
polimorfismo. Est basado en mdulos (que aceptan polimorfismo) y en tipos de datos (soporta
enteros y racionales con una precisin infinita, y nmero en coma flotante) y tiene una amplia librera
de mdulos predefinidos.
CLP (FD)
Otra extensin de Prolog, especializado en los problemas CSPs (Constraint Satisfaction Problem).
De forma general, podemos decir que un programa en CLP(FD) consta de tres partes: generacin
de variables (donde tambin se especifica su domino), definicin de restricciones (sobre las
variables) y labeling, donde se instancian las variables por enumeracin.
Hechos
Declaracin, clusula o proposicin cierta o falsa, el hecho establece una relacin entre objetos.
Son las sentencias ms sencillas. Un hecho es una frmula atmica o tomo: p(t1,...,tn)p(t1,...,tn) e
indica que se verifica la relacin (predicado) p sobre los objetos (trminos) t1,...,tnt1,...,tn.
Reglas
Implicacin o inferencia lgica que deduce nuevo conocimiento, la regla permite definir nuevas relaciones
apartir de otras ya existentes
Consultas
se especifica el problema, la proposicin a demostrar o el objetivo Partiendo de que los humanos son
mortales y de que Scrates es humano, deducimos que Pepito es mortal
Recursin
La recursividad puede ser tratada de una manera ms eficaz si se piensa en que hace el algoritmo
recursivo que se piensa aplicar, en vez de cmo hacerlo. Para esto se usar la modularidad, la cual se
basa en separar el problema en otros ms pequeos y hallar la solucin a estos para luego unirlos, como
es ususal en la programacin lgica.
Lo que se ha estado mostrando hasta ahora es, este sistema de resolver problemas de la programacin
lgica mediante la modularidad, entonces cmo puede ser aplicada sta en la recursin?
Si nuestro problema es obtener el rea de un cuadrado, lo que se debe hacer no es separar esta rea en
una de un tringulo o un crculo, sino en las reas de otros cuadrados, por lo cual se puede dar el valor
del rea del cuadrado con las medidas mnimas y de ah empezar a llamar recursivamente la funcin con
medidas mayores a sta. por ejemplo:
El rea de un cuadrado de rea de 2 unidades cuadradas es igual a cuatro veces el rea de un cuadrado
de 1 unidad cuadrada.
Y as se puede obtener resultados de un problema con solo definir los casos base y de ah realizar las
operaciones recursivamente.
En un mbito ms matemtico sta idea puede ser utilizada para resolver operaciones sencillas como es
el caso de las sumatorias o factoriales, en general cualquier operacin que requiera informacin del
resultado que generan valores inferiores al dado. Un ejemplo de sto podra ser el hallar las potencias de
dos dado el exponente en la funcin, lo cual puede ser hallado con el siguiente programa de prolog.
Aplicaciones
2. Prueba de teoremas de forma automtica, donde un programa genera nuevos teoremas sobre
una teora existente.
Bibliografa
Fernndez, G. F. (28 de 11 de 2004). Representacin del conocimiento en sistemas inteligentes. Recuperado el 12 de 12
de 2017, de http://dit.upm.es/~gfer/ssii/rcsi/rcsisu58.html