04 - Paradigmas de Programacion
04 - Paradigmas de Programacion
Programación
• Ventajas:
– Facilitan el enfoque en problemas
específicos.
– Mejoran la mantenibilidad del código.
– Facilitan la organización del código.
– Permiten reutilización y modularidad.
– Adaptados a distintos tipos de tareas.
• Desventajas:
– Pueden limitar la flexibilidad cuando se
intenta aplicar un paradigma inapropiado.
– Algunos paradigmas tienen mayor curva
de aprendizaje, lo que significa que
pueden ser complejos de aprender.
– No siempre son eficientes para todas las
aplicaciones.
Paradigma Imperativo
• El paradigma imperativo se enfoca
en describir cómo se realizan las
tareas mediante instrucciones claras
y detalladas
– Ejemplos: C, C++, Java, Python
(estructurado)
• Sub-Paradigmas:
– Programación Estructurada:
Uso de bloques y de estructuras
de control (if, for, while).
– Programación Procedimental:
División en procedimientos o
funciones.
– Programación Modular:
División en módulos
independientes.
Paradigma
Declarativo
• El paradigma declarativo se enfoca
en el resultado deseado en lugar de
los pasos específicos para lograrlo.
• El paradigma declarativo describe
el 'qué' se desea obtener en lugar
del 'cómo' obtenerlo.
– Ejemplos: SQL (consultas),
Prolog (lógica)
• Sub-Paradigmas:
– Programación Lógica: Uso
basado en reglas y hechos
(Prolog).
– Programación Funcional: Uso
de funciones puras, evitación de
estados (Haskell, Lisp).
• La POO organiza el software en objetos
que contienen datos y métodos. Se centra
en el uso de objetos que contienen
atributos únicos pero también heredables
y métodos o acciones del objeto.
• Características:
– Abstracción: Ocultar detalles internos.
– Encapsulamiento: Proteger datos.
Programación – Herencia: Reutilización de código.
– Polimorfismo: Uso de múltiples
Orientada a formas.
• Conceptos Clave:
Objetos (POO) – Clases y Objetos: Plantillas y sus
instancias.
– Encapsulamiento: Protección de
datos.
– Herencia: Reutilización de código
mediante clases derivadas.
– Polimorfismo: Uso de métodos
comunes con distintas
implementaciones.
• Ejemplos: Java, C#, Python.
• Este paradigma responde enfocado en
la respuesta a eventos o cambios en el
entorno.
• Características:
– Asincronía: Procesamiento
concurrente para mejorar la
Programación experiencia del usuario, lo que
Reactiva o por permite el manejo asincrónico de
eventos.
Eventos – Event Handling: Respuesta a
eventos del usuario. Respuesta en
tiempo real.
• Ejemplos: JavaScript (Event-Driven) -
JavaScript en aplicaciones web
interactivas-, RxJava.