Está en la página 1de 10

UNIVERSIDAD NACIONAL PEDRO RUIZ GALLO

FACULTAD DE CIENCIA FÍSICAS Y MATEMÁTICAS


ESCUELA PROFESIONAL DE INGENIERÍA EN COMPUTACIÓN E
INFORMÁTICA

“PARADIGMAS DE PROGRAMACIÓN”

Responsables del Trabajo:


Pupuche Lizana Ronald
Mejia Santisteban Elvis Ignacio
Gonzales Bernabe Cristhiam
Reyes Vasquez Eduardo Rey Manuel
Jose Linder Casas Martinez

Curso:
Programación III

Docente del Curso:

Ing. Franklin Edinson Terán Santa Cruz

CICLO 2022-I

Lambayeque, 2022

INDICE

1
Tabla de contenido
1 INTRODUCCIÓN............................................................................................................ 3
2 PARADIGMA DE PROGRAMACIÓN DECLARATIVA.....................................................3
2.1 Paradigma de programación lógica..........................................................................4
2.2 Paradigma de programación funcional.....................................................................5
3 Paradigma de Programación Procedimental...................................................................6
3.1 Paradigmas Imperativo:...........................................................................................6
3.2 Paradigma Orientado a Objetos:..............................................................................7
4 Otros tipos de paradigmas..............................................................................................8
4.1 Heurístico................................................................................................................. 8
4.2 Concurrente............................................................................................................. 9

2
1 INTRODUCCIÓN

La evolución de los lenguajes de programación ha permitido abrir paso a las técnicas de


programación en lo que hoy se conoce o se tiene un concepto abstracto de estrategia de
programación, dicho de otra manera paradigmas de programación, lo que permite al
programador tener una noción clara de solucionar un problema del mundo real, bajo una
estrategia de organización y estructuración de código.
En dicho trabajo mencionaremos las formas de estructurar el código, las cuales son
distintas, pero ciertamente están agrupados en 3 grandes grupos de paradigmas, tales
como se menciona en el presente informe. Veremos el primer grupo donde encontraremos
el paradigma declarativo, en el segundo grupo tenemos al paradigma imperativo y en el
tercer grupo encontramos otros tipos de paradigmas en los cuales hablaremos a detalle
sobre cada uno de ellos.

2 PARADIGMA DE PROGRAMACIÓN DECLARATIVA

Definición:
La programación declarativa es un estilo de programación que expresa la lógica de
un cálculo sin hablar del flujo de control.
Es un paradigma de programación en el que el programador define la finalidad del
programa sin definir cómo se implementará el programa. En otras palabras, la
atención se enfoca en lo que debe lograrse y no en cómo lograrlo.

Ventajas:
● Código más reducido y eficaz.
● Se puede realizar utilizando métodos desconocidos en el momento de la
programación.
● La ejecución se rige por un algoritmo, por lo que es fácil de optimizar.

Desventajas:
 Puede ser Confuso para los extraños en el momento de comprender
 Basado en una mentalidad humana insólita (estado de solución).
 Las características ideales de los casos de uso individuales se pueden
considerar durante la programación, pero solo de manera compleja.

Los lenguajes de programación que lo implementaron:


● Prolog
● Lisp
● Haskell
● Miranda
● Erlang
● SQL (más amplio)

2.1 Paradigma de programación lógica

Definición:
Es aquel paradigma que tiene como característica fundamental adherir las

3
normas de la lógica para deducir conclusiones a partir de datos. Sabiendo la
información y la naturaleza del problema, la realización de un programa
radica en la indagación de un objetivo dentro de las declaraciones realizadas.
Esta forma de procedimiento de la información admite pensar la existencia de
“programas inteligentes” que puedan contestar, no por tener en la base de
datos todos los entendimientos y porque de las cosas, sino por poder concluir
a través de la deducción.

Historia:
Uno de los iniciadores de la lógica matemática y en efecto del paradigma fue
el aclamado filósofo Aristóteles (384-322 a.C.) con su teoría silogística.
Diciendo dicha teoría que estudia una clase particular de implicaciones con
dos premisas y una conclusión. También fue usada por aquellos filósofos
contemporáneos a Aristóteles y extensamente analizada en siglos
posteriores, aunque no se crearon innovaciones de interés hasta muchos
siglos después siendo el siglo XVII con los trabajos de René Descartes y
Gottfried Leibnitz.

