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,





programacion orientada

programación orientada a objetos

La programación orientada a objetos o POO (OOP según sus siglas en inglés) es unparadigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos.



Origen



Los conceptos de la programación orientada a objetos tienen origen en Simula 67, un lenguaje diseñado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard, del Centro de Cómputo Noruego en Oslo.

Conceptos fundamentales



La programación orientada a objetos es una forma de programar que trata de encontrar una solución a estos problemas. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:

Clase
Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ella.

Herencia
(Por ejemplo, herencia de la clase C a la clase D) es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables públicas declaradas en C.