Entradas populares

martes, 23 de julio de 2013

CLASIFICACIÓN DE LOS PARADIGMAS


ASI NACE UN PARADIGMA. . .
Un científico cerró cinco monos en una jaula grande, en cuyo centro ubicó una escalera y en la cima de esta
puso un montón de bananas.


       Cuando un mono subía la escalera para agarrar las bananas, el científico lanzaba un chorro de agua fría sobre los monos que quedaban en el suelo.
Después de algún tiempo, cuando un mono iba a subir la escalera, los restantes le propinaban una paliza.
Motivo por lo cual, pasado un tiempo, a pesar de la tentación de las bananas, ningún mono optaba por subir la escalera.
       Luego, el científico sustituyó uno de los monos y este, el primero que hizo fue subir la escalera, siendo rápidamente bajado a palos por los otros.
Después de algunas palizas, el nuevo integrante del grupo ya no subió más la escalera.
       Un segundo mono fue sustituido, y ocurrió lo mismo.
El primer sustituto participó con entusiasmo de la paliza al novato.
Un tercero fue cambiado, y se repitió el hecho.
El cuarto y, finalmente, el último de los veteranos fue sustituido.
       El científico quedó, entonces, con un grupo de cinco monos que, aun cuando nunca recibieron un baño del chorro de agua fría, continuaban golpeando a aquel que intentase llegar a las bananas.
       Si fuese posible preguntar a algunos de ellos ¿Por qué le pegaban a quien intentase subir la escalera?, con certeza la respuesta sería:

"No sé, aquí las cosas siempre se han hecho así..."

..Te suena conocido...?
Pero así; nació un paradigma...!!
Te preguntaste por qué; hacemos las cosas de una manera,
si quizás podemos hacerlas de otra?
Pues bien. . .
cada, una de nuestras actividades diarias,..
Está guiada por un paradigma...!

ü CLASIFICACIÓN DE PARADIGMAS SEGUN FLOYD
A tal diversidad de criterios, se suma el hecho que, para resolver un problema, inexorablemente el paradigma a usar, debe ser codificado en un lenguaje de programación compatible con él y capaz soportar los mismos conceptos del propio paradigma.
Esta compatibilidad hace confundir los conceptos de paradigma y lenguaje de programación, mezclando al propio paradigma con su herramienta de proceso. Al respecto, para que no caer en este error conviene destacar que un mismo paradigma puede ser soportado por más de un lenguaje.
En dicha confusión cayó, Floyd cuando clasificó los paradigmas, de acuerdo a la capacidad de expresión, en tres categorías:

·      PARADIGMAS QUE SOPORTAN PROGRAMACION DE BAJO NIVEL:
La actividad de estos paradigmas es poco racional, alejada de la forma de pensar del programador, porque operan de manera similar a la forma al hardware del ordenador, del modo como lo hacen físicamente los componentes internos del computador.
Basados en tal cualidad, podemos afirmar que en este nivel operan, los lenguajes de segunda generación, tales como versiones primarias del BASIC, FORTRAN o COBOL, los cuales trataban de emular al LENGUAJE ENSAMBLADOR, perteneciente a la primera generación, capaz de comandar directamente en las mismísimas entrañas de la máquina, accediendo a los componentes del hardware disponible.
En sus orígenes dichos lenguajes no soportaban algoritmos con procedimientos y funciones, variables locales, ni punteros, tampoco listas, pilas, colas o árboles con asignación dinámica de memoria, minimizando así el diseño directo de algoritmos básicos. Que había que trabajar arduamente.
·      PARADIGMAS QUE SOPORTAN DISEÑO DE ALGORITMOS:
A este grupo pertenecen los lenguajes de 3ra generación, que ya poseen capacidad para manejar procedimientos, funciones, variables locales y punteros para la asignación dinámica de memoria.
Aunque el lenguaje C pertenece, por derecho de origen, a esta categoría, actualmente todos los lenguajes de programación, soportan con solvencia el manejo del diseño algorítmico.
Por otra parte, C por su flexibilidad también puede acceder a las entrañas de la CPU, por lo que sería, según Floyd, un lenguaje de bajo nivel.
El propio entorno de trabajo del lenguaje, permite generar automáticamente todo el código del programa, puedes generar, usando Delphi o C++ Builder o Visual C++, o Visual Basic, programas completos para administrar toda una base de datos. Sin escribir por consola, ni una sola línea de código.
·      PARADIGMAS QUE SOPORTAN PROGRAMACION DE ALTO NIVEL:
Estos paradigmas recurren para su codificación a los lenguajes orientados a objetos, que tiene como pionero a PROLOG, el cuál a la fecha ya es historia superada frente a la potencia del entornos actuales de programación, tales como Delphi o C++ Builder o Visual C++, o Visual o Basic, o J++Builder o Visual J++.
Para Floyd las soluciones de programación de alto nivel, pasan por usar la lógica como método de programación, por usar de reglas de producción y la programación funcional.
Estas variantes de la programación tradicional estarían soportadas por lenguajes, como PROLOG, ML, LISP, o entornos de Ingeniería del Conocimiento como ART, KC o KEE. Especialmente usados en el ámbito académico y escasamente en la industria.