Principales Características:
 La construcción de los lenguajes de paradigma lógicos es notoriamente
diferente de los lenguajes de paradigma imperativos.
 La implementación de las reglas de la lógica para deducir conclusiones a
partir de datos.
 Las salidas son utilitariamente dependientes de las entradas.
 Utiliza la visión lógica de la computación.

Ventajas:
 Con la utilización de la programación lógica, será más fácil poder redactar
el código sin tener conocimiento de todo el lenguaje de programación que
será usado.
 Es muy próximo a las especificaciones de las cuestiones llevadas a cabo
con lenguajes más determinados.
 Con la programación lógica es factible poder cambiar la parte de control,
pero sin hacer cambios en la lógica del algoritmo

Desventajas:
 Por desgracia actualmente no hay ningún tipo de herramientas de
depuración que sean eficientes para la programación lógica.
 La programación lógica tiene limitados entornos de aplicación. Esto es
porque no se puede emplear del todo bien en la informática de uso diario.

Lenguajes de programación:
Los lenguajes creados y que son utilizados por este paradigma son:
Prolog, Mercury, CLP (FD), CSP (Constraint Satisfaction Problem), Lambda
Prolog, Logtalk, Alma-0, CLAC(Logical Composition with the Assistance of

4
Computers), Gödel, Curry, Ace, PALs, Actor Prolog, SequenceL, Datalog
(Logic Programming in Python)

2.2 Paradigma de programación funcional

Definición:
Es un tipo de paradigma de programación declarativa basado en la utilización
de funciones aritméticas que no manejan datos mutables o de estado como
por ejemplo los cálculos lambda y en particular, la composición de funciones
puras para crear resultados de software. Enfatizando la aplicación de
funciones en contraste con el estilo de programación imperativo que enfatiza
cambios de estado.

Historia:
El paradigma funcional se comenzó a hacer por el matemático John
McCarthy en 1956, para poder programar aquellos primogénitos proyectos de
inteligencia artificial sobre los computadores IBM 704, durante su creación
nace el lenguaje de programación lisp en 1958.
Lisp siendo inventado originalmente como una escritura matemática práctica
para los programas de ordenadores, basada en el cálculo lambda de Alonzo
Church. Además, que a pesar de no ser un lenguaje netamente funcional, se
transformó velozmente en un lenguaje de programación iniciador en el
estudio de la inteligencia artificial (AI) estableciendo los cimientos de lo que
se conoce como hoy paradigma funcional.

Principales Características:
 Definición de una función numérica pura sin condiciones internas ni
efectos secundarios.
 Valores invariables
 Uso de la recursividad en múltiples definiciones de funciones
 Uso de listas como forma primordial de datos

Ventajas:
 El código es mucho más fácil de testear.
 Código más exacto y breve.
 Nuestro código será sencillamente verificable, incluso las funciones sin
estado se pueden revisar.

Desventajas:
 No nos podrá se acceder eficientemente a extensas cantidades de datos
 Los datos no podrán ser modificados, por ejemplo, las variables del
código.
 No se es muy conveniente para realizar conexiones a bases de datos y
servidores

5
Lenguajes de programación:
Dentro de los lenguajes de paradigma funcional más importantes se
encuentran LISP(primer lenguaje creado por este paradigma), ML, Haskell,
OCaml, F#, Erlang, Clojure, Scala. También podemos encontrar lenguajes de
programación muy conocidos que permiten la programación funcional entre
sus paradigmas, los cuales son: Perl, Ruby, Visual Basic .NET, Dylan,
ECMAScript.

3 Paradigma de Programación Procedimental

3.1 Paradigmas Imperativo:

Definición:
Este paradigma juega un papel muy importante en las instrucciones
secuenciales y de control, ya que al determinar una operación, su proceso de
desarrollo es paso a paso por lo cual viene a ser un proceso ordenado , claro
y definido.
Gracias a este paradigma podemos manipular de manera autónoma los
datos en memoria para obtener los valores requeridos para el cálculo,
también podemos dirigirnos a estos y darles órdenes a memoria para la
transformación de datos y este nos de un resultado concreto.

