Nombre de la profesora: Ing. María Guadalupe Morales
Nava Semestre: 2023-1
Fecha de entrega: 9 de diciembre del 2022, CDMX
Índice 1. ¿Qué es un paradigma? 2. Tipos de paradigmas 2.1 Programación orientada en objetos 2.2 Programación lógica 2.3 Programación paralela 4. Bibliografía 1. ¿Qué es un paradigma? A lo largo de la historia, el término «paradigma» fue objeto de muchas interpretaciones. En su origen griego, significaba «modelo», «ejemplo» o «patrón». Sobre este punto de partida, podemos hablar de un paradigma como un conjunto de creencias, prácticas y conocimientos que guían el desarrollo de una disciplina durante un período de tiempo. En diversas ramas de la ciencia, un conjunto de ideas en vigencia puede ser reemplazado drásticamente por otro que entre en conflicto con él y se demuestre más acertado. La programación tiene sus propios paradigmas, pero el término «paradigma de programación» no necesariamente representa un modelo único que deba ser respetado hasta que aparezca otro mejor. De hecho, actualmente muchos paradigmas coexisten en armonía. Un paradigma de programación es un estilo de desarrollo de programas. Es decir, un modelo para resolver problemas computacionales. Los lenguajes de programación, necesariamente, se encuadran en uno o varios paradigmas a la vez a partir del tipo de órdenes que permiten implementar, algo que tiene una relación directa con su sintaxis. Algunos ejemplos de paradigmas son: • Imperativo: Los programas se componen de un conjunto de sentencias que cambian su estado. Son secuencias de comandos que ordenan acciones a la computadora. • Declarativo: Opuesto al imperativo. Los programas describen los resultados esperados sin listar explícitamente los pasos a llevar a cabo para alcanzarlos. • Lógico: El problema se modela con enunciados de lógica de primer orden. • Funcional: Los programas se componen de funciones, es decir, implementaciones de comportamiento que reciben un conjunto de datos de entrada y devuelven un valor de salida. • Orientado a objetos: El comportamiento del programa es llevado a cabo por objetos, entidades que representan elementos del problema a resolver y tienen atributos y comportamiento. 2. Tipos de paradigmas 2.1 Programación orientada en objetos En este modelo de paradigma se construyen modelos de objetos que representan elementos (objetos) del problema a resolver, que tienen características y funciones. Permite separar los diferentes componentes de un programa, simplificando así su creación, depuración y posteriores mejoras. La programación orientada a objetos disminuye los errores y promociona la reutilización del código. Es una manera especial de programar, que se acerca de alguna manera a cómo expresaríamos las cosas en la vida real. Podemos definir un objeto como una estructura abstracta que, de manera más fiable, describe un posible objeto del mundo real y su relación con el resto del mundo que lo rodea a través de interfaces. Ejemplos de lenguajes de programación orientados a objetos serían Java, Python o C#. La programación orientada a objetos se sirve de diferentes conceptos como: • Abstracción de datos • Encapsulación • Eventos • Modularidad • Herencia • Polimorfismo
2.2 Programación lógica
Paradigma de programación basado en la lógica de primer orden. La programación lógica estudia el uso de la lógica para el planteamiento de problemas y el control sobre las reglas de inferencia para alcanzar la solución automática. La programación lógica, junto con la funcional, forma parte de lo que se conoce como Programación Declarativa, es decir la programación consiste en indicar como resolver un problema mediante sentencias, en la Programación Lógica, se trabaja en una forma descriptiva, estableciendo relaciones entre entidades, indicando no como, sino que hacer, entonces se dice que la idea esencial de la programación lógica es:
Programa Lógica Control
¿Qué trata de resolver? Dado un problema S, saber si la afirmación A es solución o no del problema o en qué casos lo es. Además, queremos Determinaque las los métodos Formas sean alternativas implantados en máquinas de forma que la resolución del problema se haga de soluciones forma automática de ejecutar Logica producidas La programación lógica construye base de conocimientos mediante reglas y hechos. Características del Paradigma: • Unificación de términos. • Mecanismos de inferencia automática. • Recursion como estructura de control básica. • Visión lógica de la computación.
2.3 Programación paralela
El paralelismo es una técnica de computación basada en principios aparentemente simples: "Divida un gran problema en varios pequeños y resuélvalos al mismo tiempo" Esto permite ejecutar más instrucciones en menos tiempo. Pero cuando se pone en práctica, se trata de un tema muy complejo y varios grupos científicos de todo el mundo lo están investigando. La computación paralela es el uso de múltiples recursos computacionales para resolver un problema. Se distingue de la computación secuencial en que varias operaciones pueden ocurrir simultáneamente. El paralelismo clásico, o puesto de otra manera, el clásico uso del paralelismo es el de diseño de programas eficientes en el ámbito científico. La simulación de problemas científicos es un área de gran importancia, los cuales requieren de una gran capacidad de procesamiento y de espacio de memoria, debido a las complejas operaciones que se deben realizar. Otro uso clásico es el de las gráficas generadas por computadora. La generación de fotogramas requiere de una gran cantidad de cálculos matemáticos. Esto supone una tarea muy compleja para un solo procesador, luego es necesario que haya algún tipo de paralelismo, para distribuir la tarea para que esta sea realizada eficiente y eficazmente. ¿Por qué se hace programación paralela?
El hecho de que la programación paralela
sea un paradigma da cuenta de que existe una razón por la cual no ha dejado de ser necesaria o no ha sido totalmente automatizable, igualmente hay otras razones interesantes detrás para entender la existencia, actualidad y contemporaneidad de la programación paralela: Overclocking infinito: El overclokcing tiene un límite a pesar de que existiera una refrigeración perpetúa y adecuada del procesador. Esto es debido a las corrientes parásitas que impiden una velocidad teóricamente infinita a la cual los circuitos pueden cambiar entre estados, o de hecho sus transistores. Automatización del paralelismo: Se dice en este paradigma que el éxito es inversamente proporcional al número de Cores precisamente porque existen complejidades en el corazón del paralelismo que implican cosas que todavía no se pueden predecir ni con inteligencia artificial, en este mismo artículo de hecho se menciona cuáles son las posibles estrategias para atacar un problema de forma paralela, esto da cuenta de que existe una forma prácticamente determinada de abordarlos pero no se automatizarlos, a pesar de que sí existan algunas partes que son automatizables en el proceso. Solución en el hardware: Un diseño adecuado del hardware permitiría que la paralelización siempre estuviera presente con respecto a los procesadores que se están usando de tal modo que alguno los problemas que son inherentes al paradigma pudieran evitarse. Esto ha resultado imposible hasta la fecha, de hecho, solo diseñar solamente algo tan efectivo y tradicional como se ha hecho en programación secuencial es algo que no existe hasta ahora. Existen algunas aproximaciones como OpenMP de las que hablaremos más adelante 4. Bibliografía
Martínez C, M. (2020, 9 de junio). ¿Qué son los paradigmas de programación? Qué
vas as ver en esta entrada ¿Qué es un paradigma de programación? Paradigma imperativo Paradigma declarativo Programación orientada a objetos Programación reactiva Conclusión. profile. https://profile.es/blog/que-son-los-paradigmas-de- programacion/#:~:text=¿Qué%20es%20un%20paradigma%20de,resultados%20qu e%20necesitan%20los%20programadores. ¿Qué son los paradigmas de programación? | 4R Soluciones | Diseño, Desarrollo y Programación Web & Mobile. (2013, 22 de mayo). 4R Soluciones | Diseño, Desarrollo y Programación Web & Mobile. https://www.4rsoluciones.com/blog/que- son-los-paradigmas-de-programacion-2/ Programación lógica UNAL. (2020, 6 de mayo). Ferestrepoca.GitHub.io by ferestrepoca. https://ferestrepoca.github.io/paradigmas-de- programacion/proglogica/logica_teoria/index.html#hero