Vous êtes sur la page 1sur 5

Instituto Tecnolgico de Piedras Negras

Ingeniera en Sistemas Computacionales




Materia: Administracin de Base de Datos
Docente: Ing. Mara Guadalupe Njera Lozano
Nombre(s): Enrique Mendoza Hernndez
Semestre: 8
No. de Control:10430016 Pgina 1



Nombre de la actividad: Lenguajes de Programacin Funcional Fecha de Entrega: 06/05/14
La programacin lgica es un intento de definir un estilo de programacin
alternativo al estilo convencional de von Neumann. En l, el programador
describe indirectamente un proceso, definiendo un conjunto de asertos o
condiciones, las cuales deben ser satisfechas en orden a que el proceso
complete su tarea. El propio algoritmo resultante no est completamente bajo
el control del programador, sino que el programador debe conocer el
mecanismo de control subyacente para especificar un conjunto correcto de
asertos. La programacin lgica es, por su naturaleza poco corriente, difcil de
asimilar por las personas que se han formado en el estilo de von Neumann. El
lenguaje Prolog (programming in logic) representa un estilo relativamente
nuevo de programacin. Diseado principalmente para las aplicaciones de
inteligencia artificial, el estilo del Prolog se basa en la nocin de definir objetos
y relaciones de inferencia entre clases de objetos. Tiene unos fuertes
fundamentos tericos en el clculo de proposiciones. La programacin lgica es
aquel tipo de programacin que permite al software razonar, esto es, hacer
razonamientos, por ejemplo, de tipo deductivo o inductivo. Dada una base de
datos consistente en un conjunto de entidades, propiedades de esas entidades
y relaciones de unas entidades con otras, el sistema es capaz de hacer
razonamientos. Bsicamente, este proceso se expresa de la siguiente forma:

Instituto Tecnolgico de Piedras Negras
Ingeniera en Sistemas Computacionales


Materia: Administracin de Base de Datos
Docente: Ing. Mara Guadalupe Njera Lozano
Nombre(s): Enrique Mendoza Hernndez
Semestre: 8
No. de Control:10430016 Pgina 2



Donde entendemos que hechos es el conjunto de datos que conoce el
sistema a priori(o que va adquiriendo a lo largo de su ejecucin) y reglas son
un conjunto de operaciones que se pueden aplicar a dichos datos para sacar un
resultado lgico.
ALF (Another logical framework)
Este lenguaje combina la programacin lgica con la programacin funcional
(funcional basado en la evaluacin de expresiones y funciones matemticas
ms que en la utilizacin de comandos como <alloc>, <malloc>).
Al igual que Prolog, ALF est basado en clusulas de Horn (por eso es
programacin lgica) pero tambin en funciones y ecuaciones (y por esto es
tambin
La base del procesamiento de ALF es resolution-narrowing-rewriting-
rejection. ALF usa reglas de resolucin para evaluar los literales y reglas de
estrechamiento( narrowing) para evaluar las expresiones funcionales. Esto lo
hace buscando en un rbol, que es una representacin del lenguaje. Como el
proceso de narrowing puede ser largo, se usan tcnicas de leftmost-
innermost basic narrowing, que son ms eficientes (el final de la expresin
que se evala primero siempre es un cierre de parntesis, el primer cierre y
despus de evaluar esta expresin, se sustituye todo l por el resultado al que
se ha llegado, y se sigue procesando el siguiente parntesis). Adems, las
expresiones sufren un proceso de reescritura (rewriting) antes de ser
procesadas por las reglas de narrowing y las ecuaciones cuyos dos lados de la
igualdad no tengan el mismo nodo como origen son rechazadas (rejected).
Estos dos pasos previos, hacen que la bsqueda sea mucho ms eficiente.
Instituto Tecnolgico de Piedras Negras
Ingeniera en Sistemas Computacionales


Materia: Administracin de Base de Datos
Docente: Ing. Mara Guadalupe Njera Lozano
Nombre(s): Enrique Mendoza Hernndez
Semestre: 8
No. de Control:10430016 Pgina 3



Adems ALF usabacktracking con bsqueda en profundidad en el rbol de
derivaciones.
Ejemplo de narrowing:
Se definen las reglas: s(M)+N=s(M+N)) ; 0+N=N ;
Tenemos la expresin: X + s(0) = s(s(0))
Primer paso de narrowing:
Si X=s(Y) S(Y+s(0)) = s(s(0))
Segundo paso de narrowing: (unificacin)
Y+s(0) = s(0) Y=0 Solucin: X=s(0)

