Del curso: Fundamentos esenciales de la programación
Paradigmas de programación
Los paradigmas son estilos diferentes de abordar la resolución de problemas de la programación. Asimismo, delimitan el enfoque que se va a adoptar en la forma de escribir código. En primer lugar, tenemos el paradigma imperativo que describe cómo debe realizarse el cálculo y no por qué. Estos programas se componen de un conjunto de sentencias que van cambiando su estado y se ejecutan según un control de flujo específico que se modifica y modifica el estado del programa. Son secuencias de comandos que ordenan acciones a la computadora. Como puedes ver, aquí va ordenando casos diferentes de acciones que debe tomar la computadora. Y las variables son celdas que contienen datos o referencias a esos datos y pueden ser modificadas representando el estado del programa en cada momento. Otro paradigma que tenemos es el paradigma lógico. El paradigma lógico se basa en la lógica de predicados de primer orden. Los programas se componen de hechos, predicados y relaciones. Un problema se modela con enunciados de lógica de primer orden. Se realiza una evaluación basada en la resolución SLD, que aúna la unificación y el bug tracking, y la ejecución consiste en la resolución de un problema de decisión. Los resultados se obtienen mediante la instanciación de variables libres. Un lenguaje representativo es Prolog. Como puedes ver, aquí evaluamos que si Sócrates es un hombre y un mortal, es x. Entonces, un hombre no debe ser mortal. Entonces, ¿es Sócrates mortal? Este es el tipo de evaluaciones que se producen en los algoritmos de orden lógico. Tenemos también el paradigma de las funciones, el paradigma funcional, en el que la evaluación se realiza por reducción funcional. Se utilizan técnicas como la recursividad, parámetros acumuladores, CPS o mónadas, y los programas se componen de funciones, es decir, de implementaciones de comportamiento que reciben un conjunto de datos de entrada y devuelven un valor de salida. Las funciones son elementos de primer orden y se basan en los modelos de cómputo del cálculo lambda y de la lógica combinatoria. Tenemos como ejemplo Lisp, Scheme, todas las familias de lenguajes dedicados al machine learning y Haskell. Sin embargo, esta función está escrita en JavaScript, puesto que JavaScript también permite utilizar la programación funcional. Otro paradigma muy interesante es el paradigma orientado a objetos. En él, el comportamiento del programa es llevado a cabo por objetos, que son entidades que representan elementos del problema a resolver y tienen atributos y comportamiento. Se centran en la estructura y organización de los programas y son compatibles con los fundamentales. La programación orientada a objetos expresa un programa como un conjunto de objetos que colaboran entre ellos para realizar tareas. Esto permite que los programas y módulos más fáciles de escribir, mantener y reutilizar también se puedan volver a usar. Como puedes ver, aquí tienes una clase que crea la plantilla de los objetos consiguientes que se pueden ir creando. Creamos un constructor, pedimos el nombre y el año como argumentos e instanciamos el nombre y el año. Así, cuando vamos a crear un objeto basado en esta clase solo hacemos new Car, es decir, un nuevo objeto o una nueva instancia de esta clase, y simplemente damos los valores correspondientes a los parámetros. Es decir, Maricarmen sería el nombre y el año sería 2014. Existe también un paradigma de la programación llamado declarativo, que es opuesto al imperativo. en este caso el programa describe los resultados esperados sin listarte los pasos a llevar a cabo. Describe también cómo se debe calcular, pero no te explica el cómo. Y no existe un orden de evaluación prefijado. en este caso las variables son nombres asociados a definiciones y, una vez distanciadas, son inmutables. No existe una sentencia de asignación y el control de flujo suele ser asociado a la composición funcional, la recursividad o las técnicas de escritura y unificación. en este caso tenemos un pequeño script con una consulta SQL. en este caso nos pide que busquemos entre los países de nuestros clientes en una base de datos. Es así como con estos tipos de paradigmas de la programación puedes crear diferentes soluciones algorítmicas a tus problemas, adaptándolo siempre a tus necesidades y no adaptando tus necesidades a los lenguajes y paradigmas de la programación.