Este documento describe los diferentes paradigmas de programación, incluyendo la programación imperativa, declarativa, funcional y lógica. La programación imperativa se basa en una secuencia de instrucciones que cambian el estado del programa, mientras que la programación declarativa se enfoca en describir las propiedades de la solución en lugar de cómo lograrla. La programación funcional concibe la computación como la evaluación de funciones matemáticas, y la programación lógica se basa en reglas lógicas para responder preguntas.
2. ¿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]
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 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.
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
● 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]
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
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.
12. 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.