Paradigmas de Programación
¿Qué es un paradigma de Programación?
● Debe ser concebido como un conjunto de métodos, reglas y generalizaciones
utilizadas conjuntamente por aquellos entrenados para realizar el trabajo
científico de investigació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.[1]
Clasificación
Existen muchas
clasificaciones. Una muy
conocida es la siguiente.
[2]
1 Programación Imperativa
● Describe la programación como una secuencia instrucciones o comandos
que cambian el estado de un programa.
● Es descrito el cómo debe realizarse un cálculo y no el porqué.
● Las variables son celdas de memoria que contienen datos (o referencias),
pueden ser modificadas, y representan el estado del programa.
● La sentencia principal es la asignación.
1.1 Programación Estructurada
● La programación se divide en bloques (procedimientos y funciones) que
pueden o no comunicarse entre sí.
● Además la programación se controla con secuencia, selección e iteración.
● Permite reutilizar código programado y otorga una mejor compresión de la
programación.
1.2 Programación Orientada a Objetos
● Está basado en la idea de encapsular estado y operaciones en objetos. En
general, la programación se resuelve comunicando dichos objetos a través de
mensajes (programación orientada a mensajes).
● Se puede incluir -aunque no formalmente- dentro de este paradigma, el
paradigma basado en objetos, que además posee herencia y subtipos entre
objetos.
2 Programación Declarativa
● No se basa en el cómo se hace algo (cómo se logra un objetivo paso a paso),
sino que describe (declara) cómo es algo. En otras palabras, se enfoca en
describir las propiedades de la solución buscada, dejando indeterminado el
algoritmo (conjunto de instrucciones) usado para encontrar esa solución.
● La solución es hallada mediante mecanismos internos de inferencia de
información a partir de la descripción del problema en sí [3].
2.1 Programación Funcional
● Este paradigma concibe a la computación como la evaluación de funciones
matemáticas y evita declarar y cambiar datos. En otras palabras, hace
hincapié en la aplicación de las funciones y composición entre ellas
● Permite resolver ciertos problemas de forma elegante y los lenguajes
puramente funcionales evitan los efectos secundarios comunes en otro tipo
de programaciones.
● El proceso de depuración resulta sencillo.
● Mayor facilidad para la ejecución concurrente.
… Funcional
● Hasta hace poco, la mayor parte del uso que se le daba a los lenguajes
basados en el paradigma funcional era a nivel académico.
● Hoy en día Whatsapp, Facebook utilizan Erlang para algunos proyectos donde
es fundamental la concurrencia.[4]
● Scheme fue usado por Apple para desarrollo de aplicaciones en las
Macintosh.
● Redes sociales como Linkedin han movido el core de su aplicación a
lenguajes funcionales como Scala.[5]
2.2 Programación Lógica
● Se basa en la definición de reglas lógicas para luego, a través de un motor de
inferencias lógicas, responder preguntas planteadas al sistema y así resolver
los problemas.
● Dentro de las aplicaciones en las que puede utilizarse el paradigma lógico
esta:
○ Sistemas expertos.
○ Demostración automática de teoremas.
○ Reconocimiento de lenguaje natural.
3 Otros paradigmas
Otros paradigmas y
subparadigmas son:
paradigma orientado al
sujeto, paradigma
reflectante, programación
basada en reglas,
paradigma basado en
restricciones, programación
basada en prototipos,
paradigma orientado a
aspectos, etc.
Multiparadigma
Es posible que para la resolución de problemas sean necesarios el empleo de
varios paradigmas a la vez. Inclusive, muchos lenguajes modernos avanzan hacia
un modelo multiparadigma, donde se puede tener en una sola herramienta la
posibilidad de emplearse en múltiples situaciones. De esta manera se establece
una lealtad por parte de los programadores hacia un lenguaje específico.
Ejemplos
Para determinar un algoritmo para obtener el
Máximo Común Divisor
Fortran 777: Imperativo, procedural, no estructurado
Pascal: Imperativo, procedural, estructurado
Funcionales
Lógico
Bibliografía
[1]http://www.iqcelaya.itc.mx/~vicente/Programacion/Paradigmas.pdf
[2]http://labsys.frc.utn.edu.ar/ppr-2009/Unidad%20I%20-%20POO%20Avanzada/Apunte/Uni
dad%20I%20-%20POO%20Avanzada.pdf
[3]http://www.genbetadev.com/paradigmas-de-programacion/diferencias-entre-paradigmas
-de-programacion
[4]https://www.fastcompany.com/3026758/inside-erlang-the-rare-programming-language-b
ehind-whatsapps-success
[5]https://engineering.linkedin.com/play/play-framework-democratizing-functional-program
ming-modern-web-programmers

