Evolución de los Paradigmas de Programación

15
Evolución de los Paradigmas de Programación Prof. Jannelly Bello

Transcript of Evolución de los Paradigmas de Programación

Page 1: Evolución de los Paradigmas de Programación

Evolución de los Paradigmas de Programación

Prof. Jannelly Bello

Page 2: Evolución de los Paradigmas de Programación

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

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

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

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

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

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

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

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

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

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

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

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

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

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.