1. ¿Que es un paradigma?
1.1. conjunto de creencias, prácticas y conocimientos que guían el desarrollo de una disciplina durante un período de tiempo
1.2. Paradigma en programación
1.2.1. son modelos, patrones,metodologías,técnicas,patrones
1.2.2. que moldean la forma de razonar sobre:
1.2.2.1. problemas
1.2.2.2. de formular soluciones
1.2.2.3. y de estructurar programas
2. Tipos de Paradigmas
2.1. Imperativo
2.1.1. Describe cómo debe realizarse el cálculo
2.1.2. Consiste en una serie de sentencias,que se ejecutan una y otra vez
2.1.3. Ejm. Lenguaje representativo sería:
2.1.3.1. FORTRAN-77
2.1.3.1.1. COBOL
2.1.3.2. BASIC
2.1.3.2.1. PASCAL
2.1.3.3. C
2.1.3.3.1. ADA
2.1.4. También lo implementan
2.1.4.1. JAVA
2.1.4.1.1. EIFFEL
2.1.4.2. C++, C#
2.1.4.2.1. PYTHON
2.2. Declarativo
2.2.1. Describe que se debe cálcular, sin explicitar el cómo.
2.2.2. Las variables son nombres asociados a definiciones, y una vez instanciadas son inmutables.
2.3. Funcional
2.3.1. Las sentencias son funciones en el sentido matemático
2.3.2. Basado en los modelos de cómputo
2.3.2.1. cálculo lambda (Lisp, Scheme)
2.3.2.2. y lógica combinatoria (familia ML, Haskell)
2.4. Lógica
2.4.1. Basado en la lógica de predicados
2.4.1.1. consiste en declarar una serie de hechos (elementos conocidos, relación de objetos concretos) y reglas (relación general entre objetos que cumplen unas propiedades) y luego preguntar por un resultado.
2.4.2. Lenguaje representativo: PROLOG
2.5. Programación Reactiva(Dataflow)
2.5.1. Basado en la teoria de grafos.
2.5.1.1. un grafo es una par (V,E) donde V es un conjunto de vértices y E es un conjunto de aristas, junto con una relación que relaciona dos vértices a través de una arista
2.5.2. Lenguajes representativos: Simulink, Oz, Clojure.
2.6. Orientada a Objetos(POO)
2.6.1. puede ser tanto imperativo como funcional o lógica
2.6.2. maneja la información en 3 conceptos
2.6.2.1. CLase
2.6.2.1.1. tipo de dato tiene propiedades y una función
2.6.2.2. Objeto
2.6.2.2.1. entidad de una clase con valores en sus propiedades e interacción con otros objetos
2.6.2.3. Herencia
2.6.2.3.1. propiedad que permite crear nuevas clases a partir de clases ya existentes