fbpx
Wikipedia

Paradigma de programación

Se denominan paradigmas de programación a las formas de clasificar los lenguajes de programación en función de sus características. Los idiomas se pueden clasificar en múltiples paradigmas.

Algunos paradigmas se ocupan principalmente de las implicancias para el modelo de ejecución del lenguaje, como permitir efectos secundarios o si la secuencia de operaciones está definida por el modelo de ejecución. Otros paradigmas se refieren principalmente a la forma en que se organiza el código, como agrupar un código en unidades junto con el estado que modifica el código. Sin embargo, otros se preocupan principalmente por el estilo de la sintaxis y la gramática.

Los paradigmas de programación comunes incluyen:[1][2][3]

  • imperativo en el que el programador instruye a la máquina cómo cambiar su estado,
  • declarativo en el que el programador simplemente declara las propiedades del resultado deseado, pero no cómo calcularlo
    • funcional en el que el resultado deseado se declara como el valor de una serie de aplicaciones de función,
    • lógico en la que el resultado deseado se declara como la respuesta a una pregunta sobre un sistema de hechos y reglas,
    • matemático en el que el resultado deseado se declara como la solución de un problema de optimización
    • reactivo en el que se declara el resultado deseado con flujos de datos y la propagación del cambio

Las técnicas simbólicas como la reflexión, que permiten que el programa se refiera a sí mismo, también pueden ser consideradas como un paradigma de programación. Sin embargo, esto es compatible con los principales paradigmas y, por lo tanto, no es un paradigma real por derecho propio.

Por ejemplo, los lenguajes que caen en el paradigma imperativo tienen dos características principales: establecen el orden en el que ocurren las operaciones, con construcciones que controlan explícitamente ese orden, y permiten efectos secundarios, en los que el estado puede modificarse en un momento determinado, dentro de una unidad de código, y luego leer en un momento diferente dentro de una unidad de código diferente. La comunicación entre las unidades de código no es explícita. Mientras tanto, en la programación orientada a objetos, el código se organiza en objetos que contienen un estado que solo es modificado por el código que forma parte del objeto. La mayoría de los lenguajes orientados a objetos también son lenguajes imperativos. Por el contrario, los lenguajes que se ajustan al paradigma declarativo no indican el orden en el que ejecutar las operaciones. En su lugar, proporcionan una serie de operaciones disponibles en el sistema, junto con las condiciones en las que se permite que se ejecute cada una. La implementación del modelo de ejecución del lenguaje rastrea qué operaciones son libres de ejecutar y elige el orden en forma independiente. Más en Comparación de lenguajes de programación de múltiples paradigmas.

Resumen

 
Clasificación de los distintos paradigmas de programación según Peter Van Roy[4]:5[5]

