Paradigma de programación

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 16 de marzo de 2022; las comprobaciones requieren 2 ediciones .

Un paradigma de programación  es un conjunto de ideas y conceptos que definen el estilo de escribir programas de computadora (enfoque de programación). Esta es una forma de conceptualización que determina la organización de los cálculos y la estructuración del trabajo realizado por una computadora [1] .

Un paradigma de programación no está definido únicamente por un lenguaje de programación; casi todos los lenguajes de programación modernos permiten hasta cierto punto el uso de diferentes paradigmas ( programación multiparadigma ). Así, en el lenguaje C , que no está orientado a objetos, es posible trabajar de acuerdo con los principios de la programación orientada a objetos, aunque esto conlleva ciertas dificultades; la programación funcional se puede utilizar cuando se trabaja en cualquier lenguaje imperativo que tenga funciones, etc.

Además, los paradigmas existentes a menudo se cruzan entre sí en detalle (por ejemplo, programación modular y orientada a objetos), por lo que puede encontrar situaciones en las que diferentes autores usan nombres de diferentes paradigmas, mientras hablan, de hecho, sobre el mismo fenómeno.

Historia del término

El término “paradigma” aparentemente debe su significado moderno en el campo científico y técnico a Thomas Kuhn y su libro “ La estructura de las revoluciones científicas ” (ver paradigma ). Kuhn llamó paradigmas a los sistemas establecidos de creencias científicas dentro de los cuales se lleva a cabo la investigación. Según Kuhn, en el proceso de desarrollo de una disciplina científica, un paradigma puede ser reemplazado por otro (como, por ejemplo, la mecánica celeste geocéntrica de Ptolomeo fue reemplazada por el sistema heliocéntrico de Copérnico ), mientras que el viejo paradigma sigue existiendo durante algún tiempo e incluso desarrollarse debido a que muchos de sus seguidores resultan ser, por una razón u otra, incapaces de adaptarse a trabajar en un paradigma diferente.

El término "paradigma de programación" fue utilizado por primera vez en 1978 por Robert Floyd en su Conferencia del Premio Turing [2] .

Floyd señala que en la programación se puede observar un fenómeno similar a los paradigmas de Kuhn, pero, a diferencia de ellos, los paradigmas de programación no son mutuamente excluyentes:

Si el progreso del arte de la programación como un todo requiere la constante invención y mejora de paradigmas, entonces la mejora del arte del programador individual requiere que amplíe su repertorio de paradigmas.

Así, según Robert Floyd, a diferencia de los paradigmas del mundo científico descritos por Kuhn, los paradigmas de programación pueden combinarse, enriqueciendo la caja de herramientas del programador.

Varias definiciones

No todos los autores que utilizan el término "paradigma de programación" se atreven a dar una definición intencional de este término. Sin embargo, incluso las definiciones que se pueden encontrar son muy diferentes entre sí.

Diomidis Spinellis da la siguiente definición [3] :

La palabra "paradigma" se usa en programación para definir una familia de notaciones (notaciones) que comparten una forma común (metodología) de implementación de programas.

Texto original  (inglés)[ mostrarocultar] La palabra paradigma se usa en informática para referirse a una familia de notaciones que comparten una forma común de describir implementaciones de programas.

A modo de comparación, el mismo autor cita definiciones de otros trabajos. En un artículo de Daniel Bobrov [4] , un paradigma se define como " estilo de programación como una descripción de las intenciones del programador ". Bruce Shriver define paradigma de programación como " un modelo o enfoque para resolver un problema " [5] , Linda Friedman como " un enfoque para resolver problemas de programación ". [6]

Pamela Zave define un paradigma como " forma de pensar sobre los sistemas informáticos " . [7]

Peter Wegner ofrece un enfoque diferente para definir el término paradigma de programación. En su obra " Conceptos y paradigmas de la programación orientada a objetos " [8] , los paradigmas se definen como " reglas para clasificar los lenguajes de programación de acuerdo con algunas condiciones que pueden ser probadas ".

Timothy Budd sugiere que el término " paradigma " se entienda como " una forma de conceptualizar lo que significa 'computar' y cómo deben estructurarse y organizarse las tareas a resolver en una computadora ". [9]

El paradigma de la programación como esquema conceptual inicial para plantear problemas y resolverlos es una herramienta para la descripción gramatical de hechos, eventos, fenómenos y procesos que pueden no existir simultáneamente, pero que se combinan intuitivamente en un concepto común.

Modelos básicos de programación

Enfoques y técnicas

Véase también

Notas

  1. Roganov, 2001 , subsección "Paradigmas de programación".
  2. RW Floyd. Los paradigmas de la programación Archivado el 11 de febrero de 2007 en Wayback Machine Communications de la ACM , 22(8):455-460, 1979
  3. D. D. Spinellis. Paradigmas de programación como clases de objetos: un mecanismo de estructuración para la programación multiparadigma. Tesis doctoral , Universidad de Londres, Londres SW7 2BZ, Reino Unido, febrero de 1994.
  4. Director General Bobrow. Si Prolog es la respuesta, ¿cuál es la pregunta? // Fifth Generation of Computer Systems , páginas 138-145, Tokio, Japón, noviembre de 1984. Instituto de Tecnología Informática de Nueva Generación (ICOT), Holanda Septentrional.
  5. BD Shriver. paradigmas de software. Software IEEE, 3(1):2, enero de 1986.
  6. LW Friedman. Lenguajes de programación comparativos: generalizando la función de programación. Prentice Hall, 1991, página 188.
  7. P. Zave. Un enfoque composicional para la programación multiparadigma. Software IEEE, 6(5): 15-25, septiembre de 1989.
  8. P. Wegner. Conceptos y paradigmas de la programación orientada a objetos. {OOPS} messenger} , 1(1): 7-87, agosto de 1990.
  9. TA Budd. Programación multiparadigma en ADEL. Addison-Wesley, Reading, Massachusetts, 1995.

Literatura

Enlaces