Paradigmas de Programación

24
Paradigmas de Programación Integrantes: Rebeca Carrillo López Marlon Acosta Kelly Victor Cano Poblano Catedrático: Ing. Havin Andrés Moreno Pinto Centro de Estudios Superiores Isla del Carmen.

description

Este documento nos proporciona de manera general una idea de cada paradigma de programación.

Transcript of Paradigmas de Programación

Page 1: Paradigmas de Programación

Paradigmas de

ProgramaciónIntegrantes:Rebeca Carrillo LópezMarlon Acosta KellyVictor Cano Poblano

Catedrático:Ing. Havin Andrés Moreno Pinto

Centro de Estudios Superiores Isla del Carmen.

Page 2: Paradigmas de Programación

Índice

Paradigmas de Programación. Programación Imperativa. Programación Funcional. Programación Lógica. Programación Declarativa. Programación Orientada a Objeto.

Page 3: Paradigmas de Programación

No todos los lenguajes de programación soniguales; eso no quiere decir que cualquiera esmejor que los otros, simplemente que haydiferentes enfoques de la programación decomputadoras y cada lenguaje deprogramación tiende a ajustarse a un métodoen particular.

Nota:

Page 4: Paradigmas de Programación

Paradigma de Programación

Definición de paradigma de Programación:Teoría o conjunto de teorías cuyo núcleo central se acepta sin cuestionar yque suministra la base y modelo para resolver problemas y avanzar en el conocimiento. Losparadigmas de programación nos indican las diversas formas que, a lo largo de la evoluciónde los lenguajes, han sido aceptadas como estilos para programar y para resolver losproblemas por medio de una computadora.

Un paradigma de programación es un modelo utilizado para determinar la formade abordar la organización de datos e instrucciones en un programa como unoque utiliza lenguaje de programación para la construcción de soluciones a losproblemas de programación.

Los lenguajes de programación son basados en uno o más paradigmas Por ejemplo:Smalltalk y Java son lenguajes basados en el paradigma orientado a objetos. Ellenguaje de programación Scheme, en cambio, soporta sólo programaciónfuncional. En cambio Python, soporta múltiples paradigmas.

Page 5: Paradigmas de Programación

Paradigma Imperativo o de Procedimiento

El enfoque procedimiento se basa en la idea de que la característica másimportante de un programa es lo que hace, es decir, sus procesos ofunciones. Así que lo que se requiere un programa que hacer es identificadoy organizado en una secuencia de pasos para formar la solución.

El programa se suele dividir en tareas separadas y las técnicas para lograresto incluyen el desarrollo de arriba hacia abajo y el diseño modular.

Se espera que los programas de procedimiento a estructurar son modularesy utilizan la estructuras de control de secuencia, selección e iteración.

Page 6: Paradigmas de Programación

Paradigma Imperativo o de Procedimiento

En otras palabras, el paradigma de programación procedimental ve laespecificación como una lista de pasos a ejecutar y un conjunto de variablesque almacena el estado del programa en cualquier punto en el tiempo.

Page 7: Paradigmas de Programación

Paradigma Funcional

La programación funcional es un estilo de programación que hace hincapié en la evaluación de expresiones, en lugar de la ejecución de comandos. Las expresiones en estos lenguajes de programación se forman mediante el uso de funciones para combinar los valores básicos.

Por lo tanto, la programación funcional hace hincapié en el uso de funciones matemáticas para crear programas; la expresión es evaluada y los resultados son utilizados para otras expresiones.

En otras palabras, la programación funcional evalúa las expresiones y losresultados se utilizan para su posterior procesamiento.

Page 8: Paradigmas de Programación

Programación funcional

Una definición de programación funcional generalmente aceptada es lasiguiente: "El estilo de programación que enfatiza la evaluación deexpresiones, antes que la ejecución de comandos “

