martes, 14 de julio de 2009

paradigmas de programacion

Definición Teórica

Un paradigma está constituido por los supuestos teóricos generales, las leyes y las técnicas para su aplicación que adoptan los miembros de una determinada comunidad científica.

-Las leyes explícitamente establecidas y los supuestos teóricos. Por ejemplo, las leyes de movimiento de Newton forman parte del paradigma newtoniano y las ecuaciones de Maxwell forman parte del paradigma que constituye la teoría electromagnética clásica.

-El instrumental y las técnicas instrumentales necesarios para hacer que las leyes del paradigma se refieran al mundo real. La aplicación en astronomía del paradigma newtoniano requiere el uso de diversos telescopios, junto con técnicas para su utilización y diversas técnicas para corregir los datos recopilados.

-Un componente adicional de los paradigmas lo constituyen algunos principios metafísicos muy generales que guían el trabajo dentro del paradigma. Todos los paradigmas, además, contienen prescripciones metodológicas muy generales tales como: "Hay que intentar seriamente compaginar el paradigma con la naturaleza".


Podemos decir que, los paradigmas son marcos de referencia que imponen reglas sobre cómo se deben hacer las cosas, indican qué es válido dentro del paradigma y qué está fuera de sus límites. Un paradigma distinto implica nuevas reglas, elementos, límites y maneras de pensar, o sea implica un cambio. Los paradigmas pueden ser considerados como patrones de pensamiento para la resolución de problemas. Desde luego siempre teniendo en cuenta los lenguajes de programación, según nuestro interés de estudio.


Paradigmas de Programación: 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.


Ejemplos de paradigmas de programación:


- El paradigma imperativo es considerado el más común y está representado, por ejemplo, por el C o por BASIC.

- El paradigma funcional está representado por la familia de lenguajes LISP, en particular Scheme o Haskell.


Tipos de Paradigmas de Programación

Hoy, mediados del año 2004, después de leer bibliografías donde autores clasifican los paradigmas de modos similares, siempre destacan el imperativo, el orientado a objetos, el funcional y el lógico. Algunos autores o profesores, mencionan paradigmas heurísticos, concurrentes, procedimentales, declarativos y demostrativos. Por ejemplo dicen:


1. Paradigmas Imperativo: Modelo abstracto que consiste en un gran almacenamiento de memoria donde la computadora almacena una representación codificada de un cálculo y ejecuta una secuencia de comandos que modifican el contenido de ese almacenamiento. Algoritmos + Estructura de Datos = Programa.

2. Paradigmas Procedimentales - Modelos de Desarrollo: Orientado a Objetos, a Eventos, y a Agentes. Secuencia computacional realizada etapa a etapa para resolver el problema. Su mayor dificultad reside en determinar si el valor computado es una solución correcta del problema.

3. Paradigmas Declarativos. - Modelos de Desarrollo: Funcional, Lógico y de Flujo de Datos. Se construye señalando hechos, reglas, restricciones, ecuaciones, transformaciones y otras propiedades derivadas del conjunto de valores que configuran la solución.

4. Paradigmas Demostrativos.- Modelos de Desarrollo: Genético. Cuando se programa bajo un paradigma demostrativo (también llamada programación por ejemplos), el programador no especifica procedimentalmente cómo construir una solución sino que presentan soluciones de problemas similares.

5. Paradigmas Funcional: Modelo matemático de composición funcional donde el resultado de un cálculo es la entrada del siguiente, y así sucesivamente hasta que una composición produce el valor deseado.

6. Paradigma Orientado a Objeto: disciplina de ingeniería de desarrollo y modelado de software que permite construir más fácilmente sistemas complejos a partir de componentes individuales. Objetos + Mensajes = Programa.


Una Clasificación de Paradigmas de Programación


Paradigma imperativo: Son aquellos que facilitan los cálculos por medio de cambios de estado, entendiendo como estado la condición de una memoria de almacenamiento. Los lenguajes estructurados en bloques, se refieren a los ámbitos anidados, es decir los bloques pueden estar anidados dentro de otros bloques y contener sus propias variables. La RAM representa una pila con una referencia al bloque que está actualmente activo en la parte superior.


Paradigma heurístico: Define un modelo de resolución de problemas en el que se incorpora algún componente heurístico, sobre la base de una representación más apropiada de la estructura del problema, para su resolución con técnicas heurísticas.


Paradigma concurrente: La programación distribuida ha sido dividida en dos amplias categorías, sistemas acoplados en forma débil o fuerte. El término distribuido se refiere por lo general a lenguajes para sistemas acoplados débilmente que soportan un grupo de programadores trabajando en un programa particular de manera simultánea y comunicándose a través de paso de mensajes mediante un canal de comunicación. Un sistema acoplado fuertemente permite que más de un proceso en ejecución tenga acceso a la misma ubicación de memoria. Un lenguaje acoplado con el sistema debe sincronizar el uso compartido de la memoria, de modo que solo un proceso escriba una variable compartida a la vez, y de modo que un proceso pueda esperar hasta que ciertas condiciones se satisfagan por completo antes de continuar la ejecución. La memoria compartida tiene la ventaja de la velocidad, por que no se necesita pasar mensajes.


Paradigma funcional: Como su nombre lo dice operan solamente a través de funciones. Cada función devuelve un solo valor, dada una lista de parámetros. No se permiten asignaciones globales, llamados efectos colaterales. La programación funcional proporciona la capacidad para que un programa se modifique así mismo, es decir que pueda aprender.


Paradigma lógico: Esta programación se basada en un subconjunto del cálculo de predicados, incluyendo instrucciones escritas en formas conocidas como cláusulas de Horn. Este paradigma puede deducir nuevos hechos a partir de otros hechos conocidos. Un sistema de cláusulas de Horn permite un método particularmente mecánico de demostración llamado resolución.


Paradigma basado en objetos: Describen los lenguajes que soportan objetos en interacción. Un objeto es un grupo de procedimientos que comparten un estado. El término de orientado a objetos fue utilizado originalmente para distinguir aquellos lenguajes basados en objetos que soportaban clases de objetos y la herencia de atributos de un objeto padre por parte de sus hijos.

No hay comentarios:

Publicar un comentario