Paradigmas de programación | EL Informático GO Sistemas

Paradigmas de programación

La evolución de los lenguajes de programación ha ido paralela a la idea de paradigma de programación: enfoques alternativos a los procesos de programación. En realidad, un paradigma de programación representa fundamental- mente enfoques diferentes para la construcción de soluciones a problemas y por consiguiente afectan al proceso completo de desarrollo de software. "Un paradigma de programación indica un método de realizar cómputos y la manera en que se deben estructurar y organizar las tareas que debe llevar a cabo un programa". Los paradigmas fundamentales están asociados a determinados modelos de cómputo. También se asocian a un determinado estilo de programación. Los lenguajes de programación suelen implementar, a menudo de forma parcial, varios paradig- mas; un caso de éxito de lenguaje de programación multiparadigma es Python.

Los paradigmas de programación clásicos son: procedimental (o imperativo), declarativo y orientado a objetos, aun- que existen otros paradigmas asociados a los sistemas concurrentes (programación concurrente) o tipados (scripting) como JavaScript.

Paradigma imperativo (procedimental)

El paradigma imperativo o procedimental representa el enfoque o método tradicional de programación. Un lengua- je imperativo es un conjunto de instrucciones que se ejecutan una por una, de principio a fin, de modo secuencial excepto cuando intervienen instrucciones de salto de secuencia o control. Este paradigma define el proceso de programación como el desarrollo de una secuencia de órdenes (comandos) que manipulan los datos para producir

los resultados deseados. Por consiguiente, el paradigma imperativo señala un enfoque del proceso de programación mediante la realización de un algoritmo que resuelve de modo manual el problema y a continuación expresa ese algoritmo como una secuencia de órdenes. En un lenguaje procedimental cada instrucción es una orden o secuen- cia de órdenes para que la computadora realice alguna tarea específica.

Los lenguajes imperativos tradicionales son C, Fortran, Basic, Pascal, Ada, aunque otros lenguajes actuales como C++, C#, Java y Python incorporan propiedades de lenguajes imperativos.

Paradigma declarativo

En contraste con el paradigma imperativo, el paradigma declarativo solicita al programador que describa el proble- ma en lugar de encontrar una solución algoritmica al problema; describe qué se debe calcular, sin explicitar el cómo. El control de flujo suele estar asociado a la composición funcional, la recursividad y/o técnicas de reescritura y unificación. El paradigma declarativo contiene, a su vez, otros paradigmas: paradigma lógico, funcional, reactivo y descriptivo.

El paradigma lógico utiliza el principio del razonamiento lógico para responder a las preguntas o cuestiones con- sultadas. Se basa en la lógica formal y en el cálculo de predicados de primer orden. El razonamiento lógico se basa en la deducción. El lenguaje de programación lógica por excelencia es Prolog.

El paradigma funcional se basa en los modelos de computo del cálculo Lambda. Modelos de lenguajes funciona- les son: Lips, Haskell y Scheme.

El paradigma reactivo se basa en la teoría de grafos. Oz y Clojure son dos lenguajes de programación reactivos.

Paradigma orientado a objetos

El paradigma orientado a objetos se asocia con el proceso de programación llamado programación orientada a ob- jetos (POO) que consiste en un enfoque totalmente distinto al proceso procedimental. El enfoque orientado a objetos guarda analogía con la vida real. El desarrollo de software POO se basa en el diseño y construcción de objetos que se componen a su vez de datos y operaciones que manipulan esos datos. El programador define en primer lugar los objetos del problema y a continuación los datos y operaciones que actuarán sobre esos datos. Las ventajas de la programación orientada a objetos se derivan esencialmente de la estructura modular existente en la vida real y el modo de respuesta de estos módulos u objetos a mensajes o eventos que se producen en cualquier instante.

Los orígenes de la POO se remontan a los tipos abstractos de datos como parte constitutiva de una estructura de datos.

C++, lenguaje orientado a objetos, por excelencia, es una extensión del lenguaje C y contiene las tres propie- dades más importantes: encapsulamiento, herencia y polimorfismo. Smalltalk es otro lenguaje orientado a objetos muy potente y de gran impacto en el desarrollo del software orientado a objetos que se ha realizado en las últimas dé- cadas.

Hoy día Java y Cz son herederos directos de C++ y C, y constituyen los lenguajes orientados a objetos más utilizados en la industria del software del siglo XXI. Visual Basic y VB.Net son otros lenguajes orientados a objetos, no tan potentes como los anteriores, pero extremadamente sencillos y fáciles de aprender. Python es un lenguaje de programación orientado a objetos, aunque uno de sus grandes éxitos es que es un lenguaje multiparadigma.

 QR de este contenido:

Publicar un comentario

Tema Anterior Tema Siguiente