Objetos: 1. paradigmas de programación

  • 1.
  • 2.
    ¿Qué es unparadigma de Programación? ● Debe ser concebido como un conjunto de métodos, reglas y generalizaciones utilizadas conjuntamente por aquellos entrenados para realizar el trabajo científico de investigació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.[1]
  • 3.
    Clasificación Existen muchas clasificaciones. Unamuy conocida es la siguiente. [2]
  • 4.
    1 Programación Imperativa ●Describe la programación como una secuencia instrucciones o comandos que cambian el estado de un programa. ● Es descrito el cómo debe realizarse un cálculo y no el porqué. ● Las variables son celdas de memoria que contienen datos (o referencias), pueden ser modificadas, y representan el estado del programa. ● La sentencia principal es la asignación.
  • 5.
    1.1 Programación Estructurada ●La programación se divide en bloques (procedimientos y funciones) que pueden o no comunicarse entre sí. ● Además la programación se controla con secuencia, selección e iteración. ● Permite reutilizar código programado y otorga una mejor compresión de la programación.
  • 6.
    1.2 Programación Orientadaa Objetos ● Está basado en la idea de encapsular estado y operaciones en objetos. En general, la programación se resuelve comunicando dichos objetos a través de mensajes (programación orientada a mensajes). ● Se puede incluir -aunque no formalmente- dentro de este paradigma, el paradigma basado en objetos, que además posee herencia y subtipos entre objetos.
  • 7.
    2 Programación Declarativa ●No se basa en el cómo se hace algo (cómo se logra un objetivo paso a paso), sino que describe (declara) cómo es algo. En otras palabras, se enfoca en describir las propiedades de la solución buscada, dejando indeterminado el algoritmo (conjunto de instrucciones) usado para encontrar esa solución. ● La solución es hallada mediante mecanismos internos de inferencia de información a partir de la descripción del problema en sí [3].
  • 8.
    2.1 Programación Funcional ●Este paradigma concibe a la computación como la evaluación de funciones matemáticas y evita declarar y cambiar datos. En otras palabras, hace hincapié en la aplicación de las funciones y composición entre ellas ● Permite resolver ciertos problemas de forma elegante y los lenguajes puramente funcionales evitan los efectos secundarios comunes en otro tipo de programaciones. ● El proceso de depuración resulta sencillo. ● Mayor facilidad para la ejecución concurrente.
  • 9.
    … Funcional ● Hastahace poco, la mayor parte del uso que se le daba a los lenguajes basados en el paradigma funcional era a nivel académico. ● Hoy en día Whatsapp, Facebook utilizan Erlang para algunos proyectos donde es fundamental la concurrencia.[4] ● Scheme fue usado por Apple para desarrollo de aplicaciones en las Macintosh. ● Redes sociales como Linkedin han movido el core de su aplicación a lenguajes funcionales como Scala.[5]
  • 10.
    2.2 Programación Lógica ●Se basa en la definición de reglas lógicas para luego, a través de un motor de inferencias lógicas, responder preguntas planteadas al sistema y así resolver los problemas. ● Dentro de las aplicaciones en las que puede utilizarse el paradigma lógico esta: ○ Sistemas expertos. ○ Demostración automática de teoremas. ○ Reconocimiento de lenguaje natural.
  • 11.
    3 Otros paradigmas Otrosparadigmas y subparadigmas son: paradigma orientado al sujeto, paradigma reflectante, programación basada en reglas, paradigma basado en restricciones, programación basada en prototipos, paradigma orientado a aspectos, etc.
  • 12.
    Multiparadigma Es posible quepara la resolución de problemas sean necesarios el empleo de varios paradigmas a la vez. Inclusive, muchos lenguajes modernos avanzan hacia un modelo multiparadigma, donde se puede tener en una sola herramienta la posibilidad de emplearse en múltiples situaciones. De esta manera se establece una lealtad por parte de los programadores hacia un lenguaje específico.
  • 13.
    Ejemplos Para determinar unalgoritmo para obtener el Máximo Común Divisor
  • 14.
    Fortran 777: Imperativo,procedural, no estructurado
  • 15.
  • 16.
  • 17.
  • 18.