ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Paradigmas De Programacion


Enviado por   •  29 de Junio de 2012  •  1.775 Palabras (8 Páginas)  •  814 Visitas

Página 1 de 8

PARADIGMAS DE PROGRAMACIÓN

Introducción

La evolución en los lenguajes de computación a llevado la programación a niveles cada vez más abstractos. Lo que una vez fué solo un conjunto de operaciones meramente binarias hoy es la base de lenguajes más expresivos que han hecho más sorteable la brecha entre humanos y ordenadores.

La explosión de lenguajes de programación a surgido gracias a la creación de diferentes paradigmas, que no son más que diferentes formas de concebir lógicamente la resolución de un problema.

Hoy en día los lenguajes de programación son más elegantes y refinados, han sabido integrar a conveniencia los conceptos de diferentes paradigmas de programación. En este documento, analizaremos de manera breve algunos de los paradigmas más importantes.

Programación Estructurada

Originada a finales de los años 1960. Desarrollada para promover la organización (estructuración) del código de manera secuencial, logrando así un código más mantenible y legible al evitar las instrucciones de transferencia incondicional.

Inspirado en las propuesta de Böhm-Jacopini, quien formuló el teorema del programa estructurado, en el que básicamente planteaba que todo programa puede escribirse utilizando tres instrucciones de control: Secuencia, Instrucción Condicional e Iteración (bucle de instrucciones) con condición al principio.

Características:

Estructura secuencial: Las instrucciones se ejecutan una tras otra en una secuencia lineal. Una instrucción no se ejecuta hasta que finalice la anterior.

Estructura selectiva: Son las bifurcaciones en el flujo de ejecución del programa. Se determina con una instrucción condicional.

Estructura iterativa: Demarca un conjunto de instrucciones que se repiten mientras cierta instrucción condicional se cumpla.

Anidamiento: Cada tipo básico de estructura puede contener otra dentro de la misma.

Ventajas

• Los programas estructurados son más fáciles de leer y entender. No hay saltos de línea, la estructura es secuencial.

• Los programas son mas claros, las instrucciones están relacionadas entre sí.

• La localización y corrección de errores es más fácil, puesto que la estructura es sencilla y comprensible.

• Los costos de mantenimiento son menores. Es mucho más fácil modificar o extender un programa estructurado.

• Los programas son mas sencillos. Son fáciles de codificar.

• Los bloques de códigos son auto-explicativos.

• Las instrucciones de salto son delegadas a las instrucciones de iteración y condición, no es permitido hacer un salto arbitrario en el código.

• Mejor presentación.

• Incrementa productividad del programador, en comparación con la forma tradicional que utiliza GOTO.

Desventajas

• Programación monolítica. Se obtiene un único bloque de programa que puede llegar a ser difícil de mantener. Se alivia utilizando técnicas de la programación modular.

• Redundante. No promueve la reutilización de código.

Lenguajes

Cabe resaltar que bajo el ala de los lenguajes estructurados encontramos mas subclasificaciones. Los lenguajes modulares, Orientados a Objetos y los Recursivos. Entre estos tenemos: Algol, Pascal, PL/I, Ada, C.

Programación Funcional

Paradigma de programación declarativa basado en las funciones aritméticas. En este tipo de programación, el énfasis se hace en el uso de funciones, no el cambio de estado, como resulta ser el estilo de la programación imperativa.

El objetivo de la programación funcional, es la elaboración de programas más expresivos y matemáticamente elegantes. Manteniendo un alto nivel, en el que no sea relevante los detalles a nivel de máquina ni mucho menos el estado de cómputo.

Características

Los programas escritos en un lenguaje enteramente funcional están constituidos únicamente por definiciones de funciones.

No existen las asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteración, en su lugar, se logra el mismo efecto aplicando técnicas de recursividad, esto es, funciones que se llaman a si misma hasta que cierta condición se cumpla.

Ventajas

• Ausencia de efectos colaterales, debido a que no mantiene estados.

• Proceso de depuración menos problemático. La programación es más expresiva. No tiene que monitorear estados ni componer grandes secuencias de iteración.

• Pruebas de unidades más confiables. Tan simple como la definición de una función es, así mismo su prueba de unidad, que no tendrá que recrear complejos estados de aplicación para probar una funcionalidad específica.

• Mayor facilidad para la ejecución concurrente. Uno de los mayores dolores de cabeza para la programación concurrente, es la necesidad de mantener la integridad de la información, para esto se utilizan complejos sistemas de bloqueo y sincronización que evitan que una información sea accesada y/o modificada al mismo tiempo por dos o mas hilos de ejecución. La programación funcional, al operar con tipos de datos en esencia inmutables no tiene ningún problema con el acceso concurrente.

Desventajas

• Al no manejar estados, no es una solución fácilmente implantable en aplicaciones de tipo empresarial, donde el manejo de estado es crítico para los procesos internos.

• El tipo de aplicaciones que se pueden desarrollar, se limita sobre todo al plano científico y educativo, a menos que el lenguaje sea hibrido e incluya características de otros paradigmas de programación.

Lenguajes

Haskell, Miranda, Pure, Clean

Programación Declarativa

Este paradigma se diferencia de la programación imperativa en que su enfoque se basa en “qué hace el código”, no en el “cómo lo hace”. Estos lenguajes no propician efectos secundarios, son referencialmente transparentes.

Bajo la sombrilla de la Programacíón Declarativa se encuentran diversos subparadigmas: Programación con Restricciones, Lenguajes Específicos de Dominio (DSLs), Programación Funcional, Lenguages Hibridos, Programación Lógica.

Ventajas

• Altamente legible. Al ahorrarse detalles de implementación un simple vistazo será suficiente para tener una idea de cómo funciona.

• Promueve la modularización y descomposición de tareas complejas en tareas mas específicas.

Desventajas

• El nivel de abstracción es grande. Una buena declaración no garantiza una buena implementación. Y bajo

...

Descargar como (para miembros actualizados) txt (13 Kb)
Leer 7 páginas más »
Disponible sólo en Clubensayos.com