Una programa funcional está constituido enteramente por funciones; elprograma principal es una función que toma como argumento la entradaal programa y genera la salida del programa como su resultado.Típicamente, la función principal se define en términos de otras funciones,y éstas, a su vez, en término de más funciones; esta cadena finaliza enfunciones predefinidas o primitivas.

Page 9: Paradigmas de Programación

Programación funcional

Para ilustrar la diferencia entre el enfoque imperativo y el funcionalconsidérese el problema de construir una función f que recibacomo argumento un natural n y retome la suma de los naturalesdesde 1 hasta n, es decir:

Page 10: Paradigmas de Programación

Programación funcional En un lenguaje imperativo como C, se podría definir la función de la

siguiente forma:

La implementación de esta función en un lenguaje funcionaldefinitivamente exigiría otra estrategia, pues en estos lenguajes nose cuenta con variables, ni asignaciones, ni ciclos. Por tanto, serecurrirá a una definición recursiva equivalente de ƒ:

Page 11: Paradigmas de Programación

Programación lógica

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 Lógica (programador): hechos y reglas para representar conocimiento Control (interprete): deducción lógica para dar respuestas (soluciones)

Page 12: Paradigmas de Programación

Programación lógica La programación lógica: construye base de conocimientos mediante

reglas y hechos. Regla: implicación o inferencia lógica que deduce nuevo

conocimiento, la regla permite definir nuevas relaciones a partir deotras ya existentes.Ejemplo:Mortal (x): - humano(x)x es mortal si x es humano

Hecho: declaración, cláusula o proposición cierta o falsa, el hechoestablece una relación entre objetos y es la forma más sencilla desentenciaEjemplo:Humano (Sócrates); Sócrates es humano

Page 13: Paradigmas de Programación

LENGUAJES DE PROGRAMACION LOGICA

El lenguaje de programación lógica por excelencia es el PROLOG.

Prolog: es un Lenguaje de Programación diseñado para representar y utilizar el conocimiento que se tiene sobre un determinado dominio. Los programas en Prolog responden preguntas sobre el tema del cual tienes conocimiento.

Page 14: Paradigmas de Programación

Programación Declarativa

Se les conoce como lenguajes declarativos en ciencias computacionales aaquellos lenguajes de programación en los cuales se le indica a lacomputadora qué es lo que se desea obtener o qué es lo que se estabuscando, por ejemplo: Obtener los nombres de todos los empleados quetengan más de 32 años. Eso se puede lograr con un lenguaje declarativocomo SQL.

La programación declarativa es una forma de programación que implicala descripción de un problema dado en lugar de proveer una solución paradicho problema, dejando la interpretación de los pasos específicos parallegar a dicha solución a un intérprete no especificado. La programacióndeclarativa adopta, por lo tanto, un enfoque diferente al de laprogramación imperativa tradicional.

Page 15: Paradigmas de Programación

Programación Declarativa

En otras palabras, la programación declarativa provee el "qué", perodeja el "cómo" liberado a la implementación particular del intérprete. Porlo tanto se puede ver que la programación declarativa tiene dos fasesbien diferenciadas, la declaración y la interpretación.

Es importante señalar que a pesar de hacer referencia a intérprete, nohay que limitarse a "lenguajes interpretados" en el sentido habitual deltérmino, sino que también se puede estar trabajando con "lenguajescompilados".

Page 16: Paradigmas de Programación

Programación Declarativa

Page 17: Paradigmas de Programación

Programación Orientada a Objetos

La programación Orientada a objetos (POO) es una forma especial deprogramar, más cercana a como expresaríamos las cosas en la vida realque otros tipos de programación.

Durante años, los programadores se han dedicado a construiraplicaciones muy parecidas que resolvían una y otra vez los mismosproblemas. Para conseguir que los esfuerzos de los programadores puedanser utilizados por otras personas se creó la POO, que es una serie denormas de realizar las cosas de manera que otras personas puedanutilizarlas y adelantar su trabajo, de manera que consigamos que el códigose pueda reutilizar.