ü CLASES DE PARADIGMAS: SEGUN TIPO DE PROGRAMACIÓN
Dado que los paradigmas, además son colecciones de modelos conceptuales que definen procesos de diseño, destinados a determinar la estructura, la sintaxis y la semántica de programas. Estos, considerando tal aspecto, pueden asimilarse a los siguientes tipos:
§  PROGRAMACION BASADO EN REGLAS:
De aplicación en la ingeniería del conocimiento para desarrollar sistemas expertos, con núcleo de reglas de producción del tipo if then.
§  PROGRAMACIÓN LÓGICA:
Entorno de programación conversacional, deductivo, simbólico y no determinista apoyada en asertos y reglas lógicas.
§  PROGRAMACIÓN FUNCIONAL:
Entorno de programación interpretativo, funcional y aplicativo, de formato funcional.
§  PROGRAMACIÓN HEURÍSTICA:
Moldean los problemas para aplicar heurísticas según sistemas de visualización, búsqueda y métodos de solución. Pueden ser:
v Programación Paralela
v Programación Orientado a Objetos
v Programación Basado en Restricciones
v Programación Basado en Flujo de Datos


ü CLASIFICACIÓN DE PARADIGMAS SEGÙN AMBLER
Para clasificar cada paradigma, toma como parámetro su manera lograr la solución al problema, por lo tanto, de acuerdo al tipo de solución aplicada pueden existir las siguientes categorías:

      Solución        =>    Paradigma 

     PROCEDIMENTAL    =>   PROCEDIMENTAL

     DEMOSTRATIVA     =>   DEMOSTRATIVO

     DECLARATIVA      =>   DECLARATIVO

·      SOLUCIÓN PROCEDIMENTAL U OPERACIONAL
Describe las etapas necesarias para construir soluciones, señalando la forma de cómo obtenerlas. Se determina etapa a etapa el modo de construir la solución, describiendo cómo obtener un resultado a partir de un estado inicial.
En esta categoría se incluyen los lenguajes clásicos de la primera a tercera generación, incluyendo los orientados a objetos y los funcionales, que requieren desarrollar técnicas de depuración y verificación del funcionamiento del programa.
Los paradigmas procedimentales u operacionales, promueven secuencias computacionales, donde las variables que se relacionan con direcciones de memoria, pueden ser:
       MODIFICADAS: CON EFECTO DE LADO
Que actualiza iterando datos y direcciones de memoria de variables, registrando múltiples asignaciones hasta lograr el resultado. Sus tipos son:
       NO MODIFICADAS: SIN EFECTO DE LADO
Son aquellos que van creando continuamente nuevos datos.

2.  SOLUCIÓN DEMOSTRATIVA:
Plantea la solución describiendo ejemplos y promueve que el sistema generalice la solución de tales ejemplos para otros casos.
Bajo este entorno denominado también PARADIGMA por EJEMPLO, la solución a un problema se logra aplicando la PROGRAMACION por EJEMPLO o DEMOSTRATIVA, donde el programador no requiere especificar procedimentalmente cómo lograr la solución, sino que resuelve programas similares, generalizando soluciones, ya sea por medio de simulación o por inferencias.   

.
ü CLASES DE PARADIGMAS: POR EFECTO DE LADO
       PARADIGMA IMPERATIVO:
Procedimental con efecto de lado, representado por la arquitectura de Von Neumman.
Algoritmo + Estructura de datos = Programa
       PARADIGMA FUNCIONAL:
Procedimental sin efecto de lado, basado en el modelo matemático de composición de funciones.
Funciones + Estructura de datos = Programa
       PARADIGMA LOGICO:
Seudo declarativo, basado en conjuntos de hechos y reglas lógicas pre establecidas.
Lógica + Control de datos = Programa
       PARADIGMA ORIENTADO A OBJETO:
Procedimental con efecto de lado
       PARADIGMA HEURISTICO:
Basado en reglas de buena lógica.