LENGUAJES DECLARATIVOS

El programador no describe una secuencia sucesiva de instrucciones, sino que describe las características del problema a resolver.
Este tipo se divide a su vez en:
o
Programación
funcional: el programa esta compuesto de un conjunto de primitivas sobre
las que el programador define funciones, que a su vez utiliza para definir
otras. Se suele utilizar mucho el
concepto de recursividad. La ejecución del programa se produce cuando se le
asigna valores a los parámetros de una función. El lenguaje de este tipo por excelencia
es Lisp. ejemplo
Función para calcular el factorial de un número natural en Haskell
factorial 0 = 1
factorial (n+1) = (n+1)*(factorial n)

o
Programación lógica: el programa está
formado por una serie de aciertos y declaraciones y el sistema responde a las
preguntas planteadas utilizando las
reglas de la lógica para establecer deducciones. El lenguaje mas utilizado
Prolog

Ejemplo:
Función para calcular el factorial de un número natural en
Prolog:
factorial(0,1).
factorial(N,F):- diferencia(N,1,N1),
factorial(N1,F1),
producto(N,F1,F).
Árbol de resolución parafactorial(3,F )
f(3,F ).
d(3,1,N1),f(N1,F1),p(3,F1,F).
... {N1/2}
f(2,F1),p(3,F1,F).
d(2,1,N2),f(N2,F2),p(2,F2,F1),p(3,F1,F).
... {N2/1}
f(1,F2),p(2,F2,F1),p(3,F1,F).
d(1,1,N3),f(N3,F3),p(1,F3,F2),p(2,F2,F1),p(3,F1,F).
... {N3/0}
f(0,F3),p(1,F3,F2),p(2,F2,F1),p(3,F1,F). {F3/1}
p(1,1,F2),p(2,F2,F1),p(3,F1,F). ... {F2/1}
p(2,1,F1),p(3,F1,F). ... {F1/2}
p(3,2,F). ... {F/6}
No hay comentarios:
Publicar un comentario