Historia:
Este Paradigma surge después de la creación de las computadoras, debido a
que en ese tiempo ya se estaba comenzando a establecer la comunicación
entre el hombre y la máquina mediante el desarrollo y ejecución de
programas. En principio los programas que se ejecutaban con el lenguajes
de la máquina eran desacertados, de poca intuición y engorrosos.
Esta problemática llega a su fin con la creación de los lenguajes de
programación con la misma sintaxis y semántica de las máquinas pero con
increíbles mejoras.

Principales Características:
 Composición por un gran número de celdas, donde se contienen los
datos, estos son los componentes en memoria.
 La asignación de cada valor, también llamado variables para que sea
calculado.
 Codificación de Algoritmos, este viene a ser la secuencia de pasos, o
instrucciones dadas para la ejecución.
 Programación Estructurada, donde se encuentran las estructuras básicas
de control.
 Modularizarían para tareas específicas de los programas.

Ventajas
 Es una forma muy simple de implementar

6
 Permite que cualquier programador pueda entender el flujo del programa.
 Brinda la capacidad de estructurar procedimientos en función de
declaraciones.
 En cuanto a memoria es más eficiente, lo que en hoy en día el concepto
de memoria se estudia a detalle en cada software.

Desventajas
 No está implementado para resolver problemas complejos.
 Es menos eficiente a nivel de ejecución o productividad.

Lenguajes de programación:
Los lenguajes creados y que son utilizados por este paradigma son
FORTRAN, COBOL, Pascal, BASIC, ALGOL, C y Ada (Algunos lenguajes se
actualizaron obteniendo así la Programación orientada a objetos).

3.2 Paradigma Orientado a Objetos:

Definición:
La base del paradigma de Objetos consiste en la expresión de un sistema el
cual contiene un conjunto de acciones y entidades que son plasmadas en la
realidad como “Objetos”, básicamente dichos objetos nos permiten realizar
varias funciones extensibles de acuerdo a las necesidades del usuario, esto
implica desarrollar un problema que se presente de forma más directa a la
realidad o a desarrollar un proyecto conforme a los problemas que son más
comunes en la realidad. Sea cualquier causa estos “Objetos” tienen la
finalidad de relacionarse entre sí, para un propósito en común.
Gracias a este paradigma es posible el desarrollo de grandes sistemas, los
cuales han aportado muchísimo en el mundo real, como también las diversas
soluciones que presenta ante un problema en la realidad.

Historia:
Su inicio es provocado gracias a la base del paradigma imperativo, el
paradigma Objetos realizó un importante cambio ya que reconstruyó y
reestructuró los principios básicos del paradigma imperativo y plasmó un
modelo más amplio con otras características y conceptos en la programación
que lo hacían más eficaz.
Esta programación se hizo más conocida en los años 90, gracias a que
Smalltalk se popularizó como un lenguaje de programación simple y
poderoso que promueve buenas prácticas en la programación.

Principales Características:
 Desarrollo modular basado en objetos y que son definidas a partir de
clases.
 Se puede realizar el encapsulamiento a métodos para ocultar información
de variables.
 Se puede realizar el Polimorfismo.
 Permite realizar Herencia a partir de una clase Madre a clases hijas.

7
 Los objetos son creados a partir de una clase.

Ventajas:
 Una de las principales ventajas que tiene este paradigma es la
implementación de funciones dentro de una clase dada y se puede
reutilizar en diferentes clases, esto gracias a la herencia y polimorfismo
que nos brinda este paradigma.

 La composición en el desarrollo incremental que nos permite codificar


algo nuevo sin causar errores en el código existente.

Desventajas:
 Tiempo de ejecución es más lenta
 Al heredar una clase se heredan variables que no utilizas.

Lenguajes de Programación:
SMALLTALK fue el lenguaje que inició con programación de objetos. Ahora
en la actualidad existen otros lenguajes como: JAVA, C++, el EIFFEL,
VISUAL BASIC, estos tres últimos son extensiones de otros lenguajes que
fueron diseñados como imperativos, pero que tienen extensiones
relacionadas a los principios del paradigma de objetos.

4 Otros tipos de paradigmas

4.1 Heurístico

Definición:
Es la programación que alcanza sus objetivos mediante la creación de
algoritmos lógicos, en otras palabras la programación heurística trabaja en
una seguidilla de “conjeturas inteligentes” y que no se amparan totalmente en
números o datos duros

