jueves, 20 de noviembre de 2014

PROGRAMACION FUNDAMENTAL Y PROGRAMACION LOGICA

PROGRAMACIÓN LOGICA
La programación lógica es un paradigma de programación basado en la lógica de primer orden. Sí, esa lógica que te enseñan en el instituto (al menos en mis tiempos) y en la carrera donde tienes predicados y, mediante reglas, puedes derivar conclusiones:

En un programa lógico generalmente se definen un hechos y reglas, lo que se suele llamar base de conocimiento, y a partir de ellos, se pueden “obtener respuestas”. Vamos a verlo con un ejemplo sencillo en pseudo-prolog en el que definimos la nacionalidad de varias personas y las relaciones de pertenencia entre paises y continentes.

1
2
3
4
5
6
7
8
9
10
11
12
13
% Hechos:
es_español("Manolo").
es_italiano("Marco").
es_colombiano("Marcelo").
 
% Reglas:
es_europeo(A) :- es_español(A).
es_europeo(A) :- es_italiano(A).
es_americano(A) :- es_colombiano(A).
es_terricola(A) :- es_europeo(A).
es_terricola(A) :- es_americano(A).
son_del_mismo_continente(A,B) :- es_europeo(A), es_europeo(B).
son_del_mismo_continente(A,B) :- es_americano(A), es_americano(B).


PROGRAMACION FUNCIONAL



En ciencias de la computación, la programación funcional es un paradigma de programacióndeclarativa basado en la utilización de funciones aritméticas que no maneja datos mutables o de estado. Enfatiza la aplicación de funciones, en contraste con el estilo de programación imperativa, que enfatiza los cambios de estado. La programación funcional tiene sus raíces en el cálculo lambda, un sistema formal desarrollado en los años 1930 para investigar la definición de función






Características


Los programas escritos en un lenguaje funcional están constituidos únicamente por definiciones de funciones, entendiendo éstas no como subprogramas clásicos de un lenguaje imperativo, sino como funciones puramente matemáticas, en las que se verifican ciertas propiedades como la transparencia referencial


Otras características propias de estos lenguajes son la no existencia de asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteración


Existen dos grandes categorías de lenguajes funcionales: los funcionales puros y loshíbridos. La diferencia entre ambos estriba en que los lenguajes funcionales híbridos son menos dogmáticos que los puros, al admitir conceptos tomados de los lenguajes imperativos, como las secuencias de instrucciones o la asignación de variables. En contraste, los lenguajes funcionales puros tienen una mayor potencia expresiva, conservando a la vez su transparencia referencial,





No hay comentarios.:

Publicar un comentario