Estilos de Programacion
Estilos de Programacion
Estilos de Programacion
Estilos de programación
Autor:
José Natividad Gómez Ramírez
20.829.411
Programación estructurada
La programación estructurada es un estilo de programación que se basa en la utilización
de estructuras de control de flujo, como bucles y condicionales, con el fin de construir
programas claros, legibles y fáciles de mantener. En este enfoque, se evita el uso de saltos
de instrucciones incondicionales, como el famoso "goto", ya que se considera que su uso
dificulta la comprensión y mantenimiento del código.
La programación estructurada se enfoca en la modularidad y la organización de código en
pequeñas unidades lógicas y cohesivas, llamadas subrutinas o funciones, que resuelven
tareas específicas. Se busca escribir código legible, fácilmente entendible y que se pueda
seguir de manera lógica, sin perder el hilo de la ejecución.
Además, la programación estructurada promueve la abstracción, la encapsulación y el uso
de variables locales, de manera que el código sea más legible y menos propenso a errores.
Se busca reducir la complejidad de los programas, dividiéndolos en pequeñas partes que
sean más fáciles de entender, desarrollar y mantener.
Este estilo de programación fue muy popular en los años 70 y 80, y aunque ha sido
sustituido por enfoques más modernos, como la programación orientada a objetos, sigue
siendo uno de los enfoques más importantes y populares en la programación
estructurada.
Programación modular
La programación modular es un enfoque de programación que se basa en la construcción
de grandes programas dividiéndolos en módulos o componentes más pequeños, cada uno
de los cuales realiza una tarea específica y bien definida. Cada módulo es independiente
de los demás y puede ser desarrollado, probado y documentado por separado, por lo que
facilita la colaboración entre múltiples desarrolladores.
En este enfoque, cada módulo se construye como una entidad autónoma, con una interfaz
clara y definida para comunicarse con otros módulos. Cada módulo recibe entradas,
procesa información y produce salidas, permitiendo que el programa completo se
desarrolle a partir de la combinación de módulos más pequeños.
La programación modular permite reutilizar y mantener fácilmente los módulos, ya que
cada uno de ellos se puede probar individualmente. Además, permite simplificar la
complejidad de los programas, ya que cada módulo se puede entender y modificar sin
tener que entender el programa completo.
Este enfoque de programación se utiliza comúnmente en la construcción de programas
grandes y complejos, ya que permite dividir el trabajo en pequeñas tareas manejables y
escalables. También se utiliza en el desarrollo de software reutilizable, donde los módulos
pueden ser utilizados en diferentes programas o proyectos, ahorrando tiempo y recursos
en el desarrollo.
Programación concurrente
La programación concurrente se refiere al diseño, implementación y ejecución de
programas que tienen la capacidad de realizar múltiples tareas simultáneamente. A
diferencia de la programación secuencial, donde cada tarea se lleva a cabo en una
secuencia predecible y lineal, en la programación concurrente varias tareas pueden
realizarse en paralelo en diferentes hilos de ejecución.
En la programación concurrente, los hilos son unidades de ejecución que pueden ejecutar
diferentes partes del código de manera independiente y paralela. Esto permite que los
programas sean más eficientes y tengan un mejor rendimiento, ya que varias tareas
pueden ser llevadas a cabo al mismo tiempo. Por ejemplo, un programa de procesamiento
de imágenes puede tener un hilo que carga las imágenes, otro que las procesa y otro que
las guarda, todos ejecutándose simultáneamente.
Sin embargo, la programación concurrente también genera nuevos problemas y desafíos,
como la sincronización de hilos, la compartición de recursos y la resolución de conflictos.
La sincronización se refiere a la coordinación de los hilos para evitar errores y conflictos en
la manipulación de los datos compartidos. La compartición de recursos se refiere a la
necesidad de proteger el acceso a los datos y recursos compartidos entre los hilos para
evitar conflictos y problemas de rendimiento. La resolución de conflictos implica la
identificación y solución de problemas que surgen cuando varios hilos intentan acceder a
los mismos recursos al mismo tiempo.
La programación concurrente es una técnica avanzada de programación que requiere un
conocimiento profundo de los datos, estructuras y algoritmos utilizados en un programa,
además de herramientas específicas y prácticas de diseño y programación. En general, se
trata de una técnica valiosa en una amplia variedad de aplicaciones, desde el diseño de
sistemas operativos hasta el desarrollo de aplicaciones de alta intensidad de cálculo.
Programación Funcional
La programación funcional es un paradigma de programación que se enfoca en el uso de
funciones para resolver problemas y modelar soluciones en el software. En lugar de
trabajar con procedimientos y cambios de estado de los datos, como en la programación
imperativa, la programación funcional se basa en la evaluación de funciones matemáticas
y en la reducción de la complejidad de un problema mediante la descomposición en
funciones más pequeñas y manejables.
En la programación funcional, las funciones son ciudadanos de primera clase y se pueden
definir, asignar, pasar y retornar como cualquier otro tipo de datos. Las funciones también
son inmutables, lo que significa que no cambian el estado del programa y sus resultados
dependen únicamente de sus argumentos de entrada. Esto ayuda a crear programas más
predecibles, seguros y fáciles de entender y mantener.
Otra característica de la programación funcional es el uso de estructuras de datos
inmutables, que son aquellas que no pueden ser modificadas después de su creación. Esto
ayuda a evitar problemas de concurrencia y permite un mejor manejo de los datos
compartidos. Además, la programación funcional hace un uso extensivo de la recursión y
la composición de funciones, lo que ayuda a crear una lógica de programación más
modular y reutilizable.
La programación funcional se ha vuelto cada vez más popular en los últimos años debido a
su capacidad para manejar grandes volúmenes de datos y algoritmos intensivos de
cálculo, y ha sido utilizada en campos como la inteligencia artificial, el procesamiento de
lenguajes naturales y la ciencia de datos. Algunos lenguajes de programación populares
que siguen este paradigma son Haskell, Lisp y Erlang.
Programación Lógica
La programación lógica es un paradigma de programación que se basa en la lógica
matemática y en la teoría de conjuntos para describir y resolver problemas. En este
enfoque, el programa se construye como una serie de declaraciones lógicas que describen
las relaciones entre los datos y las reglas que se deben seguir para resolver el problema.
El lenguaje más comúnmente utilizado en la programación lógica es Prolog (Programming
in Logic), que se caracteriza por su capacidad para realizar búsquedas exhaustivas en
grandes bases de datos de hechos y reglas lógicas.
En la programación lógica, el programador no se preocupa tanto por el control de flujo del
programa como en otros paradigmas, sino más bien en la descripción del problema y en la
especificación de las reglas que rigen su solución. Esto se logra a través de la definición de
una base de conocimientos que contiene información sobre el problema a resolver, y de la
aplicación de reglas lógicas para deducir nuevas conclusiones a partir de ese
conocimiento.
La programación lógica se utiliza comúnmente en la inteligencia artificial, la informática
teórica y la programación de sistemas expertos.
La programación lógica permite formalizar hechos del mundo real, por ejemplo: las aves
vuelan los pingüinos no vuelan “pichurri” es un ave “sandokan” es un perro “alegría” es un
ave y también reglas o restricciones.
Mediante la programación lógica, es más sencillo escribir código sin conocer del todo el
lenguaje de programación usado. Es muy cercano a las especificaciones del problema
llevadas a cabo con lenguajes más formales. Con la programación lógica es posible
modificar el programa sin tener que reescribirlo por completo