COLEGIO NACIONAL DE QUIINDY – GABINETE DE INF.
LABORATORIO - 2º BTI
GUÍA DE TRABAJO
CAPACIDAD: Distingue tipos de paradigmas de programación.
TEMA: Paradigmas de programación
FECHA: 21/05/2024
INDICADORES:
1- Conoce el concepto de paradigmas.
2- Reconoce tipos de paradigmas según sus características.
3- Identifica ventajas y desventajas de cada paradigma estudiada
4- Reconoce la importancia de los paradigmas en la programación para la resolución de
problemas.
5- Demuestra interés en el tema.
Leo con atención la siguiente información
PARADIGMAS DE PROGRAMACIÓN
Un paradigma de programación es una manera o estilo de programación de
software. En otros términos se puede decir que es un modelo básico de diseño y
desarrollo de programas.
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.
Se trata de un conjunto de métodos sistemáticos aplicables en todos los
niveles del diseño de programas para resolver problemas computacionales.
Existen diferentes formas de diseñar un lenguaje de programación y varios
modos de trabajar para obtener los resultados que necesitan los programadores.
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.
Los lenguajes de programación adoptan uno o varios paradigmas en
función del tipo de órdenes que permiten implementar como, por ejemplo, Python
o JavaScript, que son multiparadigmas.
Tipos de paradigmas de programación:
Podemos clasificar los paradigmas de programación en:
COLEGIO NACIONAL DE QUIINDY – GABINETE DE INF. LABORATORIO - 2º BTI
Paradigmas imperativos
Consisten en una sucesión de instrucciones o conjunto de sentencias,
como si el programador diera órdenes concretas. El desarrollador describe en el
código paso por paso todo lo que hará su programa.
Describe la programación como una secuencia instrucciones o comandos que
cambian el estado de un programa. El código máquina en general está basado en el
paradigma imperativo. Su contrario es el paradigma declarativo. En este paradigma se
incluye el paradigma procedimental (procedural) entre otros.
El objetivo es conseguir lenguajes expresivos y ''matemáticamente elegantes'', en
los que no sea necesario bajar al nivel de la máquina para describir el proceso llevado a
cabo por el programa, y evitando el concepto de ''estado'' del cómputo.
La secuencia de computaciones llevadas a cabo por el programa se regiría única y
exclusivamente por la ''reescritura'' de definiciones más amplias a otras cada vez más
concretas y definidas, usando lo que se denominan ''definiciones dirigidas''.
CARACTERÍSTICAS:
- Describe cómo debe realizarse el cálculo, no el por qué.
- Un cómputo consiste en una serie de sentencias, ejecutadas según un control de
flujo explícito, que modifican el estado del programa.
- Las variables son celdas de memoria que contienen datos o referencias, pueden
ser modificadas, y representan el estado del programa.
- La sentencia principal es la asignación.
Algunos de los lenguajes imperativos son: C, C#, Basic, Java, Perl, etc.
Otros enfoques subordinados al paradigma de programación imperativa son:
Paradigma estructurado :
La programación estructurada se basa en una metodología de desarrollo de
programas llamada refinamientos sucesivos: Se plantea una operación como un
todo y se divide en segmentos más sencillos o de menor complejidad. Una vez
terminado todos los segmentos del programa, se procede a unificar las
aplicaciones realizadas por el programador.
La programación estructurada es un tipo de programación imperativa donde el
flujo de control se define mediante bucles anidados, condicionales y subrutinas,
en lugar de a través de GOTO.
El paradigma estructurado es con el que todos aprendimos a programar es el
secuencial o estructurado, aquí las instrucciones van de arriba hacia abajo, no tenemos
que abstraer cosas complejas, simplemente damos ordenes una tras otra.
COLEGIO NACIONAL DE QUIINDY – GABINETE DE INF. LABORATORIO - 2º BTI
Programación procedimental :
Este paradigma de programación consiste en basarse en un número muy
bajo de expresiones repetidas, englobarlas todas en un procedimiento o
función y llamarlo cada vez que tenga que ejecutarse.
Programación modular:
Consiste en dividir un programa en módulos o subprogramas con el fin de
hacerlo más manejable y legible. Se trata de una evolución de la
programación estructurada para resolver problemas de programación más
complejos.
Paradigma orientado a objetos (POO):
La programación orientada a objetos (OOP, por las siglas inglesas de Object-Oriented
Programming) es una forma de programar que proliferó a partir de los años ochenta.
La programación orientada a objetos, intenta simular el mundo real a través del
significado de objetos que contiene características y funciones. Los lenguajes orientados
a objetos se clasifican como lenguajes de quinta generación.
Características
La Programación Orientada a Objetos (POO u OOP según siglas en inglés) es un
paradigma de programación que define los programas en términos de "clases de objetos",
objetos que son entidades que combinan estado (es decir, datos), comportamiento (esto
es, procedimientos o métodos) e identidad (propiedad del objeto que lo diferencia del
resto).
La programación orientada a objetos expresa un programa como un conjunto de estos
objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas
y módulos más fáciles de escribir, mantener y reutilizar.
De esta forma, un objeto contiene toda la información, (los denominados atributos)
que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e
incluso entre objetos de una misma clase, al poder tener valores bien diferenciados en
sus atributos). A su vez, dispone de mecanismos de interacción (los llamados métodos)
que favorecen la comunicación entre objetos (de una misma clase o de distintas), y en
consecuencia, el cambio de estado en los propios objetos.
Esta característica lleva a tratarlos como unidades indivisibles, en las que no se
separan (ni deben separarse) información (datos) y procesamiento (métodos).
Dada esta propiedad de conjunto de una clase de objetos, que al contar con una serie
de atributos definitorios, requiere de unos métodos para poder tratarlos (lo que hace que
ambos conceptos están íntimamente entrelazados), el programador debe pensar
indistintamente en ambos términos, ya que no debe nunca separar o dar mayor
importancia a los atributos en favor de los métodos, ni viceversa.
Con la Programación Orientada a Objetos pasamos de tener un código de arriba hacia
abajo en el que las funcionalidades están mezcladas y son difíciles de separar o escalar,
a una programación en la que tenemos los elementos (Objetos) que tienen características
y funciones.
Por ejemplo un usuario en una red social tiene características como nombre, apellido,
edad. Y también funciones como comentar, iniciar sesión, comprar, etc.
COLEGIO NACIONAL DE QUIINDY – GABINETE DE INF. LABORATORIO - 2º BTI
Esta forma de programar hace más fácil manejar y mantener un sistema, si
necesitáramos una nueva funcionalidad podríamos sin problemas agregar un nuevo
objeto o añadir datos y funcionalidades a los objetos que ya existen.
Ventajas
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
PARADIGMA DECLARATIVO
Es un paradigma que no se basa en el cómo se hace algo (cómo se logra un
objetivo paso a paso), sino que describe (declara) cómo es algo. En otras palabras, se
enfoca en describir las propiedades de la solución buscada, dejando indeterminado el
algoritmo (conjunto de instrucciones) usado para encontrar esa solución. Es más
complicado de implementar que el paradigma imperativo, tiene desventajas en la
eficiencia, pero ventajas en la solución de determinados problemas.
COLEGIO NACIONAL DE QUIINDY – GABINETE DE INF. LABORATORIO - 2º BTI
Es una programación en la que se le dice al programa lo que tiene que hacer, no
se sabe cómo funciona por detrás pero el programa lo hace.
Por ejemplo cuando haces la consulta de ventas en tu tienda del mes mayo en
SQL, no sabes qué hizo el programa para traerte esos datos pero los trajo, y es porque
por debajo ya existen métodos y funciones que lo hacen.
Características del Paradigma Declarativo
No existe asignación
Las variables son identificadores de valores que no cambian en toda la evaluación
No existe una descripción paso a paso de cómo llegar a la solución.
Se tiende a enfatizar más en la evaluación de expresiones que en la ejecución
secuencial de comandos.
Las soluciones declarativas son más cercanas a la manera en que funciona la
mente humana al permitir a los programadores describirlas como sistemas de
expresiones que serán evaluadas.
No administra la memoria.
Otros enfoques subordinados al paradigma de programación
declarativo son:
Paradigma Funcional
Este tipo de programación también divide al sistema en varios pedazos, cada
pedazo (función) hace una sola cosa como multiplicar un número, solicitar un dato, etc.
El paradigma funcional está basado en el modelo matemático de composición
funcional. En este modelo, el resultado de un cálculo es la entrada del siguiente, y así
sucesivamente hasta que una composición produce el valor deseado.
No existe el concepto de celda de memoria que es asignada o modificada. Más
bien, existen valores intermedios que son el resultado de cálculos anteriores y las
entradas a cálculos subsiguientes. Tampoco existen sentencias imperativas y todas las
funciones tienen transparencia referencial.
La programación funcional incorpora el concepto de función como objeto de
primera clase, lo que significa que las funciones se pueden tratar como datos (pueden
pasar como parámetros, calculadas y devueltas como valores normales, y mezcladas en
el cálculo con otras formas de datos).
En este paradigma el informático concibe la solución como una composición de
Funciones. La forma en que se especifican las funciones puede variar. Se pueden
especificar procedimentalmente o matemáticamente mediante su definición, sin secuencia
de control.
Por ejemplo si usuario inicia sesión en una web, habría una función que valide los
datos, esta retornaría un valor y se la enviaría a otra función para saber que página
mostrar, luego esta función enviara los datos a otra función para saber si el usuario tiene
notificaciones, pero cada función hace una sola cosa.
Paradigma lógico:
Es un Paradigma de Programación basado en la Lógica.
Los programas construidos un lenguaje lógico están construidos únicamente por
expresiones lógicas, es decir, que son ciertas o falsas, en oposición a un expresión
interrogativa (una pregunta) o expresiones imperativas (una orden). Un ejemplo de
lenguaje lógico es Prolog (Programación lógica).
Prolog, proveniente del inglés Programming in Logic, es un lenguaje lógico bastante
popular en el medio de investigación en Inteligencia Artificial. Prolog es un lenguaje muy
diferente, tanto de los imperativos como Fortran, Pascal, C etc., como de los funcionales
como Lisp. En todos los mencionados, las instrucciones se ejecutan normalmente en
orden secuencial, es decir, una a continuación de otra, en el mismo orden en que están
escritas, que sólo varía cuando se alcanza una instrucción de control (un bucle, una
instrucción condicional o una transferencia).
COLEGIO NACIONAL DE QUIINDY – GABINETE DE INF. LABORATORIO - 2º BTI
En Prolog, las cosas son distintas: el orden de ejecución de las instrucciones no tiene
nada que ver con el orden en que fueron escritas. Tampoco hay instrucciones de control
propiamente dichas. Para trabajar con este lenguaje, un programador debe
acostumbrarse a pensar de una manera muy diferente a la que se utiliza en los lenguajes
clásicos.
Paradigma Reactiva
Este paradigma se basa en escuchar lo que emite un evento o cambios en
el flujo de datos, en donde los objetos reaccionan a los valores que reciben de
dicho cambio . En la programación reactiva observamos cambios en un flujo de datos,
por ejemplo un chat en vivo que recibe cientos de comentarios por segundo, o Google
Maps enviándonos nuestra ubicación en tiempo real, etc.
Entonces lo que hace la programación reactiva es observar estos flujos datos y
cuando estos cambian hacemos algo.
Con este ejemplo te quedará clarísimo. Cuando ves Netflix y la velocidad de tu internet
disminuye, Netflix no para la transmisión, la continua pero con calidad de video inferior,
eso es la programación reactiva.
PARA RECORDAR:
Puedes ampliar tus conocimientos accediendo al link: [Link]
COLEGIO NACIONAL DE QUIINDY – GABINETE DE INF. LABORATORIO - 2º BTI
ACTIVIDADES
1- ¿En qué consiste un paradigma?
2- Elaboro un mapa conceptual sobre los tipos de paradigmas.
3- Completo el cuadro comparativo de Paradigma Estructural y Paradigma Orientado
a Objetos.
PARADIGMA PARADIGMA
ESTRUCTURAL ORIENTADO A
OBJETOS
Definición
Características
Ventajas
4- Averiguo qué paradigma de programación usa el Lenguaje Java, el lenguaje C++ y
el lenguaje Python