Historia:
Tiene su origen desde la antigua Grecia y se hizo más conocido por George
Pólya con su libro “Cómo resolverlo”.
Por otro lado, el filósofo y matemático Lakato afirma que la heurística es un
conjunto de reglas las cuales podrían ser positivas o negativas y que guiarán
a las soluciones de los problemas.

Principales Características:
 No es garantía de que se encuentre alguna solución. Aunque haya
soluciones.
 Al encontrar alguna solución. No hay certeza de que tenga las mejores
propiedades.
 Algunas veces. Encontrarán alguna solución en un tiempo razonable.

Ventajas:

8
 Rapidez y efectividad.
 Es económico en comparación con otros.
 No necesita involucrar a usuarios finales.
 Permite comprender la situación actual del producto.
 Reconocer los problemas sencillos que se pueden evitar en caso de un
rediseño. A la vez brindar las soluciones para resolver los problemas.

Desventajas:
 Pueden ocurrir falsos errores que no tengan relación a problemas de
usabilidad. Sea esto lo que ocurre, se recomienda que sea monitoreado
por más de un evaluador.

4.2 Concurrente

Definición:
Es la manera de resolver situaciones o problemáticas ejecutando varias
tareas al mismo tiempo y no de forma secuencial.
En este tipo de programación podemos continuar sin la necesidad de que
otros inicien o finalicen.

Historia:
Presenta su origen en los sistemas operativos y en la programación de
sistemas. En los 60s a las computadoras se les insertaron canales.
La presencia del lenguaje de alto nivel en 1972 dio la oportunidad a que otros
lenguajes de alto nivel incorporen la concurrencia.

Principales Características:
 Orden de ejecución.
 Indeterminismo.
Ventajas:
 Velocidad de ejecución.
 Solución a problemas de naturaleza: Sistemas de control, tecnologías
web, aplicaciones basadas en GUI, Simulación, Sistemas de gestores de
datos.
Desventajas:
 Exclusión mutua.
 Condición de sincronización

9
REFERENCIAS BIBLIOGRÁFICAS:

- Dominguez, I. (2005, abril). Fundamentos teóricos de los Paradigmas de


Programación.https://d1wqtxts1xzle7.cloudfront.net/42704971/FundamTeoricosPara
digProg-with-cover-page-v2.pdf?
Expires=1668709686&Signature=BY999ZRY2mxUCMw4vq1scEH8F2JHQj6d83Fz
yIvbtmFDjkwoypOZfUmfPE4~41xwSu58~iVZO75E0bTL4qKvRqkjTBz9ChHT8CC
l8afQyiMFhEiTRGCtBFpRmF~-
liKh8pQAnZteSka~~fUGRo1mJxlHV0RdF7hxpJOWbzU2oBs9GLibTlXDnTipXdB
aZcpe11rXJjcyD5scCjbOeJf9D5Rx254JJ7GocyKb7uoPLLEaY~3sMoJB81s5ikmpC
PPg3Y0guc7ukF6CiRP1vEY13Gr~h6IjxsJgM2Dm8EEFGsjE1nY8yQkkHnUGV9wl
6BfBrfLTBk0AJASpM1mU8lu6MQ__&Key-Pair-
Id=APKAJLOHF5GGSLRBV4ZA

- Aguilar, L. J. (2013). Fundamentos de Programación Algoritmos, estructura de datos


y objetos. McGraw-Hill.
http://biblioteca.univalle.edu.ni/files/original/6e416ff025558af72257c21150aa846bf4
9e829c.pdf

- Rodríguez, C. V. (2011, febrero 11). Paradigmas de Programación. Uva.es.


https://www.infor.uva.es/~cvaca/asigs/docpar/intro.pdf

- Roberto Rodrigez Echevarria, Encarna Sosa Sánchez, Alvaro Prieto Ramos. (2011).
Programación Orientada a Objetos. Libropo.
http://190.57.147.202:90/jspui/bitstream/123456789/1419/1/Programacion-Orientada-
Objetos-2012.pdf

- Brito Jennifer , Ramírez María ,Izquierdo Paúl. (2012). Heurística.


https://bibliotecaiztapalapauin.files.wordpress.com/2018/07/heurc3adstica.pdf

10

También podría gustarte