Paradigmas de programación

15,654 views

Published on

0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
15,654
On SlideShare
0
From Embeds
0
Number of Embeds
593
Actions
Shares
0
Downloads
451
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Paradigmas de programación

  1. 1. FUNDAMENTOS DE PROGRAMACIÓNIbarra Badillo Mayra Actividad 112590431 Paradigmas de ProgramaciónUn paradigma de programación es una propuesta tecnológica que es adoptada por unacomunidad de programadores cuyo núcleo central es incuestionable en cuanto a queunívocamente trata de resolver uno o varios problemas claramente delimitados. La resolución deestos problemas debe suponer consecuentemente un avance significativo en al menos unparámetro que afecte a la ingeniería de software. Los paradigmas de programación nos indican lasdiversas formas que, a lo largo de la evolución de los lenguajes, han sido aceptadas como estilospara programar y para resolver los problemas por medio de una computadora.Programación imperativaEs un paradigma de programación que describe la programación en términos del estado delprograma y sentencias que cambian. Los programas imperativos son un conjunto de instruccionesque le indican al computador cómo realizar una tarea.Desde esta perspectiva de bajo nivel, el estilo del programa está definido por los contenidos de lamemoria, y las sentencias son instrucciones en el lenguaje de máquina nativo del computador (porejemplo el lenguaje ensamblador).Los elementos más importantes de este paradigma son:• Variables: Son objetos cuyo valor depende de una localidad de memoria y que puede cambiar alo largo de la ejecución del programa. Los estados de un programa son representados ydiferenciados por su conjunto de variables y sus contenidos.• Tipos de datos: Son abstracciones que representan un conjunto de valores junto con lasoperaciones y relaciones que son aplicables a ellos.• Expresiones: Enla programación imperativa su papel más importante está en las sentencias deasignación. Una sentencia de asignación sirve para modificar el valor de una variable y así cambiarel estado de un programa. Los operadores empleados pueden ser matemáticos, lógicos o unacombinación de ambos.Nociones básicas:-Variable con estado (valor modificable)-Secuencia de cambios de estado-ProcedimientosCaracterísticas destacables:Se fija completamente el orden en el que se deben realizar las operaciones con ayuda de unospatrones de control del flujo de ejecución (secuencia, alternativa y ciclo)que sirven para construirel esqueleto de las rutinas.Se pueden fijar puntos de observación en el texto de una rutina y considerar los valores de lasvariables (estado)cuando el flujo de ejecución pasa por dichos puntos. Estos valores puedencambiar de un punto a otro y en el mismo punto en momentos distintos de la ejecución. 1
  2. 2. FUNDAMENTOS DE PROGRAMACIÓNIbarra Badillo Mayra Actividad 112590431Ventajas Manipulación controlada Ajusta los problemas Control de datos de manera secuencialDesventajas Programación lineal Codificación Los programas no son seguros Lenguajes de alto nivel y muy complejoProgramación estructuradaLa programación estructurada es una forma de escribir programas de ordenador (programación decomputadora) de manera clara. Para ello utiliza únicamente tres estructuras: secuencia, seleccióne iteración; siendo innecesario el uso de la instrucción o instrucciones de transferenciaincondicional (GOTO, EXIT FUNCTION, EXIT SUB o múltiples RETURN).Estructurada es una técnica en la cual la estructura de un programa, esto es, la interpelación desus partes realiza tan claramente cómo es posible mediante el uso de tres estructuras lógicas decontrol: A. Secuencia: Sucesión simple de dos o más operaciones. B. Selección: bifurcación condicional de una o más operaciones. C. Interacción: Repetición de una operación mientras se cumple una condición.Características1. La estructura secuencial: Está definida por el flujo de control automático de un programa. Demanera natural, a menos que otra cosa se indique, la computadora ejecuta las líneas de código enel orden en que fueron escritas. El control del programa fluye de la línea anterior a la líneasiguiente.2. Las estructuras de selección: Se basan en una declaración condicional. Si es verdadera, ciertaslíneas de código son ejecutadas. Si tal declaración es falsa, esas líneas no serán ejecutadas.3. Las estructuras de repetición (o de ciclos): Su construcción también hace uso dedeclaracionescondicionales. Si la condición evaluada es verdadera, un bloque de una omásinstrucciones se repetirá, hasta que la condición sea falsa. La computadora prueba lacondición una primera vez, si es verdadera, ejecuta el bloque de comandos. Entonces, finalizada laprimera repetición,comprueba de nuevo la condición y si es verdadera se repite el bloquenuevamente, y así sucesivamente hasta que la condición sea falsa. Ya que este funcionamiento escíclico, cada unade estas repeticiones es llamada también ciclo. 2
  3. 3. FUNDAMENTOS DE PROGRAMACIÓNIbarra Badillo Mayra Actividad 112590431VENTAJAS POTENCIALESUn programa escrito de acuerdo a estos principios no solamente tendrá una estructura, sinotambién una excelente presentación.Un programa escrito de esta forma tiende a ser mucho más fácil de comprender.La facilidad de comprensión del contenido de un programa puede facilitar el chequeo de lacodificación y reducir el tiempo de prueba y depuración de programas. 1. Reducción de los costos de mantenimiento. 2. Los programas quedan mejor documentados internamente. 3. Aumento de la productividad del programador 4. Programas más sencillos y más rápidos 5. Se facilita la utilización de las otras técnicas para el mejoramiento de la productividad en programaciónDESVENTAJASObtiene un único bloque de programa, que cuando se hace demasiado grande puede resultarproblemático su manejo; esto se resuelve empleando la programación modular, definiendomódulos interdependientes programados y compilados por separado.Un método un poco más sofisticado es la programación por capas, en la que los módulos tienenuna estructura jerárquica en la que se pueden definir funciones dentro de funciones o deprocedimientos.Abstracción de datosLos lenguajes como ADA y C++ permiten que un usuario defina tipos que se comporten casi de lamisma manera que los tipos definidos por el lenguaje. Tales tipos de datos reciben a menudo elnombre de tipos abstractos o tipos definidos por el usuario. El paradigma de programación sobreeste tipo de datos consiste en: a) Establecer las características de los tipos de datos abstractos se desean definir. b) Proporcionar un conjunto completo de operaciones válidas y útiles para cada tipo de dato.Cuando no hay necesidad de más de un objeto de un tipo dado, no es necesario este estilo y bastacon el estilo de programación de ocultamiento de datos por medio de módulos.VentajasRecogen mejor la semántica de los tipos. Al agrupar la representación junto a las operaciones quedefinen su comportamiento, y forzar a utilizar el TAd a través de estas operaciones se evitanerrores en el manejo del tipo de datos (Por ejemplo, la división por 0 en el caso del TAD Racional). 3
  4. 4. FUNDAMENTOS DE PROGRAMACIÓNIbarra Badillo Mayra Actividad 1125904312. Abstracción: Separa la especificación (que hace) de la implementación (cómo lo hace). Losusuarios de un TAD no necesitan conocer sus detalles de implementación. Como consecuencia:a) Se favorece la extensibilidad del código: Es posible modificar y mejorar la implementación delTAD sin afectar a los demás módulos que lo utilizan.b) Aumenta la facilidad de uso.c) Aumenta la legibilidad del código que usa el TAD.3. Produce código reutilizable.4. Favorece la ausencia de errores, al reutilizar código ya probado y forzar a utilizar la estructurade datos correctamente.Programación orientada a objetos (POO)La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma deprogramación que usa objetos y sus interacciones, para diseñar aplicaciones y programasinformáticos. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo yencapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad,existe variedad de lenguajes de programación que soportan la orientación a objetos.El problema con la abstracción de datos es que no hay ninguna distinción entre las propiedadesgenerales y las particulares de un conjunto de objetos.Características fundamentales de la POO: 1. Encapsulamiento: Es la ocultación de información. Significa mantener la información dentro del objeto y mantenerlo como una caja negra. Puede ser accedida por métodos. 2. Abstracción: Es la capacidad de aislar y encapsular la información del diseño y la ejecución. Es la capacidad para identificar atributos y métodos. La ventaja de la herencia es que permite la reutilización de código, ahorrando tiempo y dinero. 3. Herencia: Es la propiedad que permite a los objetos crearse a partir de otros objetos. Cada subclase comparte características comunes con la clase de la que deriva. La clase original la llamamos clase base y las nuevas clases creadas a partir de ella clases derivadas. Una clase derivada puede ser también clase base dando lugar a una jerarquía de clases. 4. Polimorfismo: Es la capacidad de que diferentes objetos reaccionen de distinta forma a un mismo mensaje. Es la capacidad de referirse a objetos de clases distintas en una jerarquía utilizando el mismo elemento de programa (método) para realizar la misma operación, pero de manera diferente. 4
  5. 5. FUNDAMENTOS DE PROGRAMACIÓNIbarra Badillo Mayra Actividad 112590431Características Secundarias de la POO: 1. Tipificación: Permite la agrupación de objetos en tipos. 2. Concurrencia: Los objetos pueden actuar al mismo tiempo. 3. Persistencia: Un objeto puede seguir existiendo tras desaparecer su antecesor.Gran parte de los lenguajes más utilizados hoy en díaestán orientados a objetos,entre ellos seencuentran: Java, C++, PHP, Python, C#, Delphi, Ruby, D y Actionscript,entre otros.Ventajas de la programación orientada a objetosVamos a ver las ventajas más importantes de la programación orientada a objetos: Reusabilidad. Cuando hemos diseñado adecuadamente las clases, se pueden usar en distintas partes del programa y en numerosos proyectos. Mantenibilidad. Debido a la sencillez para abstraer el problema, los programas orientados a objetos son más sencillos de leer y comprender, pues nos permiten ocultar detalles de implementación dejando visibles sólo aquellos detalles más relevantes. Modificabilidad. La facilidad de añadir, suprimir o modificar nuevos objetos nos permite hacer modificaciones de una forma muy sencilla. Fiabilidad. Al dividir el problema en partes más pequeñas podemos probarlas de manera independiente y aislar mucho más fácilmente los posibles errores que puedan surgir. Fomenta la reutilización y extensión del código. Permite crear sistemas más complejos. Relacionar el sistema al mundo real. Facilita la creación de programas visuales. Construcción de prototipos Agiliza el desarrollo de software Facilita el trabajo en equipo Facilita el mantenimiento del softwareLa programación orientada a objetos presenta también algunas desventajas como pueden ser: Cambio en la forma de pensar de la programación tradicional a la orientada a objetos. La ejecución de programas orientados a objetos es más lenta. La necesidad de utilizar bibliotecas de clases obliga a su aprendizaje y entrenamiento. Exige conocer bien la teoría de objetos. Requiere mayor capacidad de los programadores.ConclusiónUn paradigma es el resultado de un proceso social y tecnológico en el cual un grupo de personasprogramadores desarrolla nuevas ideas, crea principios y prácticas alrededor de estas ideas, losparadigmas de programación nos indican las diversas formas para programar a lo largo de laevolución de los lenguajes de programación, que han sido aceptados como estilos para programary para resolver los problemas por medio de una computadora. En la actualidad el paradigma másusado es la programación orientada a objetos. 5
  6. 6. FUNDAMENTOS DE PROGRAMACIÓNIbarra Badillo Mayra Actividad 112590431Bibliografía Héctor Zárate | www.mieldemaple.com http://www.taringa.net/posts/ciencia-educacion/9145179/Paradigma-de-Programacion.html http://www.genbetadev.com/paradigmas-de-programacion/diferencias-entre-paradigmas-de- programacion Scott, Michael Lee. Programming Languages Pragmatics. Estados Unidos: MorganKauffmannPublishers, 2000.• Sebesta, Robert W. Concepts of Programming Languages. Estados Unidos: PearsonEducation, 2004.• Linz, Peter. An Introduction to Formal Languages and Automata.EstadosUnidos: Jonesand BartlettPublishers, 2001.• Craig, Iain. Object-Oriented Programming Languages: Interpretation. EstadosUnidos:Springer, 2007.• Bruce, Kim. Foundations of Object-oriented Languages: Types and Semantics. EstadosUnidos: MIT Press,2002. http://es.scribd.com/doc/6167605/9/Desventajas-de-la-programacion-estructurada 6

×