Unidad 1: Paradigmas de Programación: Conceptos
Unidad 1: Paradigmas de Programación: Conceptos
Unidad 1: Paradigmas de Programación: Conceptos
Paradigmas
Robert Floyd los definió como un proceso de diseño que va más allá de una gramática,
reglas semánticas y algoritmos, sino que es un conjunto de métodos sistemáticos
aplicables en todos los niveles del diseño de programas. Esto es
Representan un enfoque particular o filosofía para la construcción del software. No
es mejor uno que otro sino que cada uno tiene ventajas y desventajas. También hay
situaciones donde un paradigma resulta más apropiado que otro.
En la programación declarativa solo se describe el problema pero no los pasos necesarios para
llegar a su solución, la cual es hallada mediante mecanismos internos de inferencia de
información a partir de la descripción del problema en sí.
El siguiente cuadro describe las principales diferencias entre ambos paradigmas
PARADIGMA FUNCIONAL
Es un tipo de paradigma declarativo. Está basado en el concepto matemático de función:
El paradigma funcional considera al programa como una función matemática, donde el dominio
representaría el conjunto de todas las entradas posibles (inputs) y el rango sería el conjunto de
todas las salidas posibles (outputs). La forma en que funciona puede ser entendida como una
caja negra
Al observar la figura anterior, podríamos pensar que cualquier tipo de programación podría ser
clasificada como programación funcional y esto es relativamente cierto a excepción de unos
puntos claves:
En los lenguajes funcionales no existe el concepto de variables y consecuentemente tampoco
existen operaciones de asignación. Aunque podría parecer que los parámetros de una función se
comportan como una variable (puesto que pueden llevar un nombre y su uso es de hecho
parecido al de las variables), esto es incorrecto: El valor de los parámetros es dado como fijo al
inicio de la función.
La existencia de una propiedad llamada transparencia referencial (Referential transparency) que
indica que una función sólo depende de sus parámetros y que tendrá efecto únicamente en su
resultado, por lo que podríamos llamar a una función arbitrariamente sin tener efectos
colaterales en el resto de las computaciones.
Una función puede ser utilizada como parámetros y resultados de cualquier otra función. Los
lenguajes más utilizados dentro de este paradigma son Standard ML,Haskell y Scheme.
PARADIGMA LÓGICO
Es un tipo de paradigma imperativo en el cual las variables claves de desarrollo son entidades
denominadas objetos, las cuales a su vez agrupan internamente conjuntos de variables
denominadas atributos y conjuntos de funciones o procedimientos denominados operaciones.
Las operaciones de los objetos definen sus responsabilidades o comportamiento. El conjunto de
los valores asignados a los atributos del objeto se denomina estado. El otro aspecto fundamental
de este paradigma es el estudio de las interrelaciones entre objetos. Cuando un objeto necesita
un servicio (un método de un objeto) que brinda otro objeto, el primero se lo solicita por medio
un mensaje. De esta forma una aplicación orientada a objetos es una secuencia de mensajes que
los objetos se envían entre sí para colaborar en la realización de una tarea específica. La forma
en que se realiza el envío y respuesta de mensajes depende del lenguaje de programación, a esto
se denomina protocolo de mensajes.
EJEMPLOS DE LENGUAJES PARA DIVEROSS PARADIGMAS
Algunos lenguajes de programación pueden soportar múltiples paradigmas de programación.
Por ejemplo, C++ puede ser empleado para desarrollar software utilizando para ello un modelo