Gdel programming language
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.
Es un buen lenguaje para tareas de meta-programacin, tales como
compilacin, depuracin, anlisis, verificacin o transformacin de programas,
ya que es mucho ms declarativo que Prolog, por ejemplo. Como curiosidad, se
puede destacar que este lenguaje no funciona en un entorno Windows.
MODULE GCD.
IMPORT Integers.
PREDICATE Gcd: Integer * Integer * Integer.
Gcd (I , j , d ) <-
CommonDivisor (i,j,d) &
~ SOME [e] (CommonDivisor (I , j ,e) & e > d).
Instituto Tecnolgico de Piedras Negras
Ingeniera en Sistemas Computacionales


Materia: Administracin de Base de Datos
Docente: Ing. Mara Guadalupe Njera Lozano
Nombre(s): Enrique Mendoza Hernndez
Semestre: 8
No. de Control:10430016 Pgina 4



PREDICATE CommonDivisor: Integer * Integer * Integer.
CommonDivisor (I , j,d ) <-
IF (i = 0 \/ j = 0)
THEN
d = Max (Abs (I ) , Abs(j))
ELSE
1 =< d =< Min (Abs (i),Abs(j)) &
i Mod d = 0 &
j Mod d = 0.

Mercury programming language
Mercury es un lenguaje de alto nivel (es decir, no se preocupa de problemas
como la reserva y liberacin de memoria) derivado de Prolog, pero con una
implementacin que le hace ser ms til para representar y tratar problemas
del mundo real. Combina toda la expresividad del lenguaje declarativo con
avanzadas tcnicas de anlisis esttico y deteccin de errores. Es un lenguaje
compilado, lo que le permite detectar numerosos errores antes de poder
ejecutar la aplicacin. El compilador traduce el programa de lenguaje Mercury
a C, que es un lenguaje portable a cualquier plataforma. Adems, al igual que el
lenguaje de Gdel, Mercury es un lenguaje que utiliza mdulos, lo que da una
gran modularidad en el desarrollo de aplicaciones, solventando as uno de los
mayores problemas a los que se enfrentaban los lenguajes de programacin
lgicos.

Conclusiones : Como vemos el lenguaje Prolog no es el nico en cuanto a
lenguajes aplicados a la programacin lgica sin embargo si es de los ms
utilizados ya que en sus inicio todos estos fueron derivados de prologo tienen
en sus fundamentos teoremas aplicados que forman parte de Prolog. Estos
aplicacin ciertas caractersticas que los hacen similares en cuanto a
funcionamientos pero se declaran de manera diferente o utilizan mdulos para
poder compilar Como en su teora lo dice que son difciles de aprender por la
Instituto Tecnolgico de Piedras Negras
Ingeniera en Sistemas Computacionales


Materia: Administracin de Base de Datos
Docente: Ing. Mara Guadalupe Njera Lozano
Nombre(s): Enrique Mendoza Hernndez
Semestre: 8
No. de Control:10430016 Pgina 5



lgica que aplica y es importante al menos buscar ejemplos que demuestren su
funcionamiento.

Referencias Bibliogrficas
Autor EDUARDO FERNNDEZ MATAMALA, Documento [En linea]. 24-Octubre-2007 [Fecha de consulta: 04/05/2014 Disponible en
http://www.cuvalles.udg.mx/academiainformatica/pags/cursos/quinto/CC208%20Lenguajes%20Programaci%F3n%20Co
mparados%20Ciclo%20IV/Apendices/No.%202.pdf

Autor ACADEMIA INFORMATICA Documento [En linea]. 16-abril-2010 [Fecha de consulta: 04/05/2014 Disponible en
http://www.it.uc3m.es/jvillena/irc/practicas/estudios/Lenguajes_Logicos.pdf

Vous aimerez peut-être aussi