evolución de los paradigmas de programación
TRANSCRIPT
![Page 1: Evolución de los Paradigmas de Programación](https://reader035.vdocuments.site/reader035/viewer/2022071312/62cd545e0e423e395a59ae60/html5/thumbnails/1.jpg)
Evolución de los Paradigmas de Programación
Prof. Jannelly Bello
![Page 2: Evolución de los Paradigmas de Programación](https://reader035.vdocuments.site/reader035/viewer/2022071312/62cd545e0e423e395a59ae60/html5/thumbnails/2.jpg)
PARADIGMAS DE PROGRAMACIÓN
Imperativa
Declarativa
Programación Funcional
Programación Lógica
Programación No Estructurada
Programación Estructurada
Programación Procedimental
Programación Modular
Programación Orientada a Objetos
![Page 3: Evolución de los Paradigmas de Programación](https://reader035.vdocuments.site/reader035/viewer/2022071312/62cd545e0e423e395a59ae60/html5/thumbnails/3.jpg)
PROGRAMACIÓN DECLARATIVA
Describe qué se va a resolver, sin explicar el cómo.
No existen sentencias de asignación.
Se centra en la evaluación de unidades conceptuales.
Para la resolución de un problema:• Se crean las descripciones que representan al dominio en el cual existe
el problema.• Se plantea el problema como una pregunta que debe ser respondida
bien con alguna de las unidades conceptuales iniciales o bien con unacombinación válida de ellas que es el propio ordenador quien debebuscar.
![Page 4: Evolución de los Paradigmas de Programación](https://reader035.vdocuments.site/reader035/viewer/2022071312/62cd545e0e423e395a59ae60/html5/thumbnails/4.jpg)
PROGRAMACIÓN FUNCIONAL• Paradigma basado en la definición de funciones aritméticas como
estructura de control principal.
• El problema a resolver se plantea como la evaluación de una funciónbasadas en las previamente definidas.
• No contienen sentencias de asignación.
• No contienen efectos colaterales: al ejecutar la función no cambiará nadafuera del entorno de ésta.
• Los programas son “transparentes referencialmente”: para un valor deentrada, produce siempre la misma salida.
• Las repeticiones de instrucciones se lleven a cabo por medio de funcionesrecursivas.
•Algunos Lenguajes: Haskell , Lisp , Scheme.
![Page 5: Evolución de los Paradigmas de Programación](https://reader035.vdocuments.site/reader035/viewer/2022071312/62cd545e0e423e395a59ae60/html5/thumbnails/5.jpg)
PROGRAMACIÓN FUNCIONAL
EJECUCIÓN
EjemploSCHEME
(display "Hola elige alguna función")(display "Raiz, suma, cuadrado, potencia o resta")(define(raiz X)(sqrt X))(define(cuadrado X)(* X X))(define(suma X Y)(+ X Y))(define(potencia X Y)(expt X Y))(define(resta X Y)(- X Y))
PROGRAMA
![Page 6: Evolución de los Paradigmas de Programación](https://reader035.vdocuments.site/reader035/viewer/2022071312/62cd545e0e423e395a59ae60/html5/thumbnails/6.jpg)
PROGRAMACIÓN LÓGICA• Basado en la lógica de predicados de primer orden en la solución de
problemas.
• El programa consiste en formalizar hechos del mundo real definiendopredicados que describen objetos y la relación entre ellos.
• Los problemas plantean afirmaciones para las que el sistema será capaz deobtener una explicación lógica en base a los predicados programados encaso de que ésta existiera.
• Los resultados de la ejecución se obtienen mediante la instanciación de lasvariables.
•Permite formalizar reglas o restricciones.
•Establecer hipótesis que no son más que preguntas o incógnitas.
Lenguaje: PROLOG
![Page 7: Evolución de los Paradigmas de Programación](https://reader035.vdocuments.site/reader035/viewer/2022071312/62cd545e0e423e395a59ae60/html5/thumbnails/7.jpg)
PROGRAMACIÓN LÓGICAEJEMPLOHechos: le_gusta_a(A,B) --> a A le_gusta B
le_gusta_a(juan, maria).le_gusta_a(pedro, coche).le_gusta_a(maria, libro).le_gusta_a(maria, juan).le_gusta_a(jose, maria). le_gusta_a(jose, coche).le_gusta_a(jose, pescado).
Reglas: es_amigo_de (juan, Persona) --> juan es amigo de Persona si a Persona le gustan los coches es_amigo_de(juan,X):-le_gusta_a(X, coche).
EJECUCIÓN
![Page 8: Evolución de los Paradigmas de Programación](https://reader035.vdocuments.site/reader035/viewer/2022071312/62cd545e0e423e395a59ae60/html5/thumbnails/8.jpg)
PROGRAMACIÓN LÓGICA
EJEMPLOLaura, Jorge, Carmen y Neto fueron al mercado ya que era martes de frutas y verduras y tenían muchas ganas de comer frutas. Cada uno tiene una fruta que le gusta y solo comprarán esa fruta si y solo si esta en oferta y les gusta.
A Carmen le gusta el mangoA Neto le gusta la papayaA Jorge le gusta la fresaA Laura le gusta la manzanaEl mango y la papaya son las únicas que tienen oferta.
EJECUCIÓN
![Page 9: Evolución de los Paradigmas de Programación](https://reader035.vdocuments.site/reader035/viewer/2022071312/62cd545e0e423e395a59ae60/html5/thumbnails/9.jpg)
PROGRAMACIÓN LÓGICA
persona(neto).persona(carmen).persona(laura).persona(jorge).fruta(mango).fruta(fresa).fruta(papaya).fruta(manzana).le_gusta(neto,papaya).le_gusta(carmen, mango).le_gusta(laura, manzana).le_gusta(jorge,fresa).tiene_oferta(mango).tiene_orerta(papaya).puede_comprar(X,Y):-persona(X),fruta(Y),le_gusta(X,Y), tiene_oferta(Y).
PROGRAMA
EJECUCIÓN
![Page 10: Evolución de los Paradigmas de Programación](https://reader035.vdocuments.site/reader035/viewer/2022071312/62cd545e0e423e395a59ae60/html5/thumbnails/10.jpg)
PROGRAMACIÓN IMPERATIVA
• Describe una secuencia de comandos de forma ordenada y sistemática quedetallan de forma clara “cómo” dar solución a un problema y modifican elestado de un programa.
Ejemplos de algunos lenguajes imperativos son:
BASIC Lenguaje de programación C Fortran Pascal Perl PHP
![Page 11: Evolución de los Paradigmas de Programación](https://reader035.vdocuments.site/reader035/viewer/2022071312/62cd545e0e423e395a59ae60/html5/thumbnails/11.jpg)
PROGRAMACIÓN NO ESTRUCTURADA
• Programas que constan de un solo programa principal que contieneinstrucciones que modifican datos que son a su vez globales en el transcurso de todoel programa.
PROGRAMA
DatosInstrucciones
![Page 12: Evolución de los Paradigmas de Programación](https://reader035.vdocuments.site/reader035/viewer/2022071312/62cd545e0e423e395a59ae60/html5/thumbnails/12.jpg)
PROGRAMACIÓN ESTRUCTURADA
Programas de estructura clara que utilizan tres estructuras básicas de control lógico:secuencia, selección e iteración.
A
B
Secuencial Selección Iterativa
![Page 13: Evolución de los Paradigmas de Programación](https://reader035.vdocuments.site/reader035/viewer/2022071312/62cd545e0e423e395a59ae60/html5/thumbnails/13.jpg)
PROGRAMACIÓN PROCEDIMENTAL
Combinar las secuencias de instrucciones repetibles en un solo lugar: Procedimientos.El programa principal coordina las llamadas a procedimientos y pasa los datosapropiados en forma de parámetros.
![Page 14: Evolución de los Paradigmas de Programación](https://reader035.vdocuments.site/reader035/viewer/2022071312/62cd545e0e423e395a59ae60/html5/thumbnails/14.jpg)
PROGRAMACIÓN MODULAR
Consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo máslegible y manejable.
![Page 15: Evolución de los Paradigmas de Programación](https://reader035.vdocuments.site/reader035/viewer/2022071312/62cd545e0e423e395a59ae60/html5/thumbnails/15.jpg)
PROGRAMACIÓN P.O.O
Paradigma de programación que concibe a un sistema como un conjunto de entidadesque representan al mundo real, los “objetos”, que tienen distribuida la funcionalidade información necesaria y que cooperan entre sí para el logro de un objetivo común.