Así como la ingeniería de software (como proceso) se define mediante diferentes metodologías, los lenguajes de programación (como modelos de computación) se definen mediante diferentes paradigmas. Algunos lenguajes están diseñados para admitir un paradigma (Smalltalk admite programación orientada a objetos, Haskell admite programación funcional), mientras que otros lenguajes de programación admiten múltiples paradigmas (como Object Pascal, C++, Java, JavaScript, C#, Scala, Visual Basic, Common Lisp, Scheme, Perl, PHP, Python, Ruby, Oz y F# ). Por ejemplo, los programas escritos en C ++, Object Pascal o PHP pueden ser puramente procedimentales, puramente orientados a objetos o pueden contener elementos de ambos u otros paradigmas. Los diseñadores y programadores de software deciden cómo utilizar esos elementos paradigmáticos.

En la programación orientada a objetos, los programas se tratan como un conjunto de objetos que interactúan. En la programación funcional, los programas se tratan como una secuencia de evaluaciones de funciones sin estado. Cuando se programan computadoras o sistemas con muchos procesadores, en la programación orientada a procesos, los programas se tratan como conjuntos de procesos concurrentes que actúan sobre estructuras de datos compartidas lógicas.

Muchos paradigmas de programación son tan conocidos por las técnicas que prohíben como por las que habilitan. Por ejemplo, la programación funcional pura no permite el uso de efectos secundarios, mientras que la programación estructurada no permite el uso de la instrucción "go to". En parte por esta razón, los nuevos paradigmas a menudo son considerados doctrinarios o demasiado rígidos por quienes están acostumbrados a estilos anteriores.[6]​ Sin embargo, evitar ciertas técnicas puede facilitar la comprensión del comportamiento del programa y demostrar teoremas sobre la corrección del programa.

Los paradigmas de programación también se pueden comparar con modelos de programación, lo que permite invocar un modelo de ejecución utilizando solo una API. Los modelos de programación también se pueden clasificar en paradigmas según las características del modelo de ejecución.

Para la computación paralela, es común usar un modelo de programación en lugar de un lenguaje. La razón es que los detalles del hardware paralelo se filtran en las abstracciones utilizadas para programar el hardware. Esto hace que el programador tenga que mapear patrones en el algoritmo sobre patrones en el modelo de ejecución (que se han insertado debido a una fuga de hardware en la abstracción). Como consecuencia, ningún lenguaje de programación paralelo se adapta bien a todos los problemas de cálculo. Por lo tanto, es más conveniente utilizar un lenguaje secuencial base e insertar llamadas a la API en modelos de ejecución paralela a través de un modelo de programación. Dichos modelos de programación paralela se pueden clasificar de acuerdo con abstracciones que reflejan el hardware, como la memoria compartida, la memoria distribuida conpaso de mensajes, nociones de lugar visibles en el código, etc. Estos pueden considerarse sabores del paradigma de programación que se aplican solo a lenguajes y modelos de programación paralelos.

Referencias

  1. Nørmark, Kurt. Overview of the four main programming paradigms. Aalborg University, 9 May 2011. Retrieved 22 September 2012.
  2. Frans Coenen (11 de octubre de 1999). «Characteristics of declarative programming languages». cgi.csc.liv.ac.uk. Consultado el 20 de febrero de 2014. 
  3. Michael A. Covington (23 de agosto de 2010). . University of Georgia. Archivado desde el original el 7 de marzo de 2012. Consultado el 20 de noviembre de 2013. 
  4. Peter Van Roy (12 de mayo de 2009). «Programming Paradigms: What Every Programmer Should Know». info.ucl.ac.be. Consultado el 27 de enero de 2014. 
  5. Peter Van-Roy; Seif Haridi (2004). Concepts, Techniques, and Models of Computer Programming. MIT Press. ISBN 978-0-262-22069-9. 
  6. Frank Rubin (March 1987). . Communications of the ACM 30 (3): 195-196. S2CID 6853038. doi:10.1145/214748.315722. Archivado desde el original el March 20, 2009. 
  •   Datos: Q188267
  •   Multimedia: Programming language by paradigm

paradigma, programación, denominan, paradigmas, programación, formas, clasificar, lenguajes, programación, función, características, idiomas, pueden, clasificar, múltiples, paradigmas, algunos, paradigmas, ocupan, principalmente, implicancias, para, modelo, ej. Se denominan paradigmas de programacion a las formas de clasificar los lenguajes de programacion en funcion de sus caracteristicas Los idiomas se pueden clasificar en multiples paradigmas Algunos paradigmas se ocupan principalmente de las implicancias para el modelo de ejecucion del lenguaje como permitir efectos secundarios o si la secuencia de operaciones esta definida por el modelo de ejecucion Otros paradigmas se refieren principalmente a la forma en que se organiza el codigo como agrupar un codigo en unidades junto con el estado que modifica el codigo Sin embargo otros se preocupan principalmente por el estilo de la sintaxis y la gramatica Los paradigmas de programacion comunes incluyen 1 2 3 imperativo en el que el programador instruye a la maquina como cambiar su estado procedimental que agrupa las instrucciones en procedimientos orientado a objetos que agrupa las instrucciones con la parte del estado en el que operan declarativo en el que el programador simplemente declara las propiedades del resultado deseado pero no como calcularlo funcional en el que el resultado deseado se declara como el valor de una serie de aplicaciones de funcion logico en la que el resultado deseado se declara como la respuesta a una pregunta sobre un sistema de hechos y reglas matematico en el que el resultado deseado se declara como la solucion de un problema de optimizacion reactivo en el que se declara el resultado deseado con flujos de datos y la propagacion del cambioLas tecnicas simbolicas como la reflexion que permiten que el programa se refiera a si mismo tambien pueden ser consideradas como un paradigma de programacion Sin embargo esto es compatible con los principales paradigmas y por lo tanto no es un paradigma real por derecho propio Por ejemplo los lenguajes que caen en el paradigma imperativo tienen dos caracteristicas principales establecen el orden en el que ocurren las operaciones con construcciones que controlan explicitamente ese orden y permiten efectos secundarios en los que el estado puede modificarse en un momento determinado dentro de una unidad de codigo y luego leer en un momento diferente dentro de una unidad de codigo diferente La comunicacion entre las unidades de codigo no es explicita Mientras tanto en la programacion orientada a objetos el codigo se organiza en objetos que contienen un estado que solo es modificado por el codigo que forma parte del objeto La mayoria de los lenguajes orientados a objetos tambien son lenguajes imperativos Por el contrario los lenguajes que se ajustan al paradigma declarativo no indican el orden en el que ejecutar las operaciones En su lugar proporcionan una serie de operaciones disponibles en el sistema junto con las condiciones en las que se permite que se ejecute cada una La implementacion del modelo de ejecucion del lenguaje rastrea que operaciones son libres de ejecutar y elige el orden en forma independiente Mas en Comparacion de lenguajes de programacion de multiples paradigmas Resumen Editar Clasificacion de los distintos paradigmas de programacion segun Peter Van Roy 4 5 5 Asi como la ingenieria de software como proceso se define mediante diferentes metodologias los lenguajes de programacion como modelos de computacion se definen mediante diferentes paradigmas Algunos lenguajes estan disenados para admitir un paradigma Smalltalk admite programacion orientada a objetos Haskell admite programacion funcional mientras que otros lenguajes de programacion admiten multiples paradigmas como Object Pascal C Java JavaScript C Scala Visual Basic Common Lisp Scheme Perl PHP Python Ruby Oz y F Por ejemplo los programas escritos en C Object Pascal o PHP pueden ser puramente procedimentales puramente orientados a objetos o pueden contener elementos de ambos u otros paradigmas Los disenadores y programadores de software deciden como utilizar esos elementos paradigmaticos En la programacion orientada a objetos los programas se tratan como un conjunto de objetos que interactuan En la programacion funcional los programas se tratan como una secuencia de evaluaciones de funciones sin estado Cuando se programan computadoras o sistemas con muchos procesadores en la programacion orientada a procesos los programas se tratan como conjuntos de procesos concurrentes que actuan sobre estructuras de datos compartidas logicas Muchos paradigmas de programacion son tan conocidos por las tecnicas que prohiben como por las que habilitan Por ejemplo la programacion funcional pura no permite el uso de efectos secundarios mientras que la programacion estructurada no permite el uso de la instruccion go to En parte por esta razon los nuevos paradigmas a menudo son considerados doctrinarios o demasiado rigidos por quienes estan acostumbrados a estilos anteriores 6 Sin embargo evitar ciertas tecnicas puede facilitar la comprension del comportamiento del programa y demostrar teoremas sobre la correccion del programa Los paradigmas de programacion tambien se pueden comparar con modelos de programacion lo que permite invocar un modelo de ejecucion utilizando solo una API Los modelos de programacion tambien se pueden clasificar en paradigmas segun las caracteristicas del modelo de ejecucion Para la computacion paralela es comun usar un modelo de programacion en lugar de un lenguaje La razon es que los detalles del hardware paralelo se filtran en las abstracciones utilizadas para programar el hardware Esto hace que el programador tenga que mapear patrones en el algoritmo sobre patrones en el modelo de ejecucion que se han insertado debido a una fuga de hardware en la abstraccion Como consecuencia ningun lenguaje de programacion paralelo se adapta bien a todos los problemas de calculo Por lo tanto es mas conveniente utilizar un lenguaje secuencial base e insertar llamadas a la API en modelos de ejecucion paralela a traves de un modelo de programacion Dichos modelos de programacion paralela se pueden clasificar de acuerdo con abstracciones que reflejan el hardware como la memoria compartida la memoria distribuida conpaso de mensajes nociones de lugar visibles en el codigo etc Estos pueden considerarse sabores del paradigma de programacion que se aplican solo a lenguajes y modelos de programacion paralelos Referencias Editar Normark Kurt Overview of the four main programming paradigms Aalborg University 9 May 2011 Retrieved 22 September 2012 Frans Coenen 11 de octubre de 1999 Characteristics of declarative programming languages cgi csc liv ac uk Consultado el 20 de febrero de 2014 Michael A Covington 23 de agosto de 2010 CSCI ARTI 4540 6540 First Lecture on Symbolic Programming and LISP University of Georgia Archivado desde el original el 7 de marzo de 2012 Consultado el 20 de noviembre de 2013 Peter Van Roy 12 de mayo de 2009 Programming Paradigms What Every Programmer Should Know info ucl ac be Consultado el 27 de enero de 2014 Peter Van Roy Seif Haridi 2004 Concepts Techniques and Models of Computer Programming MIT Press ISBN 978 0 262 22069 9 Frank Rubin March 1987 GOTO Considered Harmful Considered Harmful Communications of the ACM 30 3 195 196 S2CID 6853038 doi 10 1145 214748 315722 Archivado desde el original el March 20 2009 Datos Q188267 Multimedia Programming language by paradigmObtenido de https es wikipedia org w index php title Paradigma de programacion amp oldid 137895924, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos