sábado, 22 de diciembre de 2012

LENGUAJE DE PROGRAMACIÓN

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