Post on 01-Feb-2016
UNIVERSIDAD DE GUAYAQUIL
Facultad Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Networking y Telecomunicaciones
PROGRAMACION#3
Nombre: Dayanna Mayorga Pincay
Tema : Evolución del software (Paradigmas de Programación)
Fecha: 11/Noviembre/2015
¿Qué es un paradigma de programación?
Los paradigmas de programación nos indican las diversas formas que, a lo
largo de la evolución de los lenguajes, han sido aceptadas como estilos para
programar y para resolver los problemas por medio de una computadora.
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. El lenguaje de programación Scheme, en cambio, soporta sólo
programación funcional. En cambio Python, soporta múltiples paradigmas.
Clasificación por paradigmas de programación:
Programación estructurada (PE)
La programación estructurada (en adelante simplemente PE), es un estilo de
programación con el cual el programador elabora programas, cuya estructura
es la más clara posible, mediante el uso de tres estructuras básicas de control
lógico, a saber:
a. SECUENCIA.
b. SELECCIÓN.
c. ITERACIÓN.
Las ventajas de la programación estructurada son:
Los programas son más fáciles de entender.
Se reduce la complejidad de las pruebas.
Aumenta la productividad del programador.
Los programas queden mejor documentados internamente.
Un programa está estructurado si posee un único punto de entrada y sólo uno
de salida, existen de "1 a n" caminos desde el principio hasta el fin del
programa y por último, que todas las instrucciones son ejecutables sin que
aparezcan bucles infinitos.
Programación modular
La programación modular consta de varias secciones dividas de forma que
interactúan a través de llamadas a procedimientos, que integran el programa
en su totalidad. En la programación modular, el programa principal coordina las
llamadas a los módulos secundarios y pasa los datos necesarios en forma de
parámetros. A su vez cada modulo puede contener sus propios datos y llamar a
otros módulos o funciones.
Este paradigma también se conoce como principio de ocultación de
procedimientos y datos. Aunque C++ no se diseño específicamente para
desarrollar la programación modular, su concepto de clase proporciona apoyo
para el concepto de módulo.
Programación orientada a objetos (POO)
En la programación orientada a objetos, los objetos tienen una correspondencia
estrecha con los objetos reales, esta correspondencia, facilita la comprensión y
el manejo del programa de la computadora. El paradigma orientado a objetos
ha sufrido una evolución similar al paradigma de programación estructurada, es
decir, primero se empezaron a utilizar los lenguajes de programación
estructurados que permiten la descomposición modular de los programas; esto
condujo a la adopción de nuevas técnicas de diseño estructuradas y de ahí al
análisis estructurado. Las principales características del paradigma de la
orientación a objetos son:
1) Encapsulación.
2) Herencia.
3) Polimorfismo.
Las ventajas más importantes de la programación orientada a objetos son:
Reusabilidad. Cuando se ha 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.
Programación concurrente
Este tipo de programación se utiliza cuando tenemos que realizar varias
acciones a la vez. Se suele utilizar para controlar los accesos de usuarios y
programas a un recurso de forma simultánea. Se trata de una programación
más lenta y laboriosa, obteniendo unos resultados lentos en las acciones.
Programación funcional
Modelo matemático de composición funcional donde el resultado de un cálculo
es la entrada del siguiente, y así sucesivamente hasta que una composición
produce el valor deseado. Como su nombre lo dice operan solamente a través
de funciones. Cada función devuelve un solo valor, dada una lista de
parámetros. No se permiten asignaciones globales, llamados efectos
colaterales. La programación funcional proporciona la capacidad para que un
programa se modifique así mismo, es decir que pueda aprender.
Programación lógica
Esta programación se basada en un subconjunto del cálculo de predicados,
incluyendo instrucciones escritas en formas conocidas como cláusulas de Horn.
Este paradigma puede deducir nuevos hechos a partir Parte 1: Introducción
Paradigmas y Lenguajes Página 5 de otros hechos conocidos.
La programación lógica, la otra variedad de la programación declarativa, usa
como base sentencias de lógica de primer orden, en concreto las cláusulas de
Horn (restricción del Cálculo de Predicados de Primer Orden) y su forma de
ejecución es el principio de resolución de Robinsón.
Un programa lógico consiste en un conjunto de relaciones, y su ejecución
vendrá a demostrar que una nueva relación se sigue se las que constituía el
programa. Las relaciones serán especificadas con reglas y hechos.
Bibliografías:
Programación estructurada. (s.f.). Obtenido de http://utnconfluencia.jtortone.com.ar/Programacionestructurada.pdf
Lenguajes y Paradigmas de Programación. (09 de Febrero de 2011). Obtenido de Sesión 2: Lenguajes de Programación: http://www.dccia.ua.es/dccia/inf/asignaturas/LPP/2010-2011/clases-cristina/s2.pdf
Paradigmas y Lenguajes . (s.f.). Obtenido de Parte 1: Introducción : http://www.paradylenguajes.com.ar/rmonzon/Intro_PyL.pdf
Unidad I – POO Avanzada . (2009). Obtenido de Introducción - Qué es un paradigma de programación?: http://labsys.frc.utn.edu.ar/ppr-2009/Unidad%20I%20-%20POO%20Avanzada/Apunte/Unidad%20I%20-%20POO%20Avanzada.pdf
UNIVERSIDAD DE ALICANTE. (s.f.). Obtenido de LENGUAJES Y PARADIGMAS DE PROGRAMACION : http://cv1.cpd.ua.es/ConsPlanesEstudio/cvFichaAsiEEES.asp?wCodEst=C203&wcodasi=34017&wLengua=C&scaca=2014-15
Valdéz, J. L. (s.f.). Eumed.net Enciclopedia Virtual. Obtenido de IMPLEMENTACIÓN DEL MODELO INTEGRAL COLABORATIVO (MDSIC) COMO FUENTE DE INNOVACIÓN PARA EL DESARROLLO ÁGIL DE SOFTWARE EN LAS EMPRESAS DE LA ZONA CENTRO - OCCIDENTE EN MÉXICO: http://www.eumed.net/tesis-doctorales/2014/jlcv/programacion.htm