Page 18: Paradigmas de Programación

Programación Orientada a Objetos

Introduce nuevos conceptos, que superan y amplían conceptosantiguos ya conocidos. Entre ellos destacan los siguientes: :

Clases.

Objeto.

Propiedades.

Métodos.

Herencia.

Encapsulamiento.

Polimorfismo.

Page 19: Paradigmas de Programación

Programación Orientada a Objetos

Pensar en términos de objetos es muy parecido a cómo lo haríamosen la vida real. Por ejemplo vamos a pensar en un coche paratratar de modelizarlo en un esquema de POO. Diríamos que elcoche es el elemento principal que tiene una serie decaracterísticas, como podrían ser el color, el modelo o la marca.Además tiene una serie de funcionalidades asociadas, comopueden ser ponerse en marcha, parar o aparcar.

Pues en un esquema POO el coche sería el objeto, las propiedadesserían las características como el color o el modelo y los métodosserían las funcionalidades asociadas como ponerse en marcha oparar.

Page 20: Paradigmas de Programación

Programación Orientada a Objetos Las clases son declaraciones de objetos, también se podrían definir como

abstracciones de objetos. Esto quiere decir que la definición de un objeto es la clase. Cuando programamos un objeto y definimos sus características y funcionalidades en realidad lo que estamos haciendo es programar una clase.

Propiedades en clasesLas propiedades o atributos son las características de los objetos. Cuando definimos una propiedad normalmente especificamos su nombre y su tipo. Nos podemos hacer a la idea de que las propiedades son algo así como variables donde almacenamos datos relacionados con los objetos.

Métodos en las clasesSon las funcionalidades asociadas a los objetos. Cuando estamos programando las clases las llamamos métodos. Los métodos son como funciones que están asociadas a un objeto.

Los objetos son ejemplares de una clase cualquiera. Cuando creamos un ejemplar tenemos que especificar la clase a partir de la cual se creará. Esta acción de crear un objeto a partir de una clase se llama instanciar (que viene de una mala traducción de la palabra instace que en inglés significa ejemplar).

Page 21: Paradigmas de Programación

Programación Orientada a Objetos

Herencia.Representa lo que conocemos de herencia en elmundo real, básicamente mediante esta obtenemoslas características o rasgos comunes de nuestrospadres o abuelos, en java es el mismo enfoquepermitiendo la creación de nuevas clases basadas enclases ya existentes, con las cuales podemos obtenerlas características de las clases padres, heredandocampos, atributos, métodos o funcionalidades.

Page 22: Paradigmas de Programación

Programación Orientada a Objetos

Encapsulamiento.Este concepto es uno de los mas importantes en términos de seguridad dentro de nuestra aplicación, la encapsulación es la forma de proteger nuestros datos dentro del sistema, estableciendo básicamente los permisos o niveles de visibilidad o acceso de nuestros datos

Se representa por 3 niveles :Público: Se puede acceder a todos los atributos ométodos de la clase. Protegido: Se puede acceder a losatributos o métodos solo en la misma jerarquía deherencia. Privado: Solo se puede acceder a los atributoso métodos de la clase en la que se encuentran.

Page 23: Paradigmas de Programación

Programación Orientada a Objetos

Polimorfismo.Este tal vez sea uno de los conceptos de laprogramación orientada a objetos mas usados peromuchas veces sin saber que se aplica ya que elconcepto inicialmente puede ser un poco confuso,básicamente mediante el polimorfismo programamosde forma general en lugar de hacerlo de formaespecifica, se usa cuando se trabaja con la herencia yobjetos de características comunes los cualescomparten la misma superClase y árbol jerárquico, altrabajar con este concepto optimizamos ysimplificamos en gran medida nuestro trabajo.

Figura geometrica

Cuadrado CirculoTriangulo

Page 24: Paradigmas de Programación

POR SU ATENCIÓN